[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Second round of powerpc subarch investigation : boot-loaders.



On Mon, Oct 20, 2003 at 12:45:47PM -0700, Tom Rini wrote:
> On Mon, Oct 20, 2003 at 09:31:46PM +0200, Sven Luther wrote:
> > On Mon, Oct 20, 2003 at 11:10:21AM -0700, Tom Rini wrote:
> > > On Sun, Oct 19, 2003 at 11:29:38AM +0200, Sven Luther wrote:
> > > 
> > > > Hello,
> > > > 
> > > > 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 :
> > > [snip]
> > > > 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.
> > > 
> > > Boots from the firmware the zImage*.prep from arch/ppc/boot/images in
> > > the kernel.  To build a ramdisk into this, the ramdisk to be used is
> > > placed at arch/ppc/boot/images/ramdisk.image.gz, and 'make
> > > zImage.initrd' is issued.  This file is used on all PReP systems, and
> > > the command to boot varries from Motorola to IBM PReP machines (Motorola
> > > has PPCBug, and for disk it's pboot ...., and 'help pboot' should
> > > describe the arguments, for netboot, 'help niot' or 'help noit', I
> > > forget which and 'nbo' to get and boot the kernel.
> > 
> > Ok, so you only need the zImage.initrd or the zImage (which is renamed
> > to /boot/vmlinuz-2.4.22-powerpc on debian).
> 
> I haven't looked at the packages in ages, but since CONFIG_ALL_PPC
> produces many compressed bootable images, I'll take your word at it
> here.

Yep, altough the packages in the archive only produce the pmac images. I
am currently preparing packages which produce images for all of the
supported subarches.

> > > In general, to embed an initrd into an image (.coff, etc) the image must
> > > be at arch/ppc/boot/images/ramdisk.image.gz and then 'make
> > > zImage.initrd'.
> > 
> > Yep, i know, the problem is that the initrd must contain some kernel
> > modules, which are built during the kernel build phase, so it is not
> > possible to build the initrd before the kernel, nor it is possible to
> > build the kernel before the initrd, so ...
> 
> It is, kinda.  You just do dep/config/modules, build the ramdisk, make
> zImage.initrd.

Sure, but the kernel is built in one step by the
kernel-patch-2.4.22-powerpc package, while the initrd is built in
another step by the debian-installer stuff, ...

> > > >   2) We develop a separate tool (like sparc's piggyback i was told)
> > > >   which is able to add a initrd onto an existing kernel.
> > > 
> > > As the images used, prior to additional tools being run on them (such as
> > > mkprep) use an ldscript to determine locations, this might be possible.
> > 
> > Mmm, i think it may be possible to create such a tool, altough i have
> > the feeling that it must be built from the kernel sources maybe (since
> > there is no need to duplicate the code for it already found in the
> > kernel) and that it needs to be done differently for prep, chrp and
> > pmac. Don't know if chrp-rs6k is different from chrp though.
> 
> It shouldn't need to be done differently on pmac, prep and chrp (and
> chrp-rs6k is not different here, the difference is in mangling the final
> image, more or less).  They all make use of the same variables, which
> are in the linker script.

Which in turn is in the kernel source.

> So if you can keep some intermediate images
> around, things should be OK.  i.e. ship the 'zImage's in their last
> state before they stop being true ELF files, and you can then modify

Is this the vmlinux found at the toplevel directory, and used directly
by yaboot ?

> things (new initrd, etc) and then re-mangle the image (mkprep, etc).

Yep, i would have to prepare a package including all these tools as a
result of the kernel build, and these can be used later on.

Thanks for your help.

Friendly,

Sven Luther



Reply to: