Werner Almesberger wrote:
- there has to be a (small) configuration file parser
- it would create a shared configuration resource, i.e., first
and second partition would share the same file, even though
they are otherwise independent from each other. (LILO and GRUB
have that issue as well and nobody seems to be overly bothered
by it, so perhaps this isn't such a big problem.)
A possibility here would be to write Qi configuration into the first
sector ("MBR") of the SD card. According to Wikipedia there are 440
bytes available for boot code (which will never be used on a Freerunner)
before the partition table. This should be enough to store a few boot
entries, each one specifying the location of a kernel and an optional
file holding a commandline for that kernel.
User editing could be done with a small userspace program that would
dump the sector to a temporary text file, allow the user to edit it, and
then convert it back to the binary format (after validating it). This
program could also have a quick mode to change which of the possible
entries would be booted by default, to make it easy to switch between
partitions in a multi-boot environment (e.g. "qi-conf -b 3" to set entry
#3 as the default).
If Qi detected an invalid structure in the MBR (or if the user pressed
some button to request recovery mode) then it would ignore the SD card
and load a kernel + recovery rootfs from NAND.