DVB Installation
Inhaltsverzeichnis |
Allgemeine Voraussetzungen
ls erstes muss natürlich eine komplette Entwicklungsumgebung mit Compiler usw. installiert sein, ebenfalls benötigt werden die Kernel-Quellen [1] die unter /usr/src als Benutzer root entpackt werden
su cd /usr/src tar -jxvf linux-<VERSION>.tar.bz2 ln -s linux-<VERSION> linux
Normalerweise lassen sie sich auch mit dem Distributionseigenen Installationsprogamm installieren.
Kernel 2.4
Voraussetzungen
Voraussetzung für eine erfolgreiche Übersetzung ist ein Kernel der Version 2.4 mit Unterstützung für
- Video4Linux Support (CONFIG_VIDEO_DEV)
- Für den integrierten MPEG-Dekoder und den Fernsehausgang
- Input Core Support (CONFIG_INPUT) and
- Event Device Support (CONFIG_INPUT_EVDEV)
- Für den Treiber der DVB Fernbedienung
Der Treiber ist auf LinuxTV [2] verfügbar. Die Version die zur Entwicklung des VDR verwendet wird (und die damit eine gewisse Funktionsgarantie bietet) gibt es auf dessen Homepage ([3], [4]).
Entpacken
Das Archiv wird im selben Verzeichnis in welches später auch VDR kommt entpackt und ein symbolischer Link auf DVB angelegt.
cd $SOURCEDIR tar -zxvf /path/to/linux-dvb.2003-11-08.tar.bz2 ln -s linux-dvb.2003-11-08 DVB cd DVB/driver
Kompilieren
Im Makefile des Drivers (../DVB/driver/Makefile) gibt es eine "Config", entweder vorm Kompilieren anpassen:
## # Configs # CARDS = av7110 #CARDS += margi #CARDS += em8300 CARDS += b2c2
Oder:
make CARDS="av7110"
Ansonnsten:
make
Installieren
make install
Laden/Entladen
Driver laden:
make insmod CARDS="av7110"
Bei älteren Treibern sollte der Schriftzug von "Convergence" erscheinen. Ansonnsten gibt "lsmod" Auskunft ob die Module geladen wurden.
~ lsmod Module Size Used by lirc_serial 7040 1 lirc_dev 8320 1 [lirc_serial] dvb-ttpci 300736 8 evdev 4160 0 (unused) input 3072 0 [dvb-ttpci evdev] mt312 5088 0 tda1004x 7952 0 ves1820 4304 0 stv0299 6592 0 (unused) grundig_29504-491 3200 0 grundig_29504-401 3584 0 alps_tdlb7 4992 0 alps_tdmb7 3360 0 alps_bsrv2 3456 1 dvb-core 36720 31 [dvb-ttpci mt312 tda1004x ves1820 stv0299 grundig_29504-491 grundig_29504-401 alps_tdlb7 alps_tdmb7 alps_bsrv2] videodev 4544 2 [dvb-ttpci] ipv6 124736 -1 (autoclean) 8139too 11936 1 (autoclean) reiserfs 147920 2
Entladen:
make rmmod CARDS="av7110"
Kernel 2.6
=Voraussetzungen
Hier gibt es zwei Möglichkeiten zu einem DVB-Treiber zu kommen
- ein extra Treiber
- der im Kernel integrierte Treiber
Installation des Treibers über CVS
Wenn es der extra DVB-Treiber sein soll muss er mindestens die Version 1.1.1 haben, oder besser noch, man lädt ihn direkt vom CVS
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel
Alles weitere funktioniert wie oben bereits beschrieben.
Installation des Treibers über Kernel
Wenn man sich für den Kernel-DVB-Treiber entscheidet, müssen bei den Kernelkonfiguration zusätzlich zu den oben genannten Optionen die folgenden aktiviert werden:
- DVB For Linux (CONFIG_DVB) :
- DVB Core Support (CONFIG_DVB_CORE) :
- das entsprechende Frontend der DVB-Karte (im Zweifel mehrere) z.B. für eine Hauppauge Nexus mit der Firmware 2.1/2.2 STV0299
Bei einer Full-featured-DVB-Karte:
AV7110 cards (CONFIG_DVB_AV7110) [x] Compile AV7110 [[firmware]] into the driver (CONFIG_DVB_AV7110_FIRMWARE) [x] AV7110 OSD support (CONFIG_DVB_AV7110_OSD)
Bei einer Budget-DVB-Karte:
- Budget cards (CONFIG_DVB_BUDGET)
Nach Möglichkeit sollte der DVB-Treiber als Modul übersetzt werden, da er im Falle eines Absturzes neu geladen werden kann, ohne den Rechner neu starten zu müssen. Nach Abschluss der Konfiguration des Kernels einfach
make modules make modules_install
Hinweis:
Die DVB Treiber von Kernel 2.6 haben jetzt einen offizielles device, dies sitzt auf Major 212 ! Um VDR ans laufen zu bekommen müssen diese neu angelegt werden.
Achtung ! Um VDR unter Kernel 2.4 laufen zu lassen die Major Nummer auf 250 ändern! Also ggf. die 212 im Script gegen 250 austauschen. Sonst läuft VDR leider auch unter Kernel 2.4 nicht mehr.
Folgendes Script hilft bei der Umstellung auf Kernel 2.6.
#!/bin/sh rm -rf /dev/dvb/adapter*/* device=0 for card in `seq 0 3`; do device=`echo $card \* 64 | bc` for dev in video audio sec frontend demux dvr ca net osd; do mknod /dev/dvb/adapter${card}/${dev}0 c 212 $device chmod 0660 /dev/dvb/adapter${card}/${dev}0 let device=device+1 done done
Links
[1] | http://www.kernel.org | Linux-Kernel Homepage |
[2] | http://www.linuxtv.org | LinuxTV Homepage |
[3] | http://www.linux-dvb.tv/download | Nightly driver snapshots from Convergence DVB driver |
[4] | http://www.cadsoft.de/vdr | VDR Homepage |
[5] | ftp://ftp.cadsoft.de/vdr/Developer | VDR Download-Verzeichnis |