Messages in this thread Patch in this message | | | Date | Fri, 01 Jul 2005 23:53:18 +0200 | From | Ondrej Zary <> | Subject | Re: Booting uncompressed kernel image on i386? |
| |
Ondrej Zary wrote: > Is there an easy way to boot uncompressed kernel (2.6) image instead of > the compressed one (bzImage) - using e.g. LILO? > I'm trying to do that because the decompression takes about 15 seconds > on my i386 (it's really an i386 - i386DX/25 :-) The uncompressed kernel > is about 1.5MB. I've already tried compressing it using gzip -1 instead > of gzip -9 but that didn't make decompression any faster. > Nobody answered, time to look at the code :-) The attached patch is a quick hack so "make" will create uncompressed kernel that can be booted in regular way.
-- Ondrej Zary --- linux-2.6.12-printserver/scripts/Makefile.lib 2005-06-28 12:45:20.000000000 +0200 +++ linux-2.6.12-pentium/scripts/Makefile.lib 2005-07-01 23:36:30.000000000 +0200 @@ -177,7 +177,7 @@ # --------------------------------------------------------------------------- quiet_cmd_gzip = GZIP $@ -cmd_gzip = gzip -f -9 < $< > $@ +cmd_gzip = cat < $< > $@ # =========================================================================== # Generic stuff --- linux-2.6.12-printserver/arch/i386/boot/compressed/misc.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.12-pentium/arch/i386/boot/compressed/misc.c 2005-07-01 23:34:55.000000000 +0200 @@ -374,7 +374,15 @@ makecrc(); putstr("Uncompressing Linux... "); - gunzip(); + int i; + for (i = 0; i < input_len / WSIZE; i++) { + memcpy(window, input_data+i*WSIZE, WSIZE); + outcnt = WSIZE; + flush_window(); + } + memcpy(window, input_data+i*WSIZE, input_len % WSIZE); + outcnt = input_len % WSIZE; + flush_window(); putstr("Ok, booting the kernel.\n"); if (high_loaded) close_output_buffer_if_we_run_high(mv); return high_loaded; | |