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