Module loading problem in joyride?

Mitch Bradley wmb at laptop.org
Sat Nov 22 13:40:49 EST 2008


>
> Can anyone else reproduce this? "modprobe asix" under joyride fails. I
> tested 2550 and 2556.
>
> dmesg says:
> JFFS2 compression type 0x02 not available
> Error: jffs2_decompress returned -5
> Module len 20480 truncated
>   

Short answer: the kernel configuration could be missing CONFIG_JFFS2_RTIME .

My best guess is that the compression choices list for the mkfs.jffs2 
that is used to create the jffs2 filesystem image includes RTIME 
compression, but the kernel does not.  (RTIME is a simple lz-style 
scheme that is almost always inferior to zlib on a compressed size metric.)

There are two things that could have changed - either RTIME compression 
was added to the mkfs.jffs2 configuration, or it was removed from the 
kernel configuration (or both).  My best guess is that it was removed 
from the kernel at some point, because I know that, at least at one 
point in OLPC's past, RTIME compression was enabled.  I know this 
because there was an OFW bug in which OFW encountered an 
RTIME-compressed node and couldn't handle it.  OFW now supports RTIME 
decompression.

You might think that a problem like this would show up very quickly, but 
that turns out not to be the case.  Zlib compression beats RTIME 
compression nearly every time, so the "choose the compressor that works 
best for the given node" policy chooses RTIME only once in a blue moon.

The best solution would be:

a) In mkfs.jffs2, turn off RTIME compression so it is never used in 
pristine filesystems
b) In the kernel, enable both CONFIG_JFFS2_RTIME and JFFS2_CMODE_PRIORITY

The suggested kernel setting makes the RTIME decompressor available if 
needed, but ensures that when zlib (higher priority) succeeds, the 
kernel won't waste time on RTIME.  There's still some time wasted when 
zlib can't reduce the size - instead of just punting and storing an 
uncompressed node, it will try RTIME.  Ideally, it would be better to 
disable RTIME decompression entirely, so as not to waste that time.  
While there is a #define to do that - JFFS2_RTIME_DISABLED - I see no 
Kconfig option to control it at that .config level.




More information about the Devel mailing list