[Gen8 Android Development] alephzain:
Hi,

Here a release of kboot.

Kboot permit to boot multiple os with different kernel.

It's based on a buildroot environment.

The source to make your own kboot filesystem are available here

The kernel source are available here

You can download the install archive :

ARCHIVE VERSIONS

0.0. Unstable release. Freeze bug. Install release ARCHIVE (Obsolete)

0.1. Fix freeze. Python bytecode generation (pyc files) is naturally not friend with squashfs. Install release ARCHIVE (Obsolete)

0.2. STABLE Release. Display timeout, migration from squashfs to initramfs. Install release ARCHIVE

The archive looks like :

zImage and initramfs.cpio.gz to flash in SDE menu

a directory kboot which contain:

conf directory : configuration file

os directory : os to boot

images directory : background menu image

Installation

Kboot directory

Copy the kboot directory on your archos in /mnt/storage/, you should have this path /mnt/storage/kboot. The path should be exactly the same otherwise kboot will not be launched

Flash zImage and initramfs.cpio.gz

Follow this link to setup SDE on your archos http://xdaforums.com/showthread.php?t=930197

After Reboot

You should have the following screen. Note: after installing Kboot the device permanently reboot in Kboot.

The main menu will display the os put in os directory (see in Configuration OS boot menu to see how to include your os), advanced menu and halt.

Boot menu

OS boot menu

I have tried to make things simple. To add an OS, all you need is to create a directory in /mnt/storage/kboot/os/ and put in this newly created directory the files zImage and initramfs.cpio.gz.

Important, the name should be exactly zImage and initramfs.cpio.gz, if one file is missing or misnamed the menu item don't appear

For example, the menu above have the following content in /mnt/storage/kboot/os :

/mnt/storage/kboot/os/Android Froyo:
drwxrwxrwx 2 2000 2000 4096 Feb 27 23:42 .
drwxrwxrwx 5 2000 2000 4096 Feb 28 15:02 ..
-rw-rw-rw- 1 2000 2000 726520 Feb 27 23:39 initramfs.cpio.gz
-rw-rw-rw- 1 2000 2000 2564460 Feb 27 23:39 zImage

/mnt/storage/kboot/os/Android Honeycomb:
drwxrwxrwx 2 2000 2000 4096 Feb 27 16:46 .
drwxrwxrwx 5 2000 2000 4096 Feb 28 15:02 ..
-rw-rw-rw- 1 2000 2000 0 Feb 27 13:42 initramfs.cpio.gz
-rw-rw-rw- 1 2000 2000 0 Feb 27 13:42 zImage

/mnt/storage/kboot/os/UrukDroid 1.6:
drwxrwxrwx 2 2000 2000 4096 Feb 28 15:03 .
drwxrwxrwx 5 2000 2000 4096 Feb 28 15:02 ..
-rw-rw-rw- 1 2000 2000 2874800 Jan 3 19:41 initramfs.cpio.gz
-rw-rw-rw- 1 2000 2000 2302252 Jan 3 19:26 zImage

Note : for specific kernel you can add a file named cmdline containing kernel parameters

Advanced boot menu

Boot init : boot into android, if android kernel was uninstalled, this item didn't appear

Boot recovery : boot into recovery

Soft boot : For details about omap soft reboot see the discussion here

Configuration

There is a configuration file in kboot/conf directory named config.ini. This file is divided into 3 section

init

telnet : 1 to enable telnet, 0 to disable

usbip : set the ip address of usb ethernet interface

[init]
telnet = 1
usbip = 192.168.10.1

kboot

last_selection : enable (1) or disable (0) the boot by default of the last selectioned entry after a configured timeout

last_selection_timeout : timeout in second

softboot : enable or disable softboot menu

title_font_size : set the title font size

menu_font_size : set the menu font size

title_color : title color in r,g,b format

menu_item_color : menu unselected color in r,g,b format

menu_item_selected_color : menu selected color in r,g,b format

[kboot]
# boot last selection if no key pressed after 30 seconds
last_selection = 1
last_selection_timeout = 30
# enable soft boot menu (bootloader dev only)
softboot = 1

# some tuning
title_font_size = 36
menu_font_size = 32
# change the color, R,G,B format
title_color = 255,255,255
menu_item_color = 92,97,98
menu_item_selected_color = 0,0,255

softboot

item<n> : the boot sequence wanted

[softboot]
# put a list of items to display in Soft boot menu
# item<n> = sequence
item1 = uart,usb,mmc1,mmc2
item2 = uart,usb
item3 = mmc1,mmc2

background image

To customize the background image, just replace the file kboot/images/bkg.png with your own and adapt if necessary the size and the font color.

BUGS

Feedbacks are welcome ;)