[yocto] Perplexed by boot mechanism

Chris Tapp opensource at keylevel.com
Fri Mar 22 16:23:32 PDT 2013


On 22 Mar 2013, at 23:05, Paul D. DeRocco wrote:

> I'm trying to get a core-image-base-cedartrail-nopvr image to boot from an
> eUSB SSD on an Intel Atom mobo. I'm following the instructions in
> 
> <https://www.yoctoproject.org/download/intel-atom-n2600n2800d2550-wnm10-chip
> set-cedar-trail>
> 
> which tell me to dd the .hddimg file onto the flash drive. But apparently,
> the image isn't an image of a regular bootable system drive, but is a "live
> image" of a smaller system that can either boot the real system from a
> virtualized file system in RAM whose image is read from a single file in the
> first level, or it can install the real system to a different drive.
> (Correct me if I'm mistaken about any of this.)
> 
> What's the point of all this? It seems like a completely unnecessary layer
> of complexity and inefficiency. I have a very vague understanding of the
> whole concept of running a live image off a virtual file system, and it
> seems to make sense when you're booting off a readonly medium like a DVD,
> but this is a writable flash drive. Why doesn't the .hddimg file just
> contain the real target root file system partition in it? Or is that what
> some of those other files in the build/tmp/deploy/images directory
> represent? If the latter, is there a way I can just directly create the
> flash drive the way it will ultimately be used in the final system, without
> using this "live image" stuff?
> 
> I'd really like to be able to create the flash, mount it under Ubuntu, and
> not see the five files the implement the live image, but see the full root
> file system of my target.


Have a look at meta/recipes-core/initrdscripts/files/init-install.sh. This shows how the 'install' boot option of the 'live usb image' gives exactly what you want.

It basically:

1) Partitions the eUSB;
2) Copies the root filesystem (one of you five files) to the eUSB (given the caveats I mentioned in my last message);
3) Installs and configures grub to boot this.

The live image is a quick way to get a system up and running. It allows someone to 'try stuff' and still get back to a working system if they make an error. It's 'install' option allows you to install to a target in a more conventional way - i.e. with all the files/directories you are expecting to see.

I use the live usb image to install my images to target hardware. I've modified the script so I can also use it to install to a sequence of eUSB drives that I plug into an external adaptor when I need to program a load for a production run.

Chris Tapp

opensource at keylevel.com
www.keylevel.com






More information about the yocto mailing list