Hello, I am not sure the "rm -rf linux/arch/i386/boot" is an acceptable delta for the current code management system, but anyways it is only the second step - after the attached patch has been discussed, modified and hopefully accepted. Unfortunately this second step will break compatibility with LILO and GRUB - the kernel would only boot with Gujin version 1.2 or more ( http://gujin.org ), so we have some time before this cleanning begins, and have to stay compatible in between. In this mean time, the current patch is a complete rewrite of all the code executed in real mode - and so a complete replacement of all the directory linux/arch/i386/boot into one C file named arch/i386/kernel/realmode.c and its include include/asm-i386/realmode.h The mapping of the BIOS information reported to the kernel is the same, the one described in Linux/Documentation/i386/zero-page.txt - but is now expressed in the form of C structures. The kernel file becomes a lot simpler to generate, it is just an ELF file (the usual file linux/vmlinux you already get during the build process) transformed into binary by objcopy and gzip'ed. A small part is added during the link of vmlinux file: the content of realmode.c which contains a C function that the kernel need to get information from the BIOS (compiled with GCC / executed in real mode). Most of this function is written in C - have a look for yourself. To generate a kernel: make /boot/linux-2.6.13.kgz # the root filesystem will be autodetected make /boot/linux-2.6.13.kgz ROOT=/dev/hda3 # root filesystem forced You will need to install Gujin, either on a floppy, on your hard disk into a partition or at the end of your hard disk, or to a CDROM. No Configuration of Gujin is needed - because the configuration file does not (and will never) exists. Have a look at Gujin FAQ in the Documentation Manager of sourceforge before asking, please. The attached patch is made based on linux-2.6.13-rc2 , to apply to linux-2.6.12 you need to modify the patch replacing "phys_startup_32" by "startup_32" and removing " - LOAD_OFFSET" before applying. I will learn GIT soon - but for now... The generation process need to insert comments into the GZIP file, in the field reserved for this purpose, for instance to describe kernel characteristics like which processor is supported, and so the patch contains a BSD-licenced tool I wrote named gzcopy for the job. Note that there is no more limit in the size of the kernel using Gujin - but an "all yes config" without any modules will only boot up to some point: it seems that some (audio card?) driver need DMA able memory (i.e. below 16 Mbytes) else they crash the kernel. Unfortunately by default this "all yes" kernel is loaded at address 1 Mbyte and it is far bigger than 15 Mbytes. A modification of the load address need some change in the kernel - Gujin is already ready to load anywhere you want. Note also that the x86_64 architecture will need some cleanning too, but it will only be the third step. Signed-off-by: Etienne Lorrain <[email protected]> Have fun [you can check by yourself, it works], Etienne.
Attachment:
patch-gujin-2613rc2.gz
Description: application/gzip-compressed
- Prev by Date: Re: Realtime Preemption, 2.6.12, Beginners Guide?
- Next by Date: Re: Open source firewalls
- Previous by thread: Re: Re-routing packets via netfilter (ip_rt_bug)
- Next by thread: [PATCH] mb_cache_shrink() frees unexpected caches
- Index(es):