Page 1 of 2

Driver issue using kernel 3.6.2

PostPosted: Thu Nov 01, 2012 6:35 pm
by keybits
Hello,

Description of the problem:
I've installed the 6980 driver v121021 with kernel 3.6.2 and it is loading successfully.

But as soon as I perform a tune request or lock, the driver (i.e. tbs6980fe in this case) crashes due to a paging request. This happens using szap-s2, scan-s2 (see files below) or anything else like vdr. I'm not using IR, so I turned it off by setting enable_tbs_ir to 0.

I'm writing this post having read the "How to report a problem with TBS Linux drivers" post. I've read the README files, but it seems my case is not covered there.

Best regards
keybits

P.S.: The logs:
The full dmesg log is too large (about 52k) to post it here, please tell me which attachment extensions are allowed.

dmesg | grep cx2
Code: Select All Code
[    4.581211] cx23885 driver version 0.0.3 loaded
[    4.581329] CORE cx23885[0]: subsystem: 6980:8888, board: TurboSight TBS 6980 [card=37,autodetected]
[    5.328460] cx25840 3-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
[    5.972986] cx25840 3-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
[    5.988560] cx23885_dvb_register() allocating 1 frontend(s)
[    5.988562] cx23885[0]: cx23885 based dvb card
[    6.128845] DVB: registering new adapter (cx23885[0])
[    6.156675] cx23885_dvb_register() allocating 1 frontend(s)
[    6.156685] cx23885[0]: cx23885 based dvb card
[    6.246188] DVB: registering new adapter (cx23885[0])
[    6.274423] cx23885_dev_checkrevision() Hardware revision = 0xb0
[    6.274427] cx23885[0]/0: found at 0000:04:00.0, rev: 2, irq: 17, latency: 0, mmio: 0xfbe00000


lspci
Code: Select All Code
00:00.0 Host bridge: Intel Corporation Core Processor DMI (rev 11)
00:03.0 PCI bridge: Intel Corporation Core Processor PCI Express Root Port 1 (rev 11)
00:08.0 System peripheral: Intel Corporation Core Processor System Management Registers (rev 11)
00:08.1 System peripheral: Intel Corporation Core Processor Semaphore and Scratchpad Registers (rev 11)
00:08.2 System peripheral: Intel Corporation Core Processor System Control and Status Registers (rev 11)
00:08.3 System peripheral: Intel Corporation Core Processor Miscellaneous Registers (rev 11)
00:10.0 System peripheral: Intel Corporation Core Processor QPI Link (rev 11)
00:10.1 System peripheral: Intel Corporation Core Processor QPI Routing and Protocol Registers (rev 11)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 06)
00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation 5 Series Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 520] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
03:00.0 SATA controller: JMicron Technology Corp. JMB363 SATA/IDE Controller (rev 03)
03:00.1 IDE interface: JMicron Technology Corp. JMB363 SATA/IDE Controller (rev 03)
04:00.0 Multimedia video controller: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder (rev 02)

uname -a
Code: Select All Code
Linux openelec 3.6.2 #28 SMP Wed Oct 31 19:27:48 CET 2012 i686 GNU/Linux

Re: Driver issue using kernel 3.6.2

PostPosted: Sat Nov 03, 2012 6:20 am
by SergioDanielG
Hi keybits.
Try to attach zip files and include all information as you can.

Best regards.

Re: Driver issue using kernel 3.6.2

PostPosted: Tue Nov 06, 2012 4:25 am
by cody
hello, i've just tested on kernel 3.6.2 with 6980, disabled remote control via 'enable_tbs_ir' and i can successfully lock, i.e. i can't reproduce problem. so, please, provide more details - do you use 32-bit or 64-bit kernel? if you use 32-bit did you use "./v4l/tbs-x86_r3.sh" script to set the building environment?

Re: Driver issue using kernel 3.6.2

PostPosted: Wed Nov 07, 2012 6:43 am
by keybits
Thanks for yout replies. First, here are the dmesg logs, both reflect a fresh boot and a call of scan-s2 and szap-s2, respectively.

Re: Driver issue using kernel 3.6.2

PostPosted: Wed Nov 07, 2012 6:49 am
by cody
hmm, in your log those messages:

"dtv_property_legacy_params_sync: doesn't know how to handle a DVBv3 call to delivery system 70"

look very suspicious. so, please, try the following:

# rm -rf /lib/modules/<kernel_version>/kernel/drivers/media/

where "<kernel_version>" is specific to your system - that will delete all DVB modules from your running kernel and then reinstall TBS drivers with running again "make install". my best guess is that DVB modules in your system mixed up in a bad way, especially based on the fact that i can't reproduce the problem and i always do the above, i.e. delete the old modules when install new drivers.

Re: Driver issue using kernel 3.6.2

PostPosted: Wed Nov 07, 2012 7:13 am
by keybits
cody Wrote:do you use 32-bit or 64-bit kernel? if you use 32-bit did you use "./v4l/tbs-x86_r3.sh" script to set the building environment?


I'm using 32-bit and yes, I ran tbs-x86_r3.sh, I even made sure that the *.o fils matched size and timestamp of the *.o.x86_r3 files.

The first attempt I made was building the driver using
Code: Select All Code
make && make install
, but this caused a
Code: Select All Code
videodev: Duplicate symbol ...
error (sorry I didn't keep a copy of that dmesg). So I had to customize the kernel sources on my own (cx23885.h, cx23885-cards.c and cx23885-dvb.c plus Makefile(s) and Kconfig(s)).

I use the v4l-cx23885-avcore-01.fw firmware file provided with the driver, not the one supplied with the OpenELEC dvb firmware package. I'm not familiar with firmware files, should I rather use the firmware that 'belongs' to the kernel or those from the driver package? I compared them and in fact they differ.

best regards
keybits

Re: Driver issue using kernel 3.6.2

PostPosted: Wed Nov 07, 2012 7:17 am
by keybits
cody Wrote:... please, try the following:
# rm -rf /lib/modules/<kernel_version>/kernel/drivers/media/


Ok I'll give it a try.

Re: Driver issue using kernel 3.6.2

PostPosted: Sun Nov 11, 2012 10:33 pm
by keybits
@cody: Ok, this way it works.

It took me a quite long time to do this in OpenELEC because I'm new to it... I'd feel much better if there was a documentation on what to edit in the cx23885 sources, Makefile and Kconfig (and hopefully only those) to get the drivers running, instead of breaking all other media drivers. Has anyone seen such docs anywhere?

However, thanks again for your tips.

Best regards
keybits

Re: Driver issue using kernel 3.6.2

PostPosted: Mon Nov 12, 2012 1:18 am
by updatelee
This card uses precompiled libs like some other TBS cards right? assuming so

Youd be better off using an older kernel version, I use 3.2.27 but the tbs tree is based off of v3.0 so you may want to even go older.

The precompiled libs are frustrating, any changes to specific structs causes issues like paging faults. Have you made any changes to the stock tbs tree ? if you do you'll find your results hit and miss. Not sure entirely what these precompiled libs are for. I know they control the lnb voltage, that part was easy to get working without the libs. But they also do something else, without the libs all frontend ioctls work, but not demux ioctls. No packets are ever returned.

Re: Driver issue using kernel 3.6.2

PostPosted: Mon Nov 12, 2012 7:45 pm
by keybits
Yes, it's using the oject files included with the Driver package (tbsfe.o and tbs6980fe.o in this case). In the end, I was able to link them, and they work. I'll try Kernel 3.6.6 next, but I guess that won't be the Problem anyway.

I didn't make changes to the tbs tree, instead I adopted the diffs between the tbs tree and the kernel tree into the kernel tree. Works great, despite of the page faults I got in the dmesg I posted here, which ideed reflect exactly what you experienced, too: the demux seems to be the troublemaker.

I wonder if a directory compare of the original 5.3 LMI-API tree against the tbs tree can help?