You are not logged in.
$ locate crystalhd.ko
/lib.bak/modules/3.2.5-1-ARCH/kernel/drivers/staging/crystalhd/crystalhd.ko
/usr/lib/modules/3.4.4-3-ARCH/kernel/drivers/staging/crystalhd/crystalhd.ko
/usr/lib/modules/3.4.5-1-ARCH/kernel/drivers/staging/crystalhd/crystalhd.ko.gz
/usr/lib/modules/3.4.5-1-ARCH/kernel/drivers/video/broadcom/crystalhd.ko
When I do
sudo modprobe crystalhd
dmesg shows:
[119925.028957] crystalhd: module is from the staging directory, the quality is unknown, you have been warned.
[119925.047803] Loading crystalhd 0.9.27
Why does it ignore the driver in drivers/video/broadcom and picks the one from drivers/staging instead?
And If I just remove the staging/crystalhd folder then I get
$ sudo modprobe crystalhd
ERROR: could not insert 'crystalhd': Unknown symbol in module, or unknown parameter (see dmesg)
(and dmesg actually doesn't show anything new from this.)
Edit: Well, I just gzipped the "good" driver file and replaced the crystalhd.ko.gz file in staging with that. Seems to work. Although I'd prefer to understand what was actually going on..
Edit2: Dmesg says the driver is loaded, yet VLC says
[0xb51041e8] crystalhd decoder error: Couldn't find and open the BCM CrystalHD device
although the device is there, but dmesg gives an error
$ ls /dev/crystalhd -la
crw-rw-rw- 1 root root 250, 0 Jul 23 08:47 /dev/crystalh
[ 9226.052235] crystalhd 0000:04:00.0: Opening new user[0] handle
[ 9226.655631] crystalhd 0000:04:00.0: [crystalhd_flea_download_fw]: step 7. Error bit occured. RetVal:c00018
[ 9226.655657] crystalhd 0000:04:00.0: [crystalhd_flea_download_fw]: step 7. Firmware image signature failure.
[ 9226.655662] crystalhd 0000:04:00.0: Firmware Download Failure!! - -1
[ 9226.791189] crystalhd 0000:04:00.0: Closing user[0] handle via ioctl with mode 10200
No idea what's wrong now. Before I did pacman -Syu and the kernel got updated crystalhd worked fine.
Edit3: A reboot fixed it. o_o" My system is trying to trick me! I'd still like to know though why it used the staging driver instead of the normal one.
Last edited by Jindur (2012-07-23 06:16:13)
Offline
The better way to load the correct driver is to just use "insmod" on the crystalhd.ko" file in the actual non-staging folder. By now (got a newer Kernel meanwhile) that would be:
sudo insmod /usr/lib/modules/3.4.7-1-ARCH/kernel/drivers/video/broadcom/crystalhd.ko
And the problems with modprobe not recognizing the good driver, could they have to do with not using "depmod" command? I'm new to this stuff really.
(And about rebooting to fix the firmware error -> https://bbs.archlinux.org/viewtopic.php … p1144191.)
Last edited by Jindur (2012-08-10 09:19:10)
Offline
There's only one crystalhd module in the kernel tree (and its in staging). You seem to have omitted the fact that you're compiling your own version of this driver. You need to put this in /usr/lib/modules/$kernver/updates and rerun depmod in order for modprobe to favor your module over the one in staging (over the one in kernel/, really).
Offline