From 64ceafc0b46facd4a9a1eada9debe3b01cb5815c Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Thu, 6 Apr 2017 12:44:43 +0200 Subject: Fix small bugs, fix WIC for minnowboard --- conf/distro/sota.conf.inc | 4 +- conf/include/local/sota_minnowboard.inc | 6 ++- conf/include/local/sota_porter.inc | 1 + scripts/lib/wic/plugins/otaimage.py | 69 ------------------------------ scripts/lib/wic/plugins/source/otaimage.py | 69 ++++++++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 72 deletions(-) delete mode 100644 scripts/lib/wic/plugins/otaimage.py create mode 100644 scripts/lib/wic/plugins/source/otaimage.py diff --git a/conf/distro/sota.conf.inc b/conf/distro/sota.conf.inc index 55e9cac..a2d8184 100644 --- a/conf/distro/sota.conf.inc +++ b/conf/distro/sota.conf.inc @@ -6,9 +6,11 @@ IMAGE_INSTALL_append = " ostree os-release" # live image for OSTree-enabled systems IMAGE_CLASSES += "image_types_ostree image_types_ota" IMAGE_FSTYPES += "ostreepush otaimg wic" -WKS_FILE = "sdimage-sota.wks" +WKS_FILE ?= "sdimage-sota.wks" do_image_wic[depends] += "${IMAGE_BASENAME}:do_image_otaimg" +EXTRA_IMAGEDEPENDS += " parted-native mtools-native dosfstools-native" + # No working WKS for Raspberry Pi yet IMAGE_FSTYPES_remove_raspberrypi3 = "wic" IMAGE_FSTYPES_remove_raspberrypi2 = "wic" diff --git a/conf/include/local/sota_minnowboard.inc b/conf/include/local/sota_minnowboard.inc index b3702a2..0bd4210 100644 --- a/conf/include/local/sota_minnowboard.inc +++ b/conf/include/local/sota_minnowboard.inc @@ -2,5 +2,7 @@ MACHINE = "intel-corei7-64" PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ota" UBOOT_MACHINE = "minnowmax_defconfig" -IMAGE_CLASSES_append = " sdcard_image-minnowboard-ota" -IMAGE_FSTYPES += "minnowboard-sdimg-ota" + +EXTRA_IMAGEDEPENDS_append = " minnowboard-bootfiles" +IMAGE_BOOT_FILES = "minnowboard-bootfiles/*" + diff --git a/conf/include/local/sota_porter.inc b/conf/include/local/sota_porter.inc index e079e4d..fcda041 100644 --- a/conf/include/local/sota_porter.inc +++ b/conf/include/local/sota_porter.inc @@ -3,6 +3,7 @@ MACHINE = "porter" # Commit united image to OSTree, not just uImage OSTREE_KERNEL = "uImage+dtb" +EXTRA_IMAGEDEPENDS_append = " porter-bootfiles" IMAGE_CLASSES_append = " image_types_uboot " IMAGE_BOOT_FILES = "porter-bootfiles/*" diff --git a/scripts/lib/wic/plugins/otaimage.py b/scripts/lib/wic/plugins/otaimage.py deleted file mode 100644 index 016c996..0000000 --- a/scripts/lib/wic/plugins/otaimage.py +++ /dev/null @@ -1,69 +0,0 @@ -# ex:ts=4:sw=4:sts=4:et -# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# - -import os - -from wic import msger -from wic.pluginbase import SourcePlugin -from wic.utils.oe.misc import get_bitbake_var - -class OTAImagePlugin(SourcePlugin): - """ - Add an already existing filesystem image to the partition layout. - """ - - name = 'otaimage' - - @classmethod - def do_install_disk(cls, disk, disk_name, cr, workdir, oe_builddir, - bootimg_dir, kernel_dir, native_sysroot): - """ - Called after all partitions have been prepared and assembled into a - disk image. Do nothing. - """ - pass - - @classmethod - def do_configure_partition(cls, part, source_params, cr, cr_workdir, - oe_builddir, bootimg_dir, kernel_dir, - native_sysroot): - """ - Called before do_prepare_partition(). Possibly prepare - configuration files of some sort. - """ - pass - - @classmethod - def do_prepare_partition(cls, part, source_params, cr, cr_workdir, - oe_builddir, bootimg_dir, kernel_dir, - rootfs_dir, native_sysroot): - """ - Called to do the actual content population for a partition i.e. it - 'prepares' the partition to be incorporated into the image. - """ - if not bootimg_dir: - bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE") - if not bootimg_dir: - msger.error("Couldn't find DEPLOY_DIR_IMAGE, exiting\n") - - msger.debug('Bootimg dir: %s' % bootimg_dir) - - src = bootimg_dir + "/" + get_bitbake_var("IMAGE_LINK_NAME") + ".otaimg" - - msger.debug('Preparing partition using image %s' % (src)) - part.prepare_rootfs_from_fs_image(cr_workdir, src, "") - diff --git a/scripts/lib/wic/plugins/source/otaimage.py b/scripts/lib/wic/plugins/source/otaimage.py new file mode 100644 index 0000000..016c996 --- /dev/null +++ b/scripts/lib/wic/plugins/source/otaimage.py @@ -0,0 +1,69 @@ +# ex:ts=4:sw=4:sts=4:et +# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +import os + +from wic import msger +from wic.pluginbase import SourcePlugin +from wic.utils.oe.misc import get_bitbake_var + +class OTAImagePlugin(SourcePlugin): + """ + Add an already existing filesystem image to the partition layout. + """ + + name = 'otaimage' + + @classmethod + def do_install_disk(cls, disk, disk_name, cr, workdir, oe_builddir, + bootimg_dir, kernel_dir, native_sysroot): + """ + Called after all partitions have been prepared and assembled into a + disk image. Do nothing. + """ + pass + + @classmethod + def do_configure_partition(cls, part, source_params, cr, cr_workdir, + oe_builddir, bootimg_dir, kernel_dir, + native_sysroot): + """ + Called before do_prepare_partition(). Possibly prepare + configuration files of some sort. + """ + pass + + @classmethod + def do_prepare_partition(cls, part, source_params, cr, cr_workdir, + oe_builddir, bootimg_dir, kernel_dir, + rootfs_dir, native_sysroot): + """ + Called to do the actual content population for a partition i.e. it + 'prepares' the partition to be incorporated into the image. + """ + if not bootimg_dir: + bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE") + if not bootimg_dir: + msger.error("Couldn't find DEPLOY_DIR_IMAGE, exiting\n") + + msger.debug('Bootimg dir: %s' % bootimg_dir) + + src = bootimg_dir + "/" + get_bitbake_var("IMAGE_LINK_NAME") + ".otaimg" + + msger.debug('Preparing partition using image %s' % (src)) + part.prepare_rootfs_from_fs_image(cr_workdir, src, "") + -- cgit v1.2.3-54-g00ecf