[PATCH] Making vmlinux Multiboot compliant and grub capable of loading modules at boot time. (1 Part)

From: Christian Koenig (@t-online.de)
Date: Sat Dec 08 2001 - 08:59:18 EST


Hi,

First this patch isn't "release ready", but I need some help with it.
I split this up in 2 Parts because it is a little bit large (~80Kb).

The patch is for 2.4.14 Kernel Source, but it should patch well on other
Versions (at least the module loader).

This is the 2nd Part wich adds Multiboot compatibility to vmlinux, by adding a Multibootheader to
arch/i386/kernel/head.S

The Multiboot information (apm-table, memmapping....) are converted to linux
conform things, and the Memory used by the Modules is reserved with the
bootmem bitmap in
arch/i386/kernel/setup.c

The reserved data is released in
arch/i386/mm/init.c
when the Init data is released.

Then in
init/main.c
a newly created elf-object loader is called in
kernel/boot_modules.c
inserting the Modules into the kernel (this is in the 2Part of the Patch).

With this grub is capable of loading multiple modules at boot time, before
the root fs is mounted..
This can't be done with initrd, because you could on load one single initrd
Image.

Look at the "Debian Installation Disk's" for an example that this is usefull, at the moment they use 4 different kernel Images for the (i386) Installation disks, with this patch they would only need 1 kernel Image.

My question is what should I do to make this patch "clean" ?
I know that vmlinux isn't compressed and contains unused elf-sections.
And I know that the elf-loader is a simple copy,paste & "make it working" from
the insmod sources.

Tell me what you thing about it.

MfG, Christian König. (and sorry for my poor English).



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 15 2001 - 21:00:12 EST