Project

General

Profile

GoodKernelAndDriver » History » Version 8

Paul M, 2019-01-25 10:15

1 6 Paul M
Also see [[DVBCards]]
2
3
4 1 Paul M
h1. Known Good Kernel And Driver Combinations
5
6
TV Headend is entirely dependent on a reliable combination of a kernel, drivers and hardware. In order to help people set up their server, this page will provide a list of combinations that people have found to work.
7
8
h2. TBS 6982 DVB-S/S2, Kernel 4.8.0, on Ubuntu 16.04-LTS
9
10 2 Paul M
This combination of kernel and drivers was found to be stable:
11
* Ubuntu: 16.04.5-LTS
12
* kernel: 4.8.0-58-lowlatency
13
* drivers: tbs-linux-drivers_v170330.zip
14
* TV Headend: 4.3-1292~g9b9ee68~xenial
15
16 1 Paul M
The key factor in making the TBS card work was to ensure MSI Interrupts were enabled when the kernel module loads.
17
18
<notextile>Firstly, use "dpkg -l | grep linux-" to list the linux kernel and associated packages.
19 7 Paul M
Use "dpkg -r" to remove kernel packages, and use "dpkg -P" to then purge everything. Check /boot and remove any left over vmlinux and init.rd files etc; then likewise clean out /lib/modules. DO NOT REBOOT at any time when you have no kernel installed!
20 2 Paul M
21 7 Paul M
Then install the kernel and associated packages, to get to the following state when you run "dpkg -l | grep linux-"</notextile>
22 2 Paul M
<pre>
23
ii  linux-headers-4.8.0-58                 4.8.0-58.63~16.04.1                        all          Header files related to Linux kernel version 4.8.0
24
ii  linux-headers-4.8.0-58-lowlatency      4.8.0-58.63~16.04.1                        amd64        Linux kernel headers for version 4.8.0 on 64 bit x86 SMP
25
ii  linux-hwe-tools-4.8.0-58               4.8.0-58.63~16.04.1                        amd64        Linux kernel version specific tools for version 4.8.0-58
26
ii  linux-image-4.8.0-58-lowlatency        4.8.0-58.63~16.04.1                        amd64        Linux kernel image for version 4.8.0 on 64 bit x86 SMP
27
ii  linux-signed-image-4.8.0-58-lowlatency 4.8.0-58.63~16.04.1                        amd64        Signed kernel image lowlatency
28
ii  linux-tools-4.8.0-58-lowlatency        4.8.0-58.63~16.04.1                        amd64        Linux kernel version specific tools for version 4.8.0-58
29
</pre>
30
31
32
Then install the driver supplied by TBS. Create a script containing this:
33
<pre>
34
#!/bin/bash
35
36
#VER="180822"
37
#ZIPFILE="tbs-open-linux-drivers_v$VER.zip"
38
#TARFILE=media_build-2018-0822.tar.bz2
39
40
VER="170330"
41
ZIPFILE="tbs-linux-drivers_v170330.zip"
42
TARFILE=linux-tbs-drivers.tar.bz2
43
44
DIR=/home/build
45
mkdir -p "$DIR"
46
cd "$DIR"
47
48
if [ ! -f "$ZIPFILE" ] ; then
49
       wget "https://www.tbsiptv.com/download/common/$ZIPFILE"
50
fi
51
52
mkdir -p "$DIR/tbs_$VER"
53
cd "$DIR/tbs_$VER"
54
55
pwd
56
ls -la "../$ZIPFILE"
57
unzip "../$ZIPFILE"
58
59
tar jxvf "$TARFILE"
60
cd linux-tbs-drivers  
61
./v4l/tbs-x86_64.sh  
62
make -j4  
63
make install
64
</pre>
65
66
And execute it. 
67
68
Finally, set the driver to use MSI Interrupts by creating a file called "/etc/modprobe.d/tbs.conf" containing these lines:
69
<pre>
70
options tbs_pcie-dvb tbs_int_type=1
71
options saa716x_tbs-dvb int_type=1
72
</pre>
73
74
It should now be possible to reboot your computer. Afterwards, check the kernel module is loaded thus:
75
<pre>$ lsmod | egrep "saa|dvb"
76
saa716x_tbs_dvb        77824  0
77
</pre>
78
79
And check that the interrupts are MSI by checking the /proc/interrupts, like this:
80
<pre>
81
$ egrep -i "saa|dvb" /proc/interrupts  
82
31:      29757          0          0          0   PCI-MSI 1572864-edge      SAA716x Core
83
</pre>
84
85 8 Paul M
----
86
87 1 Paul M
Also see this:
88 8 Paul M
* https://tvheadend.org/boards/5/topics/32496?r=34042#message-34042
89
* https://tvheadend.org/projects/tvheadend/wiki/TBS6985