[Gta04-owner] New U-Boot, Multi-Boot-Menu, recommendations for Distros

Dr. H. Nikolaus Schaller hns at goldelico.com
Mon Oct 29 16:21:18 CET 2012

Hi all,
I finally found some time to implement something that many of us
had wished for a while:

a simple and fail safe installation of one or even several different
GNU/Linux distros on a single SD card without complex formatting
instructions (except for setting up the boot loader once if not done
in factory).

This should simplify switching between different operating systems
(e.g. QtMoko, SHR, Replicant, ...) needing only a reboot.

And it should remove all boot complexity from distro and kernel developers
(as long as they can live with ext and FAT file systems).

Here it is.



* scans up to 4 partitions for an ext file system
* watches out for uImage and/or bootargs.scr on SD
* this allows kernel and distro developers to provide their own bootargs.scr
* boots the first kernel it finds
* the search order can be changed by the user through the graphical menu
* if no kernel is found or there is no SD, there is a fallback to boot from NAND

Recommendations to Distro maintainers:

* please don't include an copy or your own u-boot.bin, MLO or boot.scr
* these are preinstalled in (future) devices shipped from the factory
* write your bootargs.scr to set the kernel arguments as needed
* example: <http://download.goldelico.com/gta04/20121029-GTA04-Production/src/bootargs.txt>
* just pack Kernel + bootargs.scr + your rootfs so that users can install
  them to an arbitrary partition of an ext formatted SD card
* note: it still works with FAT+ext if the bootargs.scr knows how to mount the
  rootfs from a different partition

Recommendations to Users:

A) if you want to restore or upgrade (recommended) the boot loader

* install the hw-validation image on an SD card using the makesd script
* if it is really a new version it will flash the new u-boot, X-Loader and
   will set up the boot.scr and the graphical boot menu
* if the device does not boot this way (e.g. screen stays dark although
   battery is charged), power on while pressing and holding the AUX
   button. This will also load U-Boot from the SD card and will force flashing
* a technical note: unless the X-Loader or U-Boot in NAND is damaged
   the formatting requirements of the card are relaxed. You don't even need
   a MLO file in this case.

B) installing kernel and rootfs on SD card(s)

* format your SD card with one or more ext2/3/4 partition(s) - no need
   for using makesd any more
* install the system(s) you like to the partition(s) [make sure the kernel
   and the bootargs.scr is found in /boot]
* just power on to boot from SD. This will boot the last choosen system.
* if you want to boot a different system, power on with AUX button
   pressed and choose the first partition to be searched for by the
   SD:1 ... SD:4 buttons
* you can also choose to boot from NAND - in this case the SD card
   is skipped even if there is a valid Linux system
* the boot order is stored in NAND flash so that the next power on
   will use the same search order. The result may be different of course
   if you have swapped the SD card...

A full description is planned.


More information about the Gta04-owner mailing list