[pvrusb2] pvrusb2 and 2.6.27 - No device
Mike Isely
isely at isely.net
Thu Oct 16 22:26:01 CDT 2008
On Thu, 16 Oct 2008, devsk wrote:
> Mike,
>
> It seems like 2.6.27 has a version of pvrusb2 which doesn't work anymore. The module loads but no device is file is created in /dev/v4l. I am using sys-fs/udev-130-r1.
>
> Only thing seen in dmesg on loading of the module is
>
> [ 14.918314] usbcore: registered new interface driver pvrusb2
> [ 14.918317] pvrusb2: Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner : V4L in-tree version
> [ 14.918320] pvrusb2: Debug mask is 31 (0x1f)
Those messages appear when the module gets loaded. And only at that
time.
But that's different than the act of associating the module with the
device. That association step is outside the control of the driver.
The USB core (likely in cooperation with udev) uses a database of known
USB IDs mapped to module names. Each such module (e.g. pvrusb2)
logically gets its "own" USB IDs registered when that module is
depmod'ed from userspace. If that database is messed up, then the USB
core can't know to associate the pvrusb2 driver. I've seen this happen
if "depmod -a" hasn't been run after the kernel's module tree is updated
/ changed. However if you are just running a vanilla kernel with
pvrusb2 built as part of it, then all that setup should have been taken
care of when you installed the kernel in your system.
I haven't tried the new 2.6.27 here yet. This weekend I'll grab the
new source tree and take a look.
>
> I don't see anything from any other v4l modules
And you won't, if the pvrusb2 driver hasn't been associated with the
device. That act of the USB core telling pvrusb2 about the new device
in turn triggers actions within the pvrusb2 driver that cause other V4L
modules (e.g. cx25840) to take notice and start talking to the device.
So if the pvrusb2 driver is not reacting, then neither will anything
else.
>
> # lsmod
> Module Size Used by
> cifs 247120 0
> vmnet 35616 9
> vmmon 990252 7
> vmblock 13328 3
> nvidia 7795456 26
> compcache 5728 1
> tlsf 7080 1 compcache
> snd_seq_oss 33472 0
> snd_seq_midi_event 7616 1 snd_seq_oss
> snd_seq 55840 4 snd_seq_oss,snd_seq_midi_event
> snd_seq_device 7380 2 snd_seq_oss,snd_seq
> snd_pcm_oss 42976 0
> snd_mixer_oss 16832 1 snd_pcm_oss
> pvrusb2 135872 0
> cx2341x 13508 1 pvrusb2
> v4l2_common 11712 2 pvrusb2,cx2341x
> tveeprom 14980 1 pvrusb2
> videodev 36480 1 pvrusb2
> v4l1_compat 16132 2 pvrusb2,videodev
> ehci_hcd 36748 0
> uhci_hcd 24728 0
> ohci_hcd 25372 0
> abituguru 20696 0
> evdev 11808 5
> tun 12420 0
> forcedeth 57552 0
> snd_intel8x0 34216 1
> snd_ac97_codec 117592 1 snd_intel8x0
> ac97_bus 2176 1 snd_ac97_codec
> snd_pcm 80072 3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec
> snd_timer 22416 2 snd_seq,snd_pcm
> snd 61192 14 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
> snd_page_alloc 8912 2 snd_intel8x0,snd_pcm
> usbhid 30240 1
> usb_storage 36096 0
> usblp 13824 0
> ahci 34376 4
>
> I tried to disconnect the device and then remove the pvrusb2 module with 'modprobe -r pvrusb2' and its hung there. The process modprobe has gone to 'D' state.
>
> modprobe -r pvrusb2 just added one line to dmesg:
>
> [173610.390163] usbcore: deregistering interface driver pvrusb2
>
> Let me know if you need to troubleshoot before I reboot the system.
That's not a good thing at all. The modprobe -r can jam if something is
referencing the driver internally - like if a thread is blocked while
inside the driver's code, which should normally NEVER happen. A more
likely scenario is that somebody has the /dev node open - but that can't
be the case here since you haven't even gotten that far.
At this point the best you can probably do is reboot anyway and see if
this problem is consistently repeatable.
As I said above, I will build a 2.6.27 kernel here and take a look. But
I really won't get a chance to do this until the weekend :-(
-Mike
--
Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list