I hope this can be dealt with, it seems to be the only remaining
issue in getting Debian to support btrfs root filesystems. 

This is easily reproducible, I installed from a recent daily build
netinst, put /boot on ext3 and / on btrfs and same problem on boot.

The problem is that btrfs depends on libcrc32c, which demand loads
any of several crc32c implementations, depending on hardware. Those
modules are not declared as dependencies, so initramfs-tools does not
include them.

So, another way to see the same problem:

r...@gnu:/lib/modules/2.6.32-5-686/kernel/crypto>mv crc32c.ko ~  
r...@gnu:/lib/modules/2.6.32-5-686/kernel/crypto>insmod ../lib/libcrc32c.ko 
insmod: error inserting '../lib/libcrc32c.ko': -1 Unknown symbol in module
r...@gnu:/lib/modules/2.6.32-5-686/kernel/crypto>mv ~/crc32c.ko .
r...@gnu:/lib/modules/2.6.32-5-686/kernel/crypto>insmod ../lib/libcrc32c.ko
r...@gnu:/lib/modules/2.6.32-5-686/kernel/crypto>

So, at least a workaround would be for the initramfs to have crc32c added to
it whenever libcrc32c is. Attached patch just adds it to the base modules
list; since btrfs is already there that seems like an ok quick fix.

Note that it would probably be better to try first loading hardware optimised
versions like crc32c-intel, and only load crc32c if they fail to load.

(BTW, this bug probably also breaks netbooting with certian ethernet cards
whose drivers also use libcrc32c.)

-- 
see shy jo
--- hook-functions.orig 2011-01-03 16:20:26.705813570 -0400
+++ hook-functions      2011-01-03 16:20:30.278780384 -0400
@@ -412,7 +412,7 @@
                for x in ehci-hcd ohci-hcd uhci-hcd usbhid xhci hid-apple \
                hid-cherry hid-logitech hid-microsoft \
                btrfs ext2 ext3 ext4 ext4dev isofs jfs nfs reiserfs udf xfs \
-               af_packet atkbd i8042 virtio_pci; do
+               af_packet atkbd i8042 virtio_pci crc32c; do
                        manual_add_modules "${x}"
                done
        ;;

Attachment: signature.asc
Description: Digital signature

Reply via email to