Es gibt einiges an Doku für DVB-T unter Linux für die gängigen Karten und Geräte. Für meine KNC1 habe ich allerdings ziemlich lange suchen müssen. Deswegen habe ich die Installation mal zusammengeschrieben um es allen anderen zu erleichtern.
In den Kernel Sourcen des Treibers budget-av habe ich gesehen, dass seit Kernel 2.6.11 Code für die KNC1 Karten vorhanden ist, allerdings hat das mit dem Kernel, der mit SuSE 9.3 mitkam, nicht funktioniert. Deswegen habe ich mir einen neueren offiziellen Kernel von ftp.kernel.org runter geladen und damit hat's dann geklappt.
- Kernel downloaden
xccube:/usr/src # wget --passive ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.bz2 - Kernel auspacken und installieren
Das Installieren eines Kernel ist bereits ausreichend dokumentiert an anderen Stellen. Deswegen sind die folgenden Anweisungen kurz gehalten und sind sozusagen nur zur Erinnerung. Genauere Anweisungen enthält die README in den Sourcen.xccube:/usr/src # tar -xvjf linux-2.6.15.tar.bz2 xccube:/usr/src # rm linux xccube:/usr/src # ln -s linux-2.6.15 linux xccube:/usr/src # cd linux xccube:/usr/src # make mrproper xccube:/usr/src # make xconfig xccube:/usr/src # make xccube:/usr/src # make modules_install xccube:/usr/src # cp arch/i386/boot/bzImage /bootWICHTIG:- Immer make mrproper ausführen vor dem Kompilieren, auch bei frischen Sourcen.
-
Die Module für das Root-Dataisystem fest in den Kernel kompiliern.
So erspart man sich das Anlegen einer initrd.
Für meinen XCCube sind das IDE, IDE-pxii und reiserfs.
Wenn die Komponenten fehlen, kann der Kernel das Root-Dateisystem nicht mounten,
und wird sich mit Kernel-panic beenden.
(Bei SCSI Systemen müssen anstatt IDE natürlich die SCSI Module ausgewählt werden. Wenn nicht ReiseFS verwendet wird, dann muss diese Option ebenfalls angepasst werden.) -
DVB-Module auswählen.
Device Drivers ---> Multimedia devices ---> <*> Video For Linux Digital Video Broadcasting Devices ---> [*] DVB For Linux <M> DVB Core Support [*] Load and attach frontend modules as needed --- Supported SAA7146 based PCI Adapters <M> Budget cards with analog video inputs
- Neuen Boot-Eintrag anlegen
Wir machen einen neuen Eintrag um den Kernel zu testen. Wenns nicht klappt können wir mittels Bootmanager einfach wieder den alten Kernel auswählen. So kann nichts schiefgehen.
Bei SuSE wird schon seit einiger Zeit GRUB verwendet. Hier muss man einfach einen neuen Eintrag in /boot/grub/menu.lst machen.color white/blue black/light-gray default 1 timeout 8 gfxmenu (hd0,0)/boot/message ###Don't change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 9.3 kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 vga=0x314 selinux=0 splash=silent resume=/dev/hda6 desktop elevator=as showopts initrd (hd0,0)/boot/initrd # Our new kernel for DVB-T title Kenerl 2.6.15 kernel (hd0,0)/boot/bzImage root=/dev/hda1
Danach kann man neu booten. Wer noch LILO verwendet muss noch mal 'lilo' ausführen um den Boot-Manager neu zu installieren.
- Firmware installieren
Die DVB-Karte benötigt eine eigene Firmware für den Betrieb, die vom Treiber geladen wird. Der aktuelle Treiber sucht beim Firmware laden die Datei "dvb-fe-tda10046.fw". Die Firmware Dateien können normalerweise mit dem Script /usr/src/linux/Documentation/dvb/get_dvb_firmware aus dem Internet geladen werden. Der Pfad in dem PERL script war allerdings schon veraltet und hat nicht mehr funktioniert. Ich konnte dem Script jedoch entnehmen, dass es versucht den Technotrend Treiber zu laden (tt_budget_217g.zip) und die Firmware aus der Windows Dll (ttlcdacc.dll) zu extrahieren. Mit ein bißchen manueller Hilfe hat das dann auch funktioniert. Wer sich das ganze sparen will kann die Firmware hier runter laden. Es hat mich schon etwas verwundert, dass die Technotrend Firmware mit meiner KNC funktionieren soll, aber es funktioniert tatsächlich. Die Datei muss normalerweise in /etc/hotplug/firmware gespeichert werden. Die genauen Pfade unterscheiden sich je nach verwendetem "hotplug" System. Die Suchpfade stehen normal in "/etc/hotplug/firmware.agent" in der Variable FIRMWARE_DIRS.
- Treiber laden
Nachdem jetzt alles installiert ist können wird den Treiber laden.xccube:/usr/src # modprobe budget-av
Ein dmesg sollte jetzt folgendes ausgeben.saa7146: register extension 'budget_av'. ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 18 (level, low) -> IRQ 17 saa7146: found saa7146 @ mem e0872000 (revision 1, irq 17) (0x1894,0x0030). saa7146 (0): dma buffer size 192512 DVB: registering new adapter (KNC1 DVB-T). adapter failed MAC signature check encoded MAC from EEPROM was ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff KNC1-0: MAC addr = 00:09:d6:6d:03:3e DVB: registering frontend 0 (Philips TDA10046H DVB-T)... budget-av: ci interface initialised. tda1004x: setting up plls for 53MHz sampling clock tda1004x: found firmware revision 20 -- ok
- Sender Konfiguration
Was noch fehlt für den Betrieb ist eine Sender-Konfiguration. Eine Beschreibung des Sendersuchlaufs und eine fertige channels.conf für Erlangen-Nürnberg gibt es auf [1]. - Testen
Getestet werden kann das ganze mit xine oder mplayer, je nach vorliebe. Die Programme müssen mit DVB-Support kompiliert seint.xccube:/usr/src # mplayer dvb://RTL xccube:/usr/src # xine dvb://RTL
- Aufzeichnen
Sendungen Aufzeichnen kann man mit Programmen wie MythTV oder auch ganz einfach auf Kommandozeile mit mencoder wie auf [1] beschrieben.
Weiter Informationen:
[1] Die DVB-T Seite von Johannes Bauer, die mir sehr geholfen hat.
[2] Linux TV