libcrc32c.ko does not declare dependancy on crc32c.ko
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Tim Gardner | ||
Natty |
Fix Released
|
Undecided
|
Tim Gardner |
Bug Description
As a result, depmod doesn't report the dependancy in modules.dep, and initramfs doesn't pull crc32c.ko when a module declares libcrc32c.ko as a dependency.
I ran into this when I noticed I couldn't remote boot a machine that uses the bnx2x.ko 10Gb BroadCom Enet adapter.
bnx2x.ko depends on libcrc32c.ko another module, and all were properly present in initramfs. But the NIC driver didn't load. When attempting to manually insmod the module from the BusyBox, I realized libcrc32c was not loading, and insmod'ing libcrc32c from a fully booted machine, I realized it actually loaded crc32c.ko -- that didn't exist in the initramfs image.
Running modinfo on libcrc32c.ko shows no dependancy.
Consistently, modules.dep doesn't report any dependancy for libcrc32c.ko
This results in all kind of nasty irritating problems when libcrc32c.ko is needed in initramfs (including a number reported in launchpad), like when people try to use btrfs as their root and end up being unable to boot.
This problem has existed for a while, and has most likely been introduced with this patch:
http://
ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: linux-image-
Regression: No
Reproducible: Yes
ProcVersionSign
Uname: Linux 2.6.35-23-generic i686
AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code 2: ls: cannot access /dev/snd/: No such file or directory
AplayDevices: aplay: device_list:235: no soundcards found...
Architecture: i386
ArecordDevices: arecord: device_list:235: no soundcards found...
Date: Fri Nov 26 15:48:34 2010
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release i386 (20101007)
MachineType: HP ProLiant DL380 G6
PciMultimedia:
ProcCmdLine: BOOT_IMAGE=
ProcEnviron:
SHELL=/bin/bash
LANG=en_US.utf8
SourcePackage: linux
dmi.bios.date: 10/14/2010
dmi.bios.vendor: HP
dmi.bios.version: P62
dmi.chassis.type: 23
dmi.chassis.vendor: HP
dmi.modalias: dmi:bvnHP:
dmi.product.name: ProLiant DL380 G6
dmi.sys.vendor: HP
The simplest solution is likely to just set CONFIG_ CRYPTO_ CRC32C= y in the kernel config since there isn't a symbolic binding between lib/libcrc32c.c and crypto/crc32c.c
Have you tried adding 'crc32c' to /etc/modules ?