Carte tuner TBS5530 (DVB/T+S) sous Linux

J'ai fait l'acquisition d'une parabole, une LNB universelle et une carte tuner DVB/S USB. Voyons comment recevoir nos premiers signaux satellite FTA sous Linux.

La parabole de 80cm et sa LNB universelle

La carte tuner USB TBS5530

La documentation officielle de chez TBS indique de clôner ces dépôts :

1git clone https://github.com/tbsdtv/media_build.git
2git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media

D'installer les dépendances

1dnf install perl-Proc-ProcessTable patchutils

Puis compiler le tout

1cd media_build
2make dir DIR=../media
3make allyesconfig
4sed -i -r 's/(^CONFIG.*_RC.*=)./\1n/g' v4l/.config
5sed -i -r 's/(^CONFIG.*_IR.*=)./\1n/g' v4l/.config
6make -j4
7sudo make install

Première déconvenue, ça ne compile pas sous le kernel v5 fourni avec AlmaLinux 9.5. On installe un kernel v6 de la façon suivante :

1rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
3dnf --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel

C'est bon maintenant ça compile.

Après reboot, vérifier la bonne détection de la carte avec ces commandes :

1$ lsusb | grep TBS
2Bus 002 Device 006: ID 734c:5530 TBS Technologies China TBS 5530

Le périphérique USB est bien détecté

 1$ ll /dev/dvb/adapter*
 2/dev/dvb/adapter0:
 3total 0
 4crw-rw----. 1 root video 212, 0  1 mars  00:08 demux0
 5crw-rw----. 1 root video 212, 1  1 mars  00:08 dvr0
 6crw-rw----. 1 root video 212, 3  1 mars  00:08 frontend0
 7crw-rw----. 1 root video 212, 2  1 mars  00:08 net0
 8
 9/dev/dvb/adapter1:
10total 0
11crw-rw----. 1 root video 212, 4  1 mars  00:08 demux0
12crw-rw----. 1 root video 212, 5  1 mars  00:08 dvr0
13crw-rw----. 1 root video 212, 7  1 mars  00:08 frontend0
14crw-rw----. 1 root video 212, 8  1 mars  00:08 frontend1
15crw-rw----. 1 root video 212, 6  1 mars  00:08 net0

Il y a 2 adapters car il y a un tuner DVB-T et un DVB-S.

Vous noterez que votre user unix doit appartenir au groupe video pour accéder à la ressource. Si ce n'est pas encore le cas, on peut l'ajouter de cette façon (en root) :

1usermod -a -G video <login>

Il faudra se deloguer/reloguer pour que le changement soit appliqué.

Au branchement USB, dmesg indique bien le chargement du module et du firmware :

 1$ dmesg
 2[44063.016671] usb 2-4: new high-speed USB device number 5 using xhci_hcd
 3[44063.139855] usb 2-4: New USB device found, idVendor=734c, idProduct=5530, bcdDevice= 0.01
 4[44063.139869] usb 2-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
 5[44063.140407] dvb-usb: found a 'TurboSight TBS 5530' in cold state, will try to load a firmware
 6[44063.140426] dvb-usb: downloading firmware from file 'dvb-usb-id5530.fw'
 7[44063.140431] tbs5530: start downloading tbs5530 firmware
 8[44063.250664] dvb-usb: found a 'TurboSight TBS 5530' in warm state.
 9[44063.250776] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
10[44063.250786] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
11[44063.251115] dvbdev: DVB: registering new adapter (TurboSight TBS 5530)
12[44063.251346] tbs5530: read eeprom failed.
13[44063.251350] dvb-usb: MAC address reading failed.
14[44063.252371] i2c i2c-12: cxd2878:Can not detect the chip.
15[44063.252378] i2c i2c-12: cxd2878:error attaching frontend.
16[44063.252387] dvb-usb: no frontend was attached by 'TurboSight TBS 5530'
17[44063.252611] dvb-usb: TurboSight TBS 5530 successfully initialized and connected.
18[44063.252720] usb 2-4: USB disconnect, device number 5
19[44063.253046] dvb-usb: TurboSight TBS 5530 successfully deinitialized and disconnected.
20[44064.877683] usb 2-4: new high-speed USB device number 6 using xhci_hcd
21[44065.001378] usb 2-4: New USB device found, idVendor=734c, idProduct=5530, bcdDevice= 0.01
22[44065.001391] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
23[44065.001395] usb 2-4: Product: TBS 5530
24[44065.001398] usb 2-4: Manufacturer: TBS-Tech
25[44065.002048] dvb-usb: found a 'TurboSight TBS 5530' in cold state, will try to load a firmware
26[44065.002062] dvb-usb: downloading firmware from file 'dvb-usb-id5530.fw'
27[44065.002069] tbs5530: start downloading tbs5530 firmware
28[44065.114738] dvb-usb: found a 'TurboSight TBS 5530' in warm state.
29[44065.114842] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
30[44065.114852] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
31[44065.115186] dvbdev: DVB: registering new adapter (TurboSight TBS 5530)
32[44065.345102] dvb-usb: MAC address: 00:22:ab:c0:79:a4
33[44065.347749] i2c i2c-12: Detect CXD2878/CXD6802(SiP) chip.
34[44065.347777] usb 2-4: DVB: registering adapter 1 frontend 0 (TurboSight TBS 5530 DVB-T/T2/C/C2,ISDB-T/C,ATSC,J83B)...
35[44065.405226] i2c i2c-12: found a 'Montage m88rs6060' in cold state
36[44065.405358] i2c i2c-12: downloading firmware from file 'dvb-demod-m88rs6060.fw'
37[44066.922801] i2c i2c-12: found a 'Montage m88rs6060' in warm state
38[44066.922830] i2c i2c-12: firmware version:30
39[44067.009728] usb 2-4: DVB: registering adapter 1 frontend 1 (TurboSight TBS 5530 DVB-S/S2/S2X)...
40[44067.010131] dvb-usb: TurboSight TBS 5530 successfully initialized and connected.

Exploitation du tuner

dvb-apps est legacy, tout est dans v4l-utils (sur RedHat like) ou dvb-tools (sur Debian like)

1dnf install almalinux-release-devel
2dnf install v4l-utils

Outils utiles :

  • dvbv5-scan :
  • dvbv5-zap :
  • dvb-fe-tool : affiche les propriétés
  • dvb-format-convert : conversion de format de dvbv3 à dvbv5

Infos sur la carte

  • adapter 0 = clé RTL-SDR
  • adapter 1 = TBS5530
    • frontend 0 = tuner DVB-T
    • frontend 1 = tuner DVB-S
 1$ dvb-fe-tool -a 1 -f 1 # version courte
 2$ dvb-fe-tool --adapter 1 --frontend 1 # version longue
 3Device TurboSight TBS 5530 DVB-S/S2/S2X (/dev/dvb/adapter1/frontend1) capabilities:
 4     CAN_2G_MODULATION
 5     CAN_FEC_AUTO
 6     CAN_INVERSION_AUTO
 7     CAN_MULTISTREAM
 8     CAN_QPSK
 9     CAN_RECOVER
10DVB API Version 5.12, Current v5 delivery system: DVBS
11Supported delivery systems:
12    [DVBS]
13     DVBS2
14Frequency range for the current standard:
15From:             950 MHz
16To:              2,15 GHz
17Symbol rate ranges for the current standard:
18From:            1,00 MBauds
19To:              45,0 MBauds
20SEC: set voltage to OFF
21ERROR    FE_SET_VOLTAGE: Opération non permise

Quels sont maintenant les outils pour :

  • alimenter la LNB ?
  • passer le 22kHz ?
  • alterner 13V/18V ?
  • choisir la fréquence ?

Création du fichier de chaînes :

 1# Channel table for Eutelsat 5 West B
 2# Source: https://www.lyngsat.com/Eutelsat-5-West-B.html
 3
 4# Source: https://www.lyngsat.com/muxes/Eutelsat-5-West-B_Transalpine_12732-V.html
 5[CHANNEL]
 6	DELIVERY_SYSTEM = DVBS2
 7	FREQUENCY = 12732000
 8	POLARIZATION = VERTICAL
 9	SYMBOL_RATE = 29500000
10	MODULATION = PSK/8
11	INNER_FEC = AUTO
12	INVERSION = AUTO
13
14# Source: https://www.lyngsat.com/muxes/Eutelsat-5-West-B_Transalpine_12732-V.html
15[RADIOS]
16	DELIVERY_SYSTEM = DVBS2
17	FREQUENCY = 11471500
18	POLARIZATION = HORIZONTAL
19	SYMBOL_RATE = 9900000
20	MODULATION = QPSK
21	INNER_FEC = 4/5
22	INVERSION = AUTO

dvbv5-scan

 1$ dvbv5-scan eutelsat-5W -l EXTENDED -a 1 -f 1 # version courte
 2$ dvbv5-scan eutelsat-5W --lnbf EXTENDED --adapter 1 --frontend 1 # version longue
 3Using LNBf EXTENDED
 4	Astra 19.2E, European Universal Ku (extended)
 5	Freqs     : 10700 to 11700 MHz, LO: 9750 MHz
 6	Freqs     : 11700 to 12750 MHz, LO: 10600 MHz
 7ERROR    command BANDWIDTH_HZ (5) not found during retrieve
 8Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet).
 9Scanning frequency #1 12732000
10       (0x00) Signal= -43,39dBm
11	  Layer A: Signal= 57,06%

dvbv5-zap

 1$ dvbv5-zap -c eutelsat-5W 12732000 -m -a 1 -f 1 -l EXTENDED -v # version courte
 2$ dvbv5-zap --channels eutelsat-5W 12732000 --monitor --adapter 1 --frontend 1 --lnbf EXTENDED --verbose # version longue
 3
 4Using LNBf EXTENDED
 5	Astra 19.2E, European Universal Ku (extended)
 6	Freqs     : 10700 to 11700 MHz, LO: 9750 MHz
 7	Freqs     : 11700 to 12750 MHz, LO: 10600 MHz
 8using demux 'dvb1.demux0'
 9reading channels from file 'eutelsat-5W'
10Device TurboSight TBS 5530 DVB-S/S2/S2X (/dev/dvb/adapter1/frontend1) capabilities:
11     CAN_2G_MODULATION
12     CAN_FEC_AUTO
13     CAN_INVERSION_AUTO
14     CAN_MULTISTREAM
15     CAN_QPSK
16     CAN_RECOVER
17DVB API Version 5.12, Current v5 delivery system: DVBS2
18Supported delivery systems:
19     DVBS
20    [DVBS2]
21Frequency range for the current standard:
22From:             950 MHz
23To:              2,15 GHz
24Symbol rate ranges for the current standard:
25From:            1,00 MBauds
26To:              45,0 MBauds
27Assuming you're in FR.
28
29tuning to 12732000 Hz
30frequency: 12732,00 MHz, high_band: 1
31SEC: set voltage to 13V
32DiSEqC TONE: OFF
33DiSEqC TONE: ON
34L-Band frequency: 2132,00 MHz (offset = 10600,00 MHz)
35       (0x00) Signal= -43,39dBm
36       (0x00) Signal= -43,16dBm
37       (0x00) Signal= -43,34dBm
38       (0x00) Signal= -43,16dBm
39       (0x00) Signal= -43,44dBm
40       (0x00) Signal= -43,34dBm
41	  Layer A: Signal= 57,06%
42
43dvb_dev_set_bufsize: buffer set to 6160384
44  dvb_set_pesfilter to 0x2000
4559312,74s: Starting capture
4659312,74s: Stopping capture
47SEC: set voltage to OFF

dvsv5-zap allume le 13V et l'éteint à la fin (le satfinder reçoit du jus)

satfinder

dvblast

1dvblast -a 1 -n 1 -5 DVBS2 -m psk_8 -F 45 -f 11472000 # version courte
2dvblast --adapter 1 --frontend-number 1 --delsys DVBS2 --modulation qps_8 --fec-inner 45 --frequency 11472000 # version longue
 1$ dvblast -a 1 -n 1 -5 DVBS2 -f 11472000 -m psk_8
 2DVBlast 3.4 (release)
 3warning: restarting
 4debug: compiled with DVB API version 5.11
 5debug: using DVB API version 5.12
 6debug: Frontend "TurboSight TBS 5530 DVB-S/S2/S2X" supports:
 7debug:  frequency min: 950000, max: 2150000, stepsize: 0, tolerance: 0
 8debug:  symbolrate min: 1000000, max: 45000000, tolerance: 0
 9debug:  capabilities:
10debug:   INVERSION_AUTO
11debug:   FEC_AUTO
12debug:   QPSK
13debug:   2G_MODULATION
14debug:   MULTISTREAM
15debug:   FE_CAN_RECOVER
16debug:  delivery systems:
17debug:   DVBS
18debug:   DVBS2
19debug: frequency 11472000 is in Ku-band (lower)
20debug: configuring LNB to v=13 p=0 satnum=0 uncommitted=0 lnb-type=universal bis_frequency=1722000
21debug: tuning DVB-S frontend to f=11472000 srate=27500000 inversion=-1 fec=999 rolloff=35 modulation=psk_8 pilot=-1 mis=0 /pls-mode: ROOT (0) pls-code: 0 is-id: 0 /
22error: opening device /dev/dvb/adapter1/dvr1 failed (No such file or directory)

dvblast allume le 13V mais ne l'éteint pas

TSduck

1wget https://github.com/tsduck/tsduck/releases/download/v3.40-4165/tsduck-3.40-4165.el9.x86_64.rpm
2dnf install ./tsduck-3.40-4165.el9.x86_64.rpm
1$ tslsdvb
2tslsdvb: error opening /dev/dvb/adapter1/frontend1: Device or resource busy
1#                                    adapter:frontend:demux:dvr
2$ tsp -I dvb --device-name "/dev/dvb/adapter1:1:0:0" --lnb extended --delivery-system DVB-S2 --frequency 11472000000 --polarity horizontal --symbol-rate 9900000
3* Error: dvb: no input signal lock after 5000 milliseconds

Tvheadend

1$ dnf install snapd
2$ systemctl enable --now snapd.socket
3$ snap install tvheadend
42025-03-01T17:59:48+01:00 INFO Waiting for automatic snapd restart...
5Warning: /var/lib/snapd/snap/bin was not found in your $PATH. If you've not restarted your session
6         since you installed snapd, try doing that. Please see https://forum.snapcraft.io/t/9469
7         for more details.
8
9tvheadend 4.2.8 from Lucy Llewellyn (lucyllewy✪) installed

La carte est bien reconnue par Tvheadend

Tvheadend

La suite

  • Il faut maintenant sortir la parabole sur la terasse et la faire pointer vers un sat !
  • En attente de réception d'une LNB avec PLL pour explorer les signaux à bande étroite
  • l'article sera complété au fur et à mesure ...

Ressources

comments powered by Disqus