| « How to Setup Trac on Centos 5 (Step By Step) | Top 10 Reasons Why Firefox is still Better Than Chrome for Web Development » |
HowTo install the TBS 6980 / 6981 / 6921 on Ubuntu 11.04 (Kernel 2.6.38-8)
This post has been written by Peter Mitrell as a comment to the post Step by step guide to install tbs6980/tbs6981 on linux. I had no time nor ubuntu to test it and I have published it here just because formatting problems in comments. Thanks to Peter for his collaboration.
He has also posted some information about how to use TBS6921 follow it in comments....
HowTo install the TBS 6980 / 6981 on Ubuntu 11.04 (Kernel 2.6.38-8) (By Peter Mitrell)
Code:
# su | |
# mkdir ~/tbs | |
# cd ~/tbs | |
# wget http://www.tbsdtv.com/download/TBS6981/linux-s2api-tbs6980-1_20101024.rar | |
# rar x linux-s2api-tbs6980-1_20101024.rar | |
# tar xjvf linux-s2api-tbs6980_1.tar.bz2 | |
# cd linux-s2api-tbs6980_1 |
You have to to fix a typo in the file ~/tbs/linux-s2api-tbs6980_1/linux/drivers/media/IR/keymaps/rc-tbs-nec.c change the line (using "nano" or somethng like that)
{ 0x9d, KEY_MODE},
into
{ 0x9b, KEY_MODE},
Now you have to decide to build the drivers for a 32Bit (x86) or a 64Bit (AMD64) Linux-Kernel. Using the driver-package "linux-s2api-tbs6980-1_20101024.rar", you have to go into the subdirectory "v4l".
# cd v4land execute the tbs-x86.sh or the tbs-x86_64.sh script
# ./tbs-x86.shor
# ./tbs-x86_64.shAfter this change back to the previous directory
# cd ..Now download a patch-file (done by Andy Burns - Thanks to him!!!)
# wget http://adslpipe.co.uk/misc/tbs6981-2.6.38.2-v4.patchand let the patch-command do the work
# patch -p0 < tbs6981-2.6.38.2-v4.patchAfter this patching is done, you have to do additional patching. Edit the file linux/drivers/media/video/hdpvr/hdpvr-i2c.cthat way, that you delete the line
i2c_adap->class = I2C_CLASS_TV_ANALOG;out of the file. Also edit the file linux/drivers/media/video/v4l2-compat-ioctl32.c that, way that you change the line
if (!file->f_op->ioctl && !file->f_op->unlocked_ioctl)into
if (!file->f_op->unlocked_ioctl)the 9 Lines
Code:
else if (file->f_op->ioctl) { | |
lock_kernel(); | |
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20) | |
ret = file->f_op->ioctl(file->f_dentry->d_inode, file, cmd, arg); | |
#else | |
ret = file->f_op->ioctl(file->f_path.dentry->d_inode, file, cmd, arg); | |
#endif | |
unlock_kernel(); | |
} |
Now you can do a 'make release' if you want to compile the drivers for the kernel which is already running on your machine. (Have a look into the file "INSTALL"!)
After that you can make a 'make'.
There will be warnings, but no errors.
After that you can make a 'make install'.
Last but not least, you can reboot your system.
On my system Ubuntu 11.04 (Kernel 2.6.38-8 64 Bit) it looks like this:
root@antec-htpc:~/tbs# dmesg |grep cx [ 9.411064] cx23885 driver version 0.0.2 loaded [ 9.411106] cx23885 0000:02:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 [ 9.411349] CORE cx23885[0]: subsystem: 6981:8888, board: TurboSight TBS 6981 [card=30,autodetected] [ 10.205256] cx25840 18-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0]) [ 10.925224] cx25840 18-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes) [ 10.933005] cx23885_dvb_register() allocating 1 frontend(s) [ 10.933008] cx23885[0]: cx23885 based dvb card [ 11.282865] DVB: registering new adapter (cx23885[0]) [ 11.310689] cx23885_dvb_register() allocating 1 frontend(s) [ 11.310691] cx23885[0]: cx23885 based dvb card [ 11.329362] DVB: registering new adapter (cx23885[0]) [ 11.356999] cx23885_dev_checkrevision() Hardware revision = 0xa5 [ 11.357005] cx23885[0]/0: found at 0000:02:00.0, rev: 4, irq: 19, latency: 0, mmio: 0xfba00000 [ 11.357012] cx23885 0000:02:00.0: setting latency timer to 64
root@antec-htpc:~/tbs# ls -alR /dev/dvb /dev/dvb: total 0 drwxr-xr-x 4 root root 80 2011-04-27 18:23 . drwxr-xr-x 21 root root 4500 2011-04-27 18:23 .. drwxr-xr-x 2 root root 120 2011-04-27 18:23 adapter0 drwxr-xr-x 2 root root 120 2011-04-27 18:23 adapter1 /dev/dvb/adapter0: total 0 drwxr-xr-x 2 root root 120 2011-04-27 18:23 . drwxr-xr-x 4 root root 80 2011-04-27 18:23 .. crw-rw----+ 1 root video 212, 1 2011-04-27 18:23 demux0 crw-rw----+ 1 root video 212, 2 2011-04-27 18:23 dvr0 crw-rw----+ 1 root video 212, 0 2011-04-27 18:23 frontend0 crw-rw----+ 1 root video 212, 3 2011-04-27 18:23 net0 /dev/dvb/adapter1: total 0 drwxr-xr-x 2 root root 120 2011-04-27 18:23 . drwxr-xr-x 4 root root 80 2011-04-27 18:23 .. crw-rw----+ 1 root video 212, 5 2011-04-27 18:23 demux0 crw-rw----+ 1 root video 212, 6 2011-04-27 18:23 dvr0 crw-rw----+ 1 root video 212, 4 2011-04-27 18:23 frontend0 crw-rw----+ 1 root video 212, 7 2011-04-27 18:23 net0 root@antec-htpc:~/tbs#
Hope you have fun!
Trackback address for this post
15 comments
http://www.buydvb.net/forum/viewtopic.php?f=22&t=103&start=10
(Thanks to "blckcat"!)
Also I want to tell, that the author of the _additional_ patches is "Andy Burns" again. You can have a look in that thread at
http://www.buydvb.net/forum/viewtopic.php?f=22&t=110&start=20
Another thing! Well the card "tbs6981" is a good piece of hardware, but the tbs-support to support new kernels could be better. Because of the situation, that parts of the drivers are not open-source, the drivers might never be a "native" part of the kernel. So, what kind of support will be in - let us say - three years for this product?
There is only one way to stay shure, that this piece of good hardware will be usable in some years. TBS, please make the drivers real (full) Open-Source !!!
Thank You!
Peter has suggested me to update this post according to his test. He also asked me to edit his comment and delete non useful parts. Thanks to him.
Best Regards,
Bo
My card (6981) had been working previously under Ubuntu 10.10 x64 but had decided to stop working (along with a bunch of other peripherals) for some unknown reason.
I've just moved over to Fedora 15 x64, and could not get the drivers to install using instructions either from the manufacturer, or from following other people's directions elsewhere.
Your instructions worked perfectly - many thanks!
my msn: matt0128 (at) hotmail (dot) com
dmesg |grep cx
And what?
[ 12.174221] cx23885 driver version 0.0.2 loaded
[ 12.174252] cx23885 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 12.174392] CORE cx23885[0]: subsystem: 6981:8888, board: TurboSight TBS 6981 [card=30,autodetected]
[ 12.952097] cx25840 2-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
[ 13.760332] cx25840 2-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
[ 13.768243] cx23885_dvb_register() allocating 1 frontend(s)
[ 13.768246] cx23885[0]: cx23885 based dvb card
[ 14.107564] DVB: registering new adapter (cx23885[0])
[ 14.135355] cx23885_dvb_register() allocating 1 frontend(s)
[ 14.135357] cx23885[0]: cx23885 based dvb card
[ 14.154197] DVB: registering new adapter (cx23885[0])
[ 14.181957] cx23885_dev_checkrevision() Hardware revision = 0xa5
[ 14.181964] cx23885[0]/0: found at 0000:02:00.0, rev: 4, irq: 16, latency: 0, mmio: 0xfba00000
[ 14.181971] cx23885 0000:02:00.0: setting latency timer to 64
[ 14.310303] input: cx23885 IR (TurboSight TBS 6981) as /devices/pci0000:00/0000:00:1c.4/0000:02:00.0/rc/rc0/input4
[ 14.310340] rc0: cx23885 IR (TurboSight TBS 6981) as /devices/pci0000:00/0000:00:1c.4/0000:02:00.0/rc/rc0
Seems it finally loaded! :)
I believe it's after this manual, so THANK YOU! :)
AA: 13.0E Hotbird
AB: 19.2E Astra
BA: 1.0W Thor
BB: 5.0E Sirius
And I'm able to scan only 13.0E. Furthermore, how can I scan DVB-S2 channels? I'm able to scan only DVB-S right now, even on 13.0E... :(
@matt: About Diseqc I don't know how to activate it but to scan DVB-S2 channels you must use scan-s2 instead of scan. cx23885
to /etc/modules seems to have fixed it. For reference I am running: Ubuntu 11.04 with 2.6.38-8-generic x86_64
Just tried to install my TBS 6981. I get some errors at the end of the make
make[2]: Entering directory `/usr/src/linux-headers-2.6.38-11-generic'
CC [M] /home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.o
/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.c: In function 'get_v4l2_format32':
/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.c:370:2: warning: case value '0' not in enumerated type 'enum v4l2_buf_type'
/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.c: In function 'put_v4l2_format32':
/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.c:401:2: warning: case value '0' not in enumerated type 'enum v4l2_buf_type'
/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.c: In function 'v4l2_compat_ioctl32':
/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.c:972:17: error: 'const struct file_operations' has no member named 'ioctl'
make[3]: *** [/home/media/tbs/linux-s2api-tbs6980_1/v4l/v4l2-compat-ioctl32.o] Error 1
make[2]: *** [_module_/home/media/tbs/linux-s2api-tbs6980_1/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.38-11-generic'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/media/tbs/linux-s2api-tbs6980_1/v4l'
make: *** [all] Error 2
Any idea what the problem may be?
Thanks
Mick
2.6.38-11-generic
I run CentOS with a Vanilla Kernel 2.6.36.2.
make fails with the following error:
/usr/src/tbs6981/linux-tbs-drivers/v4l/dvb_net.c: In function 'dvb_net_remove_if':
/usr/src/tbs6981/linux-tbs-drivers/v4l/dvb_net.c:1483: error: implicit declaration of function 'flush_work_sync'
What did I do wrong?
Thanks in advance
Best wishes
Martin
using the second method at the end of make I have the following errors :
....
home/gcalzetta/tbs/linux-s2api-tbs6921/v4l/tuner-xc2028.c:1178:5: error: 'T_DIGITAL_TV' undeclared (first use in this function)
/home/gcalzetta/tbs/linux-s2api-tbs6921/v4l/tuner-xc2028.c:1178:5: note: each undeclared identifier is reported only once for each function it appears in
/home/gcalzetta/tbs/linux-s2api-tbs6921/v4l/tuner-xc2028.c:1179:1: warning: control reaches end of non-void function [-Wreturn-type]
make[3]: *** [/home/gcalzetta/tbs/linux-s2api-tbs6921/v4l/tuner-xc2028.o] Error 1
make[2]: *** [_module_/home/gcalzetta/tbs/linux-s2api-tbs6921/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-3.0.0-12-generic'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/gcalzetta/tbs/linux-s2api-tbs6921/v4l'
make: *** [all] Error 2
Any idea ?



