The kernel fails to boot if compressed with bzip2 or lzma, gzip works. Commit 4a2ff67c88211026afcbdbc190c13f705dae1b59 does: --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -208,7 +208,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \ # Bzip2 and LZMA do not include size in file... so we have to fake that; # append the size as a 32-bit littleendian number as gzip does. -size_append = /bin/echo -ne $(shell \ +size_append = printf $(shell \ dec_size=0; \ for F in $1; do \ fsize=$$(stat -c "%s" $$F); \ This is wrong, because it calls the shell's builtin printf (instead /usr/bin/printf) which does not support the necessary arguments. At my machine (debian) "/bin/echo -ne" works.
I have the same issue. After change to gzip compression, it properly boots. With bzip2 or lzma, i got: baryluk@sredniczarny:/sctank2/Dane/linux/linux-2.6/linux-2.6$ md5sum ./arch/i386/boot/bzImage ; qemu -kernel ./arch/i386/boot/bzImage 8ff875e103dbe7f88c344f3a91f0d3fa ./arch/i386/boot/bzImage qemu: fatal: Trying to execute code outside RAM or ROM at 0x3133feb0 EAX=3133feb0 EBX=3128b000 ECX=00000000 EDX=00000000 ESI=00000000 EDI=3128affc EBP=00100000 ESP=317425c0 EIP=3133feb0 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0018 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] CS =0010 00000000 ffffffff 00cf9b00 DPL=0 CS32 [-RA] SS =0018 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] DS =0018 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] FS =0018 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] GS =0018 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] LDT=0000 00000000 00000000 00008200 DPL=0 LDT TR =0020 00001000 00000067 00008900 DPL=0 TSS32-avl GDT= 00012bb0 00000027 IDT= 00000000 00000000 CR0=60000011 CR2=00000000 CR3=00000000 CR4=00000000 DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 DR6=ffff0ff0 DR7=00000400 CCS=0005b2e0 CCD=0002d970 CCO=SARL FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80 Last commit dd59f6c76b265ed2ff18b497d6105a9511b1feb1 All other CONFIG_* options was excluded, leaving minimal possible kernel.
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface). On Sun, 20 Dec 2009 01:46:05 GMT bugzilla-daemon@bugzilla.kernel.org wrote: > http://bugzilla.kernel.org/show_bug.cgi?id=14848 > > Summary: Kernel fails to boot if compressed with bzip2 or lzma > Product: Other > Version: 2.5 > Kernel Version: 2.6.33-rc1 > Platform: All > OS/Version: Linux > Tree: Mainline > Status: NEW > Severity: normal > Priority: P1 > Component: Other > AssignedTo: other_other@kernel-bugs.osdl.org > ReportedBy: sd@sedf.de > Regression: Yes > > > The kernel fails to boot if compressed with bzip2 or lzma, gzip works. > > Commit 4a2ff67c88211026afcbdbc190c13f705dae1b59 does: > > > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -208,7 +208,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) > || \ > > # Bzip2 and LZMA do not include size in file... so we have to fake that; > # append the size as a 32-bit littleendian number as gzip does. > -size_append = /bin/echo -ne $(shell \ > +size_append = printf $(shell \ > dec_size=0; \ > for F in $1; do > \ > fsize=$$(stat -c "%s" $$F); \ > > > This is wrong, because it calls the shell's builtin printf (instead > /usr/bin/printf) which does not support the necessary arguments. > > At my machine (debian) "/bin/echo -ne" works. > Please send a tested, signed-off patch as per Documentation/SubmittingPatches, thanks.
*** This bug has been marked as a duplicate of bug 14907 ***