[yocto] Live images?

Gary Thomas gary at mlbassoc.com
Fri Jun 6 09:42:00 PDT 2014


On 2014-06-05 16:08, Gary Thomas wrote:
> On 2014-06-05 13:10, Gary Thomas wrote:
>> On 2014-06-05 11:24, Paul Eggleton wrote:
>>> On Thursday 05 June 2014 11:16:55 Gary Thomas wrote:
>>>> On 2014-06-05 09:07, Paul Eggleton wrote:
>>>>> On Thursday 05 June 2014 08:41:57 Gary Thomas wrote:
>>>>>> On 2014-06-05 08:32, Paul Eggleton wrote:
>>>>>>> On Thursday 05 June 2014 15:26:28 Paul Eggleton wrote:
>>>>>>>> Hi Gary,
>>>>>>>>
>>>>>>>> On Thursday 05 June 2014 07:07:34 Gary Thomas wrote:
>>>>>>>>> Looking through the Poky/Yocto sources, there seems to be
>>>>>>>>> some support for Live CD/USB images.  However, I can't find
>>>>>>>>> any examples nor documentation for how to use this.
>>>>>>>>>
>>>>>>>>> Can anyone provide some pointers?
>>>>>>>>
>>>>>>>> You're right, we seem to be missing that in our documentation; I'm not
>>>>>>>> sure
>>>>>>>> where the best place to document it would be though.
>>>>>>>>
>>>>>>>> FYI, you should just need to ensure "live" is in IMAGE_FSTYPES; then
>>>>>>>> you
>>>>>>>> should get a .directdisk image that you can just dd to a USB stick.
>>>>>>>
>>>>>>> Of course I meant to say .hddimg, not .directdisk.
>>>>>>
>>>>>> Thanks, I'll give that a try.
>>>>>>
>>>>>> What if I needed to boot from an actual CD?  I have an old
>>>>>> box here I'd like to try, but it doesn't boot from USB.
>>>>>
>>>>> We can produce ISO images but I don't think that they work quite as well,
>>>>> e.g.:
>>>>>
>>>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=5282
>>>>>
>>>>> You could always try it though.
>>>>
>>>> Bummer, when I tried to build core-image-minimal and/or core-image-x11, it
>>> failed:
>>>> | DEBUG: Executing shell function read_only_rootfs_hook
>>>> | sed: can't read
>>>> | /home/local/x86_live_2014-06-05/tmp/work/genericx86-poky-linux/core-image
>>>> | -minimal-initramfs/1.0-r0/rootfs/etc/fstab: No such file or directory
>>>> | WARNING:
>>>> | /home/local/x86_live_2014-06-05/tmp/work/genericx86-poky-linux/core-image
>>>> | -minimal-initramfs/1.0-r0/temp/run.read_only_rootfs_hook.30446:1 exit 2
>>>> | from|
>>>> |   sed -i -e
>>>> |   '/^[#[:space:]]*\/dev\/root/{s/defaults/ro/;s/\([[:space:]]*[[:digit:]]
>>>> |   \)\([[:space:]]*\)[[:digit:]]$/\1\20/}'
>>>> /home/local/x86_live_2014-06-05/tmp/work/genericx86-poky-linux/core-image-mi
>>>> nimal-initramfs/1.0-r0/rootfs/etc/fstab
>>>> | DEBUG: Python function do_rootfs finished
>>>> | ERROR: Function failed: read_only_rootfs_hook (log file is located at
>>>>
>>>> /home/local/x86_live_2014-06-05/tmp/work/genericx86-poky-linux/core-image-mi
>>>> nimal-initramfs/1.0-r0/temp/log.do_rootfs.30446)
>>>>
>>>> Using these settings:
>>>> Build Configuration:
>>>> BB_VERSION        = "1.23.1"
>>>> BUILD_SYS         = "i686-linux"
>>>> NATIVELSBSTRING   = "Fedora-13"
>>>> TARGET_SYS        = "i586-poky-linux"
>>>> MACHINE           = "genericx86"
>>>> DISTRO            = "poky"
>>>> DISTRO_VERSION    = "1.6+snapshot-20140605"
>>>> TUNE_FEATURES     = "m32 core2"
>>>> TARGET_FPU        = ""
>>>> meta
>>>> meta-yocto
>>>> meta-yocto-bsp    = "master:e7114046be6e71fb326477dc882adb814ef6a751"
>>>>
>>>> Extra settings in conf/local.conf
>>>> # Live CD setup
>>>> IMAGE_FSTYPES_append = " hddimg live"
>>>
>>> "hddimg" isn't a valid IMAGE_FSTYPES item.
>>>
>>> Also, try IMAGE_FSTYPES += rather than _append, that allows the initramfs
>>> image to have its own value (because it's not really valid to make a live
>>> initramfs...)
>>
>> Sorry, I misread/misapplied your previous suggestions.
>>
>>>
>>>> IMAGE_FEATURES_append = " read-only-rootfs"
>>>
>>> Try EXTRA_IMAGE_FEATURES += instead of IMAGE_FEATURES_append
>>
>> I've changed both of these and it still fails if I enable the
>> read-only-rootfs.
>>
>> If I leave that option out, I can build an .hddimg which I dd'd
>> to my USB stick.  It tried to boot, finds /vmlinuz but fails to
>> find /initrd
>>
>> My local.conf settings are now:
>> # Live CD setup
>> IMAGE_FSTYPES += " live"
>> #IMAGE_FEATURES += " read-only-rootfs"
>> CORE_IMAGE_EXTRA_INSTALL += " python-core python-modules"
>>
>> Finally, during one of my builds, I ended up with a core-image-minimal*.iso
>> I tried burning this to a CD an it booted up, albeit with a couple of
>> complaints about a read-only rootfs.  Sadly, I no longer get any .iso
>> results when I 'bitbake core-image-minimal'
>>
>
> BTW, I tried this with daisy and the CD version (read-only)
> worked just fine for me - the ISO and .hddimg files built with
> no errors.
>
> I'm bisecting now to see what broke...
>

Truly odd.  After doing around a dozen bisected builds (some of
which were pretty messed up), all in the same tree as the original,
I could not reproduce the problem.  So, I tried 100% from scratch,
with the proper settings as above, including the read-only-rootfs,
and it builds & works perfectly(*), both on CD and USB.

Not that I want to find the answer to this, but somehow when I
tried the builds with my errant settings (from early on above),
my build got so messed up that the errors persisted, even when
I fixed the configuration settings.  I thought that it should
be more robust than this.  Is this something I should pursue,
or just treat it as "Doctor, Doctor, it hurts when I ..." and
be happy that it works if you start afresh (which sadly takes
at least 90 minutes on my pretty-fast build server)?

(*) Not a lot was tested and I only used core-image-minimal
which served my needs (to build a stand-alone CD/USB setup
to hand a QA tech).  I did see some complaints about the
read-only file system (e.g. can't save the timestamp on reboot),
but overall worked OK and good enough for this task.

Thanks for the time and sorry for the noise.  Looking forward
to some documentation on this showing up in the future :-)

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the yocto mailing list