OpenWrt Forum Archive

Topic: RDC kernel 2.6.27 won't uncompress

The content of this topic has been archived on 15 Dec 2016. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I was running 2.6.24 for a while but I was noticing that the wireless driver (rt2x00) was extremely buggy and crashing quite often. The devs said that the issue was fixed in 2.6.27.


When I compiled 2.6.27, everything went fine, but the kernel wouldn't uncompress at bootup. It just sits there. The file size is no larger than the previous kernel. I'm stumped. Building for an AR360w3G. Any ideas?

I am having the same exact problem with 2.6.27.9.  It works well in 2.6.24.7.  I am posting some debugging information.  It dies in the LzmaDecode() function


2.6.27.9 broken
Uncompressing Linux - debug
lzma_unzip()
lzma args - i: 00000000
lzma args - Literal context bits: 00000007
lzma args - Literal pos state bits: 00000000
Dictionary size: 00800000
Uncompressed size: 001A660C
Compressed size: 00000000
Workspace address: 002B0B24
Callback address: 002B5AE8
LzmaDecode()  <---- hangs here


2.6.24.7 works!
Uncompressing Linux - debug
lzma_unzip()
lzma args - i: 00000000
lzma args - Literal context bits: 00000007
lzma args - Literal pos state bits: 00000000
Dictionary size: 00800000
Uncompressed size: 001A8C1F
Compressed size: 00000000
Workspace address: 002B3DA4
Callback address: 002B3D4C
LzmaDecode()
return 0
Done, booting


Digging further into LzmaDecode() here is where it fails

      len += kMatchMinLen;
      early_serial_write("rep0 =\n", 512);
      print_hex_long(rep0);
      early_serial_write("newPos =\n", 512);
      print_hex_long(nowPos);
      if (rep0 > nowPos
        #ifdef _LZMA_OUT_READ
        + globalPos || rep0 > dictionarySize
        #endif
        )
        return LZMA_RESULT_DATA_ERROR;  <----------- it dies right here


I think there is stack corruption.

(Last edited by dhonn on 8 Jan 2009, 02:52)

Testing the patch now. Thanks!

Thanks but I tried it out and it still hangs.  Let me know how it goes aport

No dice for me.


Any compression type still fails.

Interesting.  I don't cross-compile my RDC kernel, just downloaded a kernel from
www.kernel.org applied the lzma  patch and compiled it under Slackware x86
(with sensible options for RDC).  I can email you that kernel or config if you want
and you could try that.  It won't have the flash partitions of course, but it might
get you a bit further.  PM me if you want.

bifferos wrote:

Interesting.  I don't cross-compile my RDC kernel, just downloaded a kernel from
www.kernel.org applied the lzma  patch and compiled it under Slackware x86
(with sensible options for RDC).  I can email you that kernel or config if you want
and you could try that.  It won't have the flash partitions of course, but it might
get you a bit further.  PM me if you want.

Which RDC device are you running?

Hi,
I'm running Edimax BR6315SRG,
I had similar problem:

Uncompressing Linux
Done, booting <---hangs here

I've used openwrt patches, but removed 600-x86_lzma.patch, and applied bzip2-lzma-kernel-2.6.27.6.patch from bifferos instead, and I confim that 2.6.27.6 is booting correctly wink

I believe that lzma decoder suffers from some memory/stack  corruption  on kernels never than 2.6.24.7.

(Last edited by wiewior on 23 Jan 2009, 15:27)

wiewior wrote:

Hi,
I'm running Edimax BR6315SRG,
I had similar problem:

Uncompressing Linux
Done, booting <---hangs here

I've used openwrt patches, but removed 600-x86_lzma.patch, and applied bzip2-lzma-kernel-2.6.27.6.patch from bifferos instead, and I confim that 2.6.27.6 is booting correctly wink

I believe that lzma decoder suffers from some memory/stack  corruption  on kernels never than 2.6.24.7.

Where can I find the bzip2-lzma-kernel-2.6.27.6 patch?

Thanks!


edit: I see that it's in this thread. Durrrrrrr. I haven't had any coffee yet.

(Last edited by aport on 23 Jan 2009, 19:35)

The discussion might have continued from here.