public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 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