You are not logged in.

#1 2012-07-23 03:14:24

Jindur
Member
Registered: 2011-09-29
Posts: 184

modprobe ignores driver and picks staging version

$ 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

#2 2012-08-10 09:18:16

Jindur
Member
Registered: 2011-09-29
Posts: 184

Re: modprobe ignores driver and picks staging version

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

#3 2012-08-10 10:13:19

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: modprobe ignores driver and picks staging version

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

Board footer

Powered by FluxBB