KEXECBOOT KERNEL ================ For the Zaurus a special kernel+initramfs has been developed. This special-purpose kernel is small enough to be flashed on NAND and features a framebuffer graphical menu for the selection of boot media containing the kernel to be kexec'ed in the second phase. Multi-partition cards and lots of filesystems are supported. The kernels to be launched are searched for in /boot of each available partition. There is a also a configuration file (/boot/boot.cfg) which allows selection of other kernels, custom kernel command lines, and specifies the label and the icon for each instance. How to install: Just unpack zaurus-installer-YOURMACHINE.tar.gz on a free (FAT or EXT2/3 formatted) partition: the package contains the kexecboot-kernel and the updater.sh utility. Then proceed as usual for flashing (switch off, pull battery out, insert battery again, before inserting AC plug press OK+Power On. In the Japanese Menu select 4 and finally 3 for SD card or 4 for CF). For the SL-5500 (collie) and optionally for other Zaurus too, flashing is possible just using the routines of the original firmware: reset the unit, Press C and D button together and shortly push the reset switch. Note that the kernel must be renamed 'zImage' (not 'zImage.bin') and the CF card must be formatted FAT16. ZAURUS FLASHING HOW-TO ====================== The typical flashing procedure mentioned above is easy, using updater.sh script which expects the following files: zImage for kernel initrd.bin for rootfs in mtd2 home.bin for second rootfs in mtd3 (optional) Alternatively all the flashing work can be done from command line, separately for each partition: mtd1 kernel (using nandlogical) mtd2 rootfs (using nandwrite) mtd3 home (using nandwrite) kernel ====== Typically you should rarely update linux-kexecboot on device, Besides the updater.sh method you could use the nandlogical tool. This utility allows flashing of the kernel directly from shell on all Zaurus except collie (collie has NOR flash and not NAND) Example: nandlogical /dev/mtd1 WRITE 0x0E0000 0x140000 zImage.bin JFFS2 images on the other partitions ==================================== Once built, the jffs2 and/or ubifs images need to be flashed on device. For JFFS2 the typical choice is the usual flashing procedure using updater.sh but you could do it from shell as well using nandwrite (from mtd-utils): Example: one image on mtd2 and another one on mtd3 (optional) 1st rootfs: plain JFFS2 image flash_eraseall -j /dev/mtd2 nandwrite /dev/mtd2 /path/to/core-image-base--.rootfs.jffs2 2nd rootfs: JFFS2-summary image flash_eraseall -j /dev/mtd3 nandwrite /dev/mtd3 /path/to/core-image-base--.rootfs.jffs2.sum Note: flash_eraseall is deprecated because the erase-counters are reset! NOTES FOR COLLIE ====================== Collie flash memory is NOR and not NAND as on the other models so the utility to use is flashcp instead of nandwrite. for kernel: flashcp /zImage /dev/mtd1 for rootfs: flashcp /initrd.bin /dev/mtd2 UBIFS images ============ Recent kexecboot versions can boot the first ubi volume found on each device. Ubi volumes must be created with the proper ubi-tools (from mtd-utils). The quick and easy way is to flash the rootfs.ubi image created by ubinize: the flash will be erased by ubiformat. ubiformat /dev/mtd2 -f /rootfs.ubi Alternatively you can do the single steps and populate the volume(s) with one custom rootfs.ubifs. Example: one volume with max available size ubiformat /dev/mtd2 ubiattach -p /dev/mtd2 ubimkvol /dev/ubi0 -N volume_name -m ubiupdatevol /dev/ubi0_0 /path/to/core-image-base--.rootfs.ubifs Same operations can be done for mtd3 where available.