Table of Contents
This image has still not been heavily tested, so use it at your own risk and DON'T forget to make backup before testing it.
MultiBoot Image
MultiBoot is a minimalistic self containing linux system designed to solely fit inside the Recovery partition of the AC100.
It offers a multiboot menu thanks to KexecBoot project using a modified 2.6.38 kernel. This kernel supports the kexec syscall, so any linux distro can virtually be booted with this MultiBoot image, including Android.
Installation
Where to install ?
Although MultiBoot can just be installed in place of the main kernel, but can also be installed on the recovery partition.
Please note that booting a different system through the recovery menu is only supported on the bootloader provided by Android 2.1. If you have upgraded your AC100 to Android 2.2 prior to install linux, it's highly advisable to downgrade your AC100 to Android 2.1 (you do have backups, don"t you ?)
Download
Official MultiBoot release 1 image is available from there: http://www.pkg.fr/chrome/site/multiboot-r1.img
Using nvflash
From a working AC100 system
Check that your sos partition is /dev/mmcblk0p1 with:
abootimg -i /dev/mmcblk0p1
And install it with:
dd if=multiboot-r1.img of=/dev/mmcblk0p1
Usage
Create a /boot subfolder in any MMC partition. To try it, you can just use any SD Card large enought to contain a kernel image and an initrd: 8Mb can be enought but more is better ;)
When booting, Kexecboot will scan all available partition for a /boot subfolder.
Create a config file named boot.cfg. You may just used the example from: https://gitorious.org/~tequila/ac100/tequilas-ac100-multiboot/blobs/master/config/boot.cfg
In that example, zImage kernel and initrd.img initramfs are in the same folder than boot.cfg.
The path for KERNEL and INITRD lines are from the base of the used partition.
Check eventually the KexecBoot documentation.
Boot your device on multiboot, wait few seconds, select the kernel you want with the arrow keys, than press Enter.
Tips and Tricks
Sources
MultiBoot sources are hosted on gitorious: http://gitorious.org/~tequila/ac100/tequilas-ac100-multiboot
Retrieve git repository:
$ git clone git://gitorious.org/~tequila/ac100/tequilas-ac100-multiboot.git
Built it:
$ cd tequilas-ac100-multiboot $ ./build_all
Technical details
Essentially, kernel is modified to not disable D-cache during machine_kexec call.
In the kernel configuration, it is important to disable SMP and THUMBEE to have kexec syscall working.