[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
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
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