Second round of powerpc subarch investigation : boot-loaders.
In order to continue work on making debian-installer subarch friendly, i
now launch a second round of investigation concerning the way different
subarches boot. The situation as i understand it is :
newpmac: uses yaboot (uncompressed kernel + separate initrd) or OF
(.coff kernel, don't know about initrd). Debian-installer will boot with
yaboot, and the CDrom can be made to be auto-bootable, altough i don't
oldpmac: uses bootx, miboot, quik or serial console OF. OF uses the
.coff kernel, don't know about initrd. miboot uses floopy for kernel
(compressed) and initrd. bootx can use a kernel and separate initrd, and
quik cannot be used for cdrom boot. It is said that it is possible to
use miboot to cdrom boot or ssomething such, but i have not confirmed
these rumors. debian-installer will be installable from either bootx
(uncompressed kernel + separate initrd) altough we will not provide
bootx on the CD, or miboot (two or more floppy images).
chrp: can use either yaboot or OF. yaboot, same as newpmac, OF will use
the chrp kernel with a initrd builtin (don't know if it is possible to
use a separate initrd when booting with OF from the disk), but it is
also possible to boot a kernel and separate initrd from the net.
chrp-rs6k: don't know if yaboot works, so this let the OF solution, same
chrp-pegasos: yaboot doesn't work, netboot is not possible, and the OF
doesn't know about adding a initrd to the kernel. Only a kernel +
builting initrd boot is possible, which poses a chicken and egg problem
as far as debian-installer build is concerned. That said, i now have
access to the non-free highly proprietary OF sources, so things may
improve with time.
prep: no idea. yaboot doesn't work, nor does quik. There is no OF, but i
think some kind of direct booting as well as netbooting is available.
kernel with builtin initrd should work.
apus: apusboot is used, which is the same kind of program as bootx,
except that it could possibly be built from free stuff on linux, if we
port the free amiga/ixemul library to a linux cross-gcc environment. In
my opinion, it is not worth it, but we have traditionnaly included this
little program in the bootfloppies.
other ppc arches: We don't currently support any of them.
So, the real problem, apart from writing a quik-installer (who
volunteers from doing this job) and writing documentation for all these
cases, is how to solve the kernel+initrd dilemna. The problem is that
the initrd contains modules, which are built as part of the kernel, but
that currently the initrd can be added only during the kernel phase.
There are various solutions to this, i will give three of them here :
1) We copy a part of the built tree in a .deb which will then be used
by debian-installer build to add the initrd into the kernel. I tried
this, but the resulting kernel was not able to find the initrd.
2) We develop a separate tool (like sparc's piggyback i was told)
which is able to add a initrd onto an existing kernel.
3) We build the kernel as part of the debian-installer build system,
and can thus use a specific configuration, possibly even many of them,
one of them being specialized for miboot and its 1.3Mo kernel size
requirement, and build the kernel udebs from that.
I myself favor either the solution 2) or 3). The problem with 2) being
that i have no idea how to do that, and my current experiments did fail,
3) would make the debian-installer build longer, but is the most
straigthforward solution to this problem, and would enable to have a
trimmed down kernel for installation, and maybe even one which is
adapted to each particular subarch.
So, please, fill in the blanks above if you have access to one of those
architectures (chrp, chrp-rs6k and prep), and give opinions on the below