On Zaurus there is a bootloader, this will select the device to boot, load a kernel and start the system. uboot is a bootloader.
The Angstrom project developed a tool called kexec that allows you to switch to another kernel from a running system. You can also make a kexec boot selector to choose from kernels stored on various media such as NAND, HDD, or memory card.
kexec probes all bootable devices and looks for a directory /boot containing the following 3 files
- zImage (the kernel)
- image.nfo (One line description of the kernel, for the menu)
- kernel-cmdline (kernel command line parameters)
The probe stage can be quite slow, it may be quicker to boot a distribution using a standard bootloader and then run kexec on the command line to switch to the other kernel.
Note that Angstrom has the altboot utility that also allows multibooting.
Download kexec here: http://projects.linuxtogo.org/frs/?group_id=55
The Sharp ROM and Cacko both have restrictions:
- The NAND has the original layout.
- The hard drive on SL-C3xxx must have specific partitioning and files.
The Sharp kernel is based on 2.4 and does not read command line parameters, that's why some of these things are hard coded, such as drive layout.
The hard drive requirement may be removed from Cacko, using this script by ZDevil. It modifies the rc.rofilesys start up script.
Note the Sharp ROM will show the Sharp logo while booting. Other ROMS will not show this logo because they have other images, such as Tux compiled in.
Cortez's Android uses altboot, a tool from OpenEmbedded to set up a root filesystem after booting with the Poky kernel.
Andromeda can be run via the kexec bootloader.
Zubuntu comes ready to run via the kexec bootloader.
- kexec will not show extended partitions on SD cards
- The kernel must be named zImage for kexec to find it
- If the requirements for the Sharp ROM are not met then there are various manifestations of kernel panic, hang/lock up etc that you may encounter