[yocto] [V2 PATCH 0/2] Fix init-live.sh to use unionfs for live CD and remove questioned ISO image

Saul Wold sgw at linux.intel.com
Wed Apr 11 11:17:26 PDT 2012


On 04/09/2012 03:15 PM, Yang Shi wrote:
>
> Changelog V1 ->  V2:
> * Refined patch 1/2 log
> * Fixed some spelling erros in patch 1/2
> * Instead of removing questioned ISO images, just throw warning info in patch 2/2
>
>
> When booting up with liveCD image, init scripts can't work well on read-only filesystem. Unionfs,
> which is supported in Yocto kernel, allows a filesystem to appear as writeable, but without
> actually allowing writes to change the filesystem.
>
> Use unionfs to mount rootfs and make root file system can be writen when using liveCD to boot up.
> Set UNION_FS variable depending on kernel config, so that it can work with kernel which doesn't
> have unionfs feature.
>
> For the liveCD image, interactive bootup is needed, but psplash prevents from
> booting interactively. In such case ISO image is not usable, so throw warning
> info when building ISO image without unionfs enabled in kernel.
>
> We tried a lot of different ways to achieve this:
>
> 1. Check if ISO image is built in initramfs-live-boot.bb or not, then prevent from generating ISO image.
> But, we can't distinguish minimal image or sato image.
>
> 2. Check if x11 feature is included in initramfs-live-boot.bb or not, then prevent from generating ISO image.
> But, x11 feature is contained in minimal image as well even though the package is not built.
>
> 3. Tried to append some check code in build_iso() in core-image-sato.bb, but poky can't support append code
> in build_xxx functions like what we do for do_xxx funcitons.
>
> So, we came up with current solution. Any new suggestion is appreciated.
>
> One more thing is that if IMAGE_FSTYPE += "live" is not set in conf/local.conf with this fix, we will get below
> error when building sato image:
>
> ERROR: Running idle function
> Traceback (most recent call last):
>    File "/home/yshi/yocto/poky/bitbake/lib/bb/server/process.py", line
> 122, in ProcessServer.idle_commands(delay=0.1):
>                   try:
>      >                 retval = function(self, data, False)
>                       if retval is False:
>    File "/home/yshi/yocto/poky/bitbake/lib/bb/cooker.py", line 1130, in
> buildTargetsIdle(server=<ProcessServer(ProcessServer-1, started)>,
> rq=<bb.runqueue.RunQueue instance at 0x74e4638>, abort=False):
>                   try:
>      >                 retval = rq.execute_runqueue()
>                   except runqueue.TaskFailure as exc:
>    File "/home/yshi/yocto/poky/bitbake/lib/bb/runqueue.py", line 947,
> in RunQueue.execute_runqueue():
>                   self.rqexe = RunQueueExecuteDummy(self)
>      >             if self.rqdata.prepare() == 0:
>                       self.state = runQueueComplete
>    File "/home/yshi/yocto/poky/bitbake/lib/bb/runqueue.py", line 719,
> in RunQueueData.prepare():
>
> procdep.append(self.taskData.fn_index[self.runq_fnid[dep]] + "." +
> self.runq_task[dep])
>      >                     self.runq_hash[task] =
> bb.parse.siggen.get_taskhash(self.taskData.fn_index[self.runq_fnid[task]],
> self.runq_task[task], procdep, self.dataCache)
>
>    File "/home/yshi/yocto/poky/bitbake/lib/bb/siggen.py", line 153, in
> SignatureGeneratorOEBasicHash.get_taskhash(fn='/home/yshi/yocto/poky/meta/recipes-sato/images/core-image-sato.bb',
> task='do_bootimg', deps=[], dataCache=<bb.cache.CacheData object at
> 0x2148490>):
>               k = fn + "." + task
>      >         data = dataCache.basetaskhash[k]
>               self.runtaskdeps[k] = []
> KeyError: '/home/yshi/yocto/poky/meta/recipes-sato/images/core-image-sato.bb.do_bootimg'
>
> NOTE: Preparing runqueue
>
> Bruce pointed out there was a large discussion about this on hte list last week, so this should be a known issue in poky.
>
I am not finding the discussion, maybe it's under some other title, can 
someone please point me at this large discussion about the above failure?


> The following changes since commit f81b0593e74a31cb2d992df0583948ff57e3ed98:
>
>    gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm (2012-03-23 17:56:29 +0200)
>
> are available in the git repository at:
>    git://git.yoctoproject.org/poky-contrib yshi/1487v2
>    http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=yshi/1487v2
>
> Yang Shi (2):
>        initrdscripts: fix init-live.sh and use unionfs

merged this one in

>        sato:  Throw warning when building ISO image without unionfs enabled
>
This is not merged since in the normal case with out live in 
IMAGE_FSTYPES, the above error occurs, that is not the proper way to 
handle this.

The underlying issue needs to be addressed first.

>   meta/recipes-core/initrdscripts/files/init-live.sh |   23 ++++++++++++++++---
>   .../initrdscripts/initramfs-live-boot_1.0.bb       |    9 +++++++-
>   meta/recipes-sato/images/core-image-sato.bb        |   14 ++++++++++++
>   3 files changed, 41 insertions(+), 5 deletions(-)
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>



More information about the yocto mailing list