[RFC] Qi Bootmenu

Dave Ball openmoko at underhand.org
Thu Nov 26 16:51:19 CET 2009

Marc Andre Tanner wrote:
> My current build scripts can be found at:
>   git://repo.or.cz/qi-bootmenu-system.git
> It would be nice if someone could try it out by following the 
> instructions
> in the README and reporting back the results.

The attached patch makes a working rootfs for me, including ssh, booting 
into my gui (see below), and chainloading a target system image.  
Currently I've been using a pre-built kernel, my next step is to use the 
kernel integrated in the build scripts, and switch to an initrd rather 
than SD based rootfs.

- use a git snapshot of kexec, including your uImage support
- add /mnt and /etc/dropbear to rootfs
- remount rw so dropbear can create it's key.
- tweak packages and compilation options for my GUI.
- include my gui.

> I also started a bootmenu application which scans the available 
> partitions
> for bootable images.
>   git://repo.or.cz/qi-bootmenu.git
> It doesn't yet include a GUI but Dave Ball started a prototype based on
> evas which is basically option #2 from raster

My gui is very basic [1] - and based on Marc's qi-bootmenu application. 
Currently it scans partitions on the SD card, looking for 
/boot/uImage-GTA02.bin /boot/append-GTA02 and /boot/bootlogo.png.  It 
displays these PNG's in a grid, and boots the target system when the 
image is clicked on.

Still to do:
- use our own kernel build & initrd
- gui improvements
- see if I can strip more out of the build

What are people looking for from a bootmenu GUI?  My implementation 
needs some improvement (feedback when you press a logo, better 
presentation with less than 6 logos), but is designed to be very basic.  
I've only used evas/ecore, so don't have any of elementary's widgets, or 
access to edje / transition effects etc.  My menu doesn't scroll or 
describe which partition your booting (except through the logo).  
Ecore/evas works very well for a simple gui like this, but a more 
complicated gui would make more sense in edje & elementary.

The trade off for a more complex GUI will be the image size, and likely 
some impact on boot speed.  Currently my image takes 12 seconds from 
power on to the gui, though that should go down when we're using a 
minimal kernel and initrd - rather than rootfs.  I've no idea what the 
difference in boot speed will be between an evas/ecore gui and an 
edje/elementary gui.

To try it out as a rootfs:
- grab Marc's bootmenu build system
- Apply my patch
- Follow his README to build the rootfs
- put this rootfs in the first partition of an SD card
- add an appropriate kernel to that partition as /boot/uImage-GTA02.bin
- configure your other distributions on other partitions
- add /boot/bootlogo.png to each partition.  Sample images can be found in
qi-bootmenu-system/build/packages/qi-bootmenu/samplelogos/ though any 
200x180 png should work fine.

It'd be great to hear if this works for anyone!


[1] http://i48.tinypic.com/1zd8907.jpg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: qi-bootmenu-system.diff
Type: text/x-patch
Size: 3905 bytes
Desc: not available
Url : http://lists.openmoko.org/pipermail/devel/attachments/20091126/d32e9621/attachment.bin 

More information about the devel mailing list