You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
dkms built modules may be compressed in a way unsupported by the kernel #386
dkms compresses some of the packages it builds. I guess this depends on the
kernel config that it builds for.
With xz compression, it compresses it in a way that's not compatible with
kernel's xz. The difference seems to be the CRC:
The only thing that comes off the top of my head is the --ultra compressionsoption.
Kernel supports up-to level 14 (or was it 20), where for 20+ you need to use zstd --ultra, which in itself requires more RAM, as far as decompression is concerned, which is perhaps why the kernel does not support it.
IIRC newer versions of kmod will pass the compressed module directly to the kernel. Older ones will decompress it before hand.
Perhaps kmod could (or should?) callback and uncompress if the kernel cannot load the compressed module?
but then again, why can't module compression be delegated to kbuild? the kernel probably knows best how it wants its modules ... does dkms really have to reinvent that?
Right - turns out both of our xz and zstd commands needed a tweak. The issue should be resolved with #390
You are right though - ideally we'll be using the upstream modules_install. There' s task for that already #319, although I haven't checked if it'll have any caveats.
For the short term, I think we can fix our cmdline args. If anyone want to pursue the modules_install please be my guest.
Activity
evelikov commentedon Jan 25, 2024
The only thing that comes off the top of my head is the --ultra
compressionsoption.Kernel supports up-to level 14 (or was it 20), where for 20+ you need to use
zstd --ultra, which in itself requires more RAM, as far as decompression is concerned, which is perhaps why the kernel does not support it.IIRC newer versions of kmod will pass the compressed module directly to the kernel. Older ones will decompress it before hand.
Perhaps kmod could (or should?) callback and uncompress if the kernel cannot load the compressed module?
anbe42 commentedon Jan 25, 2024
this is about xz not zstd
the relevant option here should be
--check=crc32but then again, why can't module compression be delegated to kbuild? the kernel probably knows best how it wants its modules ... does dkms really have to reinvent that?
anbe42 commentedon Jan 25, 2024
in the Linux git master as of today:
dkms: use saner compression defaults
evelikov commentedon Jan 29, 2024
Right - turns out both of our xz and zstd commands needed a tweak. The issue should be resolved with #390
You are right though - ideally we'll be using the upstream
modules_install. There' s task for that already #319, although I haven't checked if it'll have any caveats.For the short term, I think we can fix our cmdline args. If anyone want to pursue the
modules_installplease be my guest.dkms: use saner compression defaults
dkms: use saner compression defaults