* Booting uncompressed kernel image on i386?
@ 2005-06-28 12:00 Ondrej Zary
2005-07-01 21:53 ` Ondrej Zary
0 siblings, 1 reply; 4+ messages in thread
From: Ondrej Zary @ 2005-06-28 12:00 UTC (permalink / raw)
To: Linux Kernel Mailing List
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.
--
Ondrej Zary
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Booting uncompressed kernel image on i386?
2005-06-28 12:00 Booting uncompressed kernel image on i386? Ondrej Zary
@ 2005-07-01 21:53 ` Ondrej Zary
2005-07-01 22:16 ` Wakko Warner
0 siblings, 1 reply; 4+ messages in thread
From: Ondrej Zary @ 2005-07-01 21:53 UTC (permalink / raw)
Cc: Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 608 bytes --]
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
[-- Attachment #2: uncompressed-kernel.patch --]
[-- Type: text/plain, Size: 1098 bytes --]
--- 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;
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: Booting uncompressed kernel image on i386?
2005-07-01 21:53 ` Ondrej Zary
@ 2005-07-01 22:16 ` Wakko Warner
2005-07-01 22:18 ` Ondrej Zary
0 siblings, 1 reply; 4+ messages in thread
From: Wakko Warner @ 2005-07-01 22:16 UTC (permalink / raw)
To: Ondrej Zary; +Cc: linux-kernel
Ondrej Zary wrote:
> 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.
> --- 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... ");
Would it not make sense to remove the above line? You're not actually
uncompressing anything.
> - 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;
--
Lab tests show that use of micro$oft causes cancer in lab animals
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: Booting uncompressed kernel image on i386?
2005-07-01 22:16 ` Wakko Warner
@ 2005-07-01 22:18 ` Ondrej Zary
0 siblings, 0 replies; 4+ messages in thread
From: Ondrej Zary @ 2005-07-01 22:18 UTC (permalink / raw)
To: Wakko Warner; +Cc: linux-kernel
Wakko Warner wrote:
> Ondrej Zary wrote:
>
>>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.
>
>
>>--- 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... ");
>
>
> Would it not make sense to remove the above line? You're not actually
> uncompressing anything.
>
It would but I kept it there for debugging (to see where it crashed :-)
Anyway, I'd like to add new target "make uImage" (or something like
that) but that requires more work. Something like this might be
interesting for embedded systems which want to minimalize boot time.
>>- 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;
>
>
--
Ondrej Zary
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-07-01 22:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-28 12:00 Booting uncompressed kernel image on i386? Ondrej Zary
2005-07-01 21:53 ` Ondrej Zary
2005-07-01 22:16 ` Wakko Warner
2005-07-01 22:18 ` Ondrej Zary
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox