TechnoTrend   TechnoTrend S2-3200 sous Debian   HDTV & DVB-S

[v0.8 - 22 mars 2008 - 17H55]

Carte TechnoTrend S2-3200 Extension Common Interface Module PCMCIA Aston Mediaguard v2
Carte TechnoTrend S2-3200
et sa télécommande
Extension Common Interface Module PCMCIA
Aston Mediaguard v2
APERCU DE LA CARTE
On vérifie que la carte est bien présente ;-)

# lspci -v

05:01.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
Subsystem: Technotrend Systemtechnik GmbH S2-3200
Flags: bus master, medium devsel, latency 64, IRQ 3
Memory at feaffc00 (32-bit, non-prefetchable) [size=512]
INSTALLATION DU DRIVER
Pour info, j'effectue mes installations en 'root'.
Les en-têtes du noyau doivent être installés avant les phases de compilation :
# apt-get install linux-headers-`uname -r`

' Création du répertoire et téléchargement du driver
# mkdir -p /opt/dvb
# cd /opt/dvb
# apt-get install mercurial
# hg clone http://jusst.de/hg/multiproto
# cd multiproto
' Patch pour noyau 2.6.24
# cd v4l
# wget http://linuxtv.org/hg/v4l-dvb/raw-file/b0815101889d/v4l/compat.h
# mv compat.h.1 compat.h
# cd ..
' Compilation
# make
# make install
' Redémarrage pour créer les entrées dans /dev/dvb et charger les modules
# reboot

Pour mémoire, le chargement direct des modules devrait également suffire (à la place du redémarrage) :
# modprobe dvb_core cam_debug=255 ' pour avoir plus d'infos...
# modprobe stb6100
# modprobe stb0899
# modprobe lnbp21
# modprobe budget-ci
VERIFICATION DU RESULTAT
' La carte a-t-elle été reconnue et les modules chargés ?
# dmesg
saa7146: register extension 'budget_ci dvb'.
ACPI: PCI Interrupt 0000:05:01.0[A] -> GSI 22 (level, low) -> IRQ 22
saa7146: found saa7146 @ mem ffffc20001046c00 (revision 1, irq 22) (0x13c2,0x1019).
saa7146 (0): dma buffer size 192512
DVB: registering new adapter (TT-Budget S2-3200 PCI)
adapter has MAC addr = 00:d0:5c:0b:a5:8b
input: Budget-CI dvb ir receiver saa7146 (0) as /class/input/input8
dvb_ca_en50221_init
budget_ci: CI interface initialised
CAMCHANGE IRQ slot:0 change_type:1
dvb_ca_en50221_thread_wakeup
dvb_ca_en50221_thread
stb0899_get_dev_id: Device ID=[8], Release=[1]
stb0899_get_dev_id: Demodulator Core ID=[DMD1], Version=[1]
stb0899_get_dev_id: FEC Core ID=[FEC1], Version=[1]
stb0899_attach: Attaching STB0899
stb6100_attach: Attaching STB6100
DVB: registering frontend 0 (STB0899 Multistandard)...
dvb_ca adaptor 0: PC card did not respond :(
On constate donc que la carte est bien détectée (TT-Budget S2-3200 PCI) et qu'il reste juste un léger souci (dernière ligne) qui concerne la partie CI (nous y reviendrons ultérieurement).
MISE A JOUR DU DRIVER
En cas de mise à jour du driver multiproto, il n'est pas nécessaire de recommencer entièrement la procédure.

' Déchargement des modules
# modprobe -r budget-ci
# modprobe -r lnbp21
# modprobe -r stb0899
# modprobe -r stb6100
# modprobe -r dvb_core
' Téléchargement des mises à jour
# cd /opt/dvb/multiproto
# hg pull -u http://jusst.de/hg/multiproto
' Recompilation
# make distclean
# make
# make install
' Re-chargement des modules
# modprobe dvb_core cam_debug=255
# modprobe stb6100
# modprobe stb0899
# modprobe lnbp21
# modprobe budget-ci
SCAN DES FREQUENCES # cd /opt/dvb
' Téléchargement des outils DVB
# hg clone http://linuxtv.org/hg/dvb-apps
' Récupération de la version patchée de 'scan'
# cd dvb-apps/util
# rm -R scan
# wget http://jusst.de/manu/scan.tar.bz2
# tar -xjvf scan.tar.bz2

Avant la compilation, il faut préciser au 'Makefile' de 'scan' où se trouvent les fichiers de 'multiproto'.
Pour cela, il faut rajouter la ligne :
   CPPFLAGS += -I/opt/dvb/multiproto/linux/include
juste en-dessous de la ligne :
   CPPFLAGS += -I/usr/include/ -DDATADIR=\"$(prefix)/share\"

# nano scan/Makefile ' effectuer l'ajout...

' Compilation de 'scan'
# cd scan
# make clean
# make
# make install
' Lancement d'un scan sur le satellite Astra en position 19,2° Est (pour info, '-t 1' & 's 1' précisent qu'on ne souhaite respectivement gérer que les fréquences 'TV' & utiliser la position DiSEqC 1)
# ./scan -t 1 -s 1 dvb-s/Astra-19.2E > /opt/dvb/Channels.conf
/Channels.conf
scanning dvb-s/Astra-19.2E
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 12551500 V 22000000 22000000
----------------------------------> Using 'STB0899 Multistandard' DVB-S
Tune to frequency 12551500
DVB-S IF freq is 1951500
0x0000 0x000c: pmt_pid 0x002a SES ASTRA -- ASTRA SDT (running)
0x0000 0x0f98: pmt_pid 0x0034 DVL.TV -- LUXE.TV SD (running)
0x0000 0x0f9a: pmt_pid 0x0026 (null) -- RTL Tele Letzebuerg (running)
0x0000 0x0f9b: pmt_pid 0x002f SES ASTRA -- !Kanal Telemedial (running)
[...]
0x040e 0x76c6: pmt_pid 0x0406 DCR -- DISCOVERY (running, scrambled)
0x040e 0x76ca: pmt_pid 0x0409 CP2 -- CANAL+ 2 (running, scrambled)
0x040e 0x76cc: pmt_pid 0x040b TDEP -- TELEDEPORTE (running, scrambled)
dumping lists (814 services)
Done.
' Récupération de la version patchée de 'szap'
# cd ../szap
# wget http://abraham.manu.googlepages.com/szap.c
# mv szap.c.1 szap.c

Là encore, avant la compilation, il faut préciser au 'Makefile' où se trouvent les fichiers de 'multiproto'.
Pour cela, il faut rajouter la ligne :
   CPPFLAGS += -I/opt/dvb/multiproto/linux/include
juste en-dessous de la première ligne.

# nano Makefile ' effectuer l'ajout...

' Compilation de 'szap'
# make
# make install
MYTHTV
Nous allons utiliser la version originale de MythTV. Le choix peut se faire entre la branche 0.21-fixes et la branche 'up-to-date' ;-)

Toutefois, cette dernière pouvant être un peu... instable, nous nous limiterons à la version 0.21.

' On commence par installer 'subversion', si nécessaire...
# apt-get install subversion
' Puis on télécharge les sources de MythTV
# cd /opt/dvb
# svn co http://svn.mythtv.org/svn/branches/trunk/ mythtv
' Et on applique le patch pour 'multiproto'
# cd mythtv/mythtv
# patch -p0 < /data/debian/mythtv-multiproto-patch ' Mettre le chemin complet vers le patch
' On ajoute quelques compléments
# apt-get install [à confirmer : libfreetype6 liblame-dev libqt4-dev] [sûr : libxv-dev libxxf86vm-dev libqt3-mt-mysql]
' On prépare la compilation
# ./configure
# Basic Settings
Compile type              release
Compiler cache            no
DistCC                    no
install prefix            /usr/local
CPU                       x86_64 (model name	: Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz)
big-endian                no
MMX enabled               yes
CMOV enabled              yes
CMOV is fast              no

# Input Support
Joystick menu             yes
lirc support              no
Video4Linux sup.          yes
ivtv support              yes
FireWire support          no
DVB support               yes [/usr/include]
DBox2 support             yes
HDHomeRun support         yes
IPTV support              yes

# Sound Output Support
OSS support               yes
ALSA support              no
aRts support              no
JACK support              no
libfftw3 support          no

# Video Output Support
x11 support               yes
xrandr support            yes
xv support                yes
XvMC support              no
XvMC VLD support          no
XvMC pro support          no
XvMC OpenGL sup.          no
XvMC libs                 -lXvMCW
OpenGL video              no
OpenGL vsync              no
DirectFB                  no
Fribidi formatting        no

# Misc Features
multi threaded libavcodec yes
Frontend                  yes
Backend                   yes

# Bindings
bindings_perl             yes
bindings_python           yes

Creating libs/libmyth/mythconfig.h and libs/libmyth/mythconfig.mak
# make
# make install
LIENS DE REFERENCE
Le driver multiproto :
http://jusst.de/hg/multiproto [Manu Abraham]

La télévision sous Linux :
http://www.linuxtv.org/

Le site des sources de MythTV :
http://svn.mythtv.org/
REMERCIEMENTS Bien que tout ne fonctionne pas encore (mais ça ne saurait tarder ;-))), je remercie les personnes suivantes pour leur(s) contribution(s) à ce modeste tutorial :
- Manu Abraham (le driver, c'est lui !!!)
- Patrick Bulteel
- Manu (un autre dont je n'ai pas le nom, juste l'adresse en yahoo.fr !)
- Micky979 [forum dvbkivabien2]