LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   LinuxTV driver for Pinnacle PCTV200e does not work since Ubuntu 11.10 (https://www.linuxquestions.org/questions/linux-hardware-18/linuxtv-driver-for-pinnacle-pctv200e-does-not-work-since-ubuntu-11-10-a-910941/)

sergio.otero 10-30-2011 11:43 AM

LinuxTV driver for Pinnacle PCTV200e does not work since Ubuntu 11.10
 
Hi

I've been downloading the unofficial driver for "Pinnacle PCTV200e" from linuxtv.org since Ubuntu 9, and it has always worked perfectly.

This hardware is a DVB USB Tuner with a subsystem ID of 2304:020e

I've recently upgraded to Ubuntu 11.10 (kernel 3.0.0.0-12) and i haven't been able to make it work.

I've compiled the module, installed it to the kernel and it appears as loaded in lsmod and with traces in dmesg


lsmod:

Quote:

pctv200e 22529 0
dvb_usb 24444 1 pctv200e
usbhid 47198 0
dvb_core 110616 1 dvb_usb
rc_core 26963 7 ir_lirc_codec,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,ir_nec_decoder,dvb_usb
wmi 19256 1 asus_wmi
i2c_algo_bit 13423 1 i915
hid 95463 1 usbhid
dmesg:

Quote:

[ 0.547553] usbcore: registered new interface driver usbfs
[ 0.547559] usbcore: registered new interface driver hub
[ 0.547572] usbcore: registered new device driver usb
[ 7.927870] usbcore: registered new interface driver usbhid
[ 7.927871] usbhid: USB HID core driver
[ 7.929161] usbcore: registered new interface driver dvb_usb_pctv200e
[ 7.929163] pctv200e: usb_register successfull.
Problem is that /dev/dvb directories does not appear.
I haven't seen any error.

I would appreciate any indication on where to look for an error or what to test.

It could be a problem with udev, but i'm not an expert on it.

In this linuxtv page it says (http://linuxtv.org/wiki/index.php/Ho...Device_Drivers)

Quote:

If the Modules load correctly
1. They should be listed in /proc/modules
2. They should provide some indication within your system log
3. The device manager udev will "automagically" create appropriate device nodes on /dev:
(a) For a DVB device, you should now have a non-empty /dev/dvb directory.
Thanks.

Sergio

sergio.otero 10-31-2011 05:18 AM

First compilations did not work because the unofficial driver did not compile with the latest git repository from linuxtv, so i did a few changes.

Mainly, a structure had a pointer and now is a list. I looked at some of the official drivers, and they all seem to use the first ocurrence (change ->fe to ->fe_adapt[0].fe

I think that these changes and some constants were not effective in ".c" files compiled before solving these minor problems.

A "make clean", "make" and "sudo make install" has half solved the problem.

Now i have the /dev/dvb subdirectories, but there's an error in dmesg and the driver does not fully load.

I will try to locate the problem.

Thanks anyway.

Quote:

[ 44.058684] pctv200e: attaching and initializing mt352 frontend.
[ 44.258418] pctv200e: PCTV200e initialized mt352
[ 44.292622] pctv200e: mt352 frontend attached.
[ 44.292628] DVB: registering adapter 0 frontend 0 (Zarlink MT352 DVB-T)...
[ 44.318339] MT2060: successfully identified (IF1 = 1220)
[ 45.444843] pctv200e: tuner mt2060 attached.
[ 45.444847] pctv200e: tuner mt2060 set_params starting.
[ 45.444856] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
[ 45.444910] IP: [<ffffffffa02a2184>] pctv200e_tuner_attach+0x84/0x120 [dvb_usb_pctv200e]
[ 45.444950] PGD 11ce50067 PUD 11eb25067 PMD 0
[ 45.444968] Oops: 0002 [#1] SMP
[ 45.444982] CPU 1
[ 45.444989] Modules linked in: mt2060 ir_lirc_codec lirc_dev ir_mce_kbd_decoder ir_sony_decoder ir_jvc_decoder mt352 ir_rc6_decoder ir_rc5_decoder dvb_usb_pctv200e(+) dvb_usb ir_nec_decoder dvb_core rc_core usbhid hid bnep rfcomm bluetooth binfmt_misc snd_hda_codec_hdmi snd_hda_codec_realtek ppdev eeepc_wmi asus_wmi sparse_keymap snd_hda_intel snd_hda_codec snd_hwdep snd_pcm parport_pc snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device wmi snd mei(C) lm75 i915 soundcore snd_page_alloc coretemp drm_kms_helper drm i2c_algo_bit video lp parport xhci_hcd pata_via r8169
[ 45.445190]
[ 45.445197] Pid: 1473, comm: modprobe Tainted: G C 3.0.0-12-generic #20-Ubuntu System manufacturer System Product Name/P8H67-M PRO
[ 45.445233] RIP: 0010:[<ffffffffa02a2184>] [<ffffffffa02a2184>] pctv200e_tuner_attach+0x84/0x120 [dvb_usb_pctv200e]
[ 45.445264] RSP: 0018:ffff8801255cfc08 EFLAGS: 00010292
[ 45.445278] RAX: ffffffffa03292a0 RBX: ffff880125e69178 RCX: 000000000003ffff
[ 45.445298] RDX: 0000000000000000 RSI: 0000000000000082 RDI: ffffffffa02a4228
[ 45.445316] RBP: ffff8801255cfc18 R08: 000000000000000a R09: 0000000000000000
[ 45.445336] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 45.445354] R13: 0000000000000000 R14: ffff880125e69178 R15: ffff880125e69250
[ 45.445374] FS: 00007fccb01f9720(0000) GS:ffff88013fa80000(0000) knlGS:0000000000000000
[ 45.445395] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 45.445411] CR2: 0000000000000008 CR3: 000000011f5f3000 CR4: 00000000000406e0
[ 45.445430] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 45.445450] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 45.445469] Process modprobe (pid: 1473, threadinfo ffff8801255ce000, task ffff8801337bdc80)
[ 45.445491] Stack:
[ 45.445498] ffff880125e69178 ffff880125e69178 ffff8801255cfc58 ffffffffa0213cf8
[ 45.445522] ffff8801255cfc58 0000000000000000 ffff880125e68000 ffff880125e69178
[ 45.445546] 0000000000000001 ffff880125e692e0 ffff8801255cfce8 ffffffffa0212c79
[ 45.445570] Call Trace:
[ 45.445581] [<ffffffffa0213cf8>] dvb_usb_adapter_frontend_init+0xc8/0x1b0 [dvb_usb]
[ 45.445602] [<ffffffffa0212c79>] dvb_usb_device_init+0x5a9/0x850 [dvb_usb]
[ 45.445622] [<ffffffffa02a20dc>] pctv200e_probe+0x2c/0x50 [dvb_usb_pctv200e]
[ 45.445644] [<ffffffff814506c3>] usb_probe_interface+0xd3/0x1e0
[ 45.445661] [<ffffffff813ce4e8>] really_probe+0x68/0x190
[ 45.445677] [<ffffffff813ce775>] driver_probe_device+0x45/0x70
[ 45.445694] [<ffffffff813ce84b>] __driver_attach+0xab/0xb0
[ 45.445710] [<ffffffff813ce7a0>] ? driver_probe_device+0x70/0x70
[ 45.445727] [<ffffffff813ce7a0>] ? driver_probe_device+0x70/0x70
[ 45.445744] [<ffffffff813cd5dc>] bus_for_each_dev+0x5c/0x90
[ 45.445760] [<ffffffff813ce2ae>] driver_attach+0x1e/0x20
[ 45.445775] [<ffffffff813cdf00>] bus_add_driver+0x1a0/0x270
[ 45.445791] [<ffffffff813cedb6>] driver_register+0x76/0x140
[ 45.445809] [<ffffffff8144f541>] usb_register_driver+0xa1/0x190
[ 45.445827] [<ffffffffa0019000>] ? 0xffffffffa0018fff
[ 45.445842] [<ffffffffa0019020>] pctv200e_module_init+0x20/0x1000 [dvb_usb_pctv200e]
[ 45.445865] [<ffffffff81002042>] do_one_initcall+0x42/0x180
[ 45.445883] [<ffffffff8109ff2e>] sys_init_module+0xbe/0x230
[ 45.445902] [<ffffffff815f22c2>] system_call_fastpath+0x16/0x1b
[ 45.445918] Code: a0 31 c0 e8 36 19 33 e1 48 c7 c7 f8 41 2a a0 31 c0 e8 28 19 33 e1 48 8b 83 88 05 00 00 48 c7 c7 28 42 2a a0 48 8b 80 30 02 00 00
[ 45.446013] 89 44 24 08 48 8b 83 88 05 00 00 48 c7 80 30 02 00 00 40 20
[ 45.446061] RIP [<ffffffffa02a2184>] pctv200e_tuner_attach+0x84/0x120 [dvb_usb_pctv200e]
[ 45.446086] RSP <ffff8801255cfc08>
[ 45.446095] CR2: 0000000000000008
[ 45.506053] ---[ end trace 5b2e1fbf3b5050f3 ]---
[ 172.192542] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id

sergio.otero 10-31-2011 09:19 AM

I've managed to make it work :-)

As I said before, in the previous version there was only 1 adapter in the "dvb_usb_adapter" struct, but now it's an array

The original code did not compile, so i changed "adap->fe" to "adap->fe_adap[0].fe" and it compiled (other official drivers have the same approach)
The problem was that this code compiled, but "adap->priv" was null. I've change it from "adap->priv" to "adap->fe_adap[0].priv" and now works perfectly.

I will try to submit the new pctv200e.c to linuxtv.

Naki78 12-09-2011 02:30 PM

trouble with pctv200e driver
 
Hi Sergio, I'm not able to use this driver after compiling with 3.0.0-14-generic and 3.0.0 source kernel.

The message after modprobe is:

FATAL: Error inserting dvb_usb_pctv200e (/lib/modules/3.0.0-14-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-pctv200e.ko): Invalid module format

Please help!!!

thank you

sergio.otero 12-11-2011 01:04 PM

Hi

I'm not an expert, but try this:

sudo make rminstall
make clean
make release
make
sudo make install


All times are GMT -5. The time now is 08:31 AM.