Gentoo DVB Treiber
Inhaltsverzeichnis[Verbergen] |
Treiber für Kernel 2.4
Benötigt werden evdev, input, i2c und videodev Support, egal ob als Modul oder im Kernel.
Kernelkonfiguration
Input core support --->
<M> Input core support
<M> Event interface support
Character devices --->
I2C support --->
<*> I2C support
<M> I2C bit-banging interfaces
<M> I2C device interface
<M> I2C /proc interface
Multimedia devices --->
<*> Video For Linux
Video For Linux --->
[*] V4L information in proc filesystem
Wenn man diese Funktionen als Module kompiliert, darf man nicht vergessen, sie auch beim Systemstart automatisch laden zu lassen. Unter Gentoo dient dazu die Datei /etc/modules.autoload.d/kernel-2.4 (bzw. entsprechend der eingesetzten Kernelversion). Dort sollten folgende Zeilen stehen:
i2c-core i2c-proc i2c-dev evdev
Jetzt kann das linuxtv-dvb ebuild installiert werden. (Wenn es jetzt nicht installiert wird, passiert dies automatisch bei der Installation von VDR).
emerge linuxtv-dvb
Treiber für Kernel 2.6
Kernel 2.6 enthält schon einige DVB-Treiber, d.h. es gibt hier 2 Möglichkeiten. Entweder man nimmt die mitgelieferten Treiber, oder man installier sich die neuesten Treiber aus dem CVS von [linuxtv.org].
Variante A - Kernel-Treiber
Kernelkonfiguration
Code maturity level options -->
--> Prompt for development and incomplete code / driver aktivieren
Select only drivers expected to compile cleanly aktivieren
Select only drivers that don't need compile-time external firmware deaktivieren
Loadable module support -->
--> Enable loadable module support aktivieren
Module unloading aktivieren
Automatic kernel module loading aktivieren
Bus options -->
--> Support for hot-pluggable devices aktivieren
File Systems
--> Kernel automounter version 4 support aktivieren
--> Pseudo filesystems -->
--> /proc file system support aktivieren
--> /dev file system support aktivieren
--> Automatically mount at boot aktivieren
--> /dev/pts file system for Unix98 PTYs aktivieren
--> Virtual memory file system support aktivieren
Device Drivers -->
--> Generic Driver Options -->
--> Hotplug firmware loading support aktivieren (m)
--> Block Devices
--> RAM disk support aktivieren
--> Initial RAM disk (initrd) support aktivieren
--> Input Device Support
--> Event Interface aktivieren (notwendig bspw. für den eingebauten IR-Empfänger der Hauppauge Nexus)
--> Character Devices
--> Serial Drivers -->
--> 8250/16550 and compatible serial support deaktivieren oder als Modul (nur für LIRC notwendig)
--> Unix98 PTY support aktivieren
--> Linux Infrared Controller -->
--> Linux Infrared Controller deaktivieren oder als Modul (nur für LIRC notwendig)
--> Serial Driver aktiviern (m) deaktivieren oder als Modul (nur für LIRC notwendig)
--> Serial Receiver Type (Homebrew)
--> I/O Port (0x3f8, 4) für COM1
--> /dev/nvram aktivieren
--> Enhance Realtime Clock support aktivieren
--> I2C support -->
--> I2C support aktivieren (m)
--> I2C device interface aktivieren (m)
--> I2C Algorithms -->
--> I2C bit-banging interfaces aktivieren (m)
--> I2C PCF 8584 interfaces aktivieren (m)
--> Multimedia Devices -->
--> Video For Linux aktivieren
--> Digital Video Broadcasting Devices -->
--> DVB for linux aktivieren
--> DVB core support aktivieren
--> STV0299 based DVB-s frontend aktivieren (m)
--> Alps TDLB7 aktivieren (m)
--> Alps TDMB7 aktivieren (m)
--> Grundig 29504-491 aktivieren (m)
--> Grundig 29504-401 aktivieren (m)
--> Frontends with external VES1820 demodulator aktivieren (m)
--> Frontends with VES1893 or VES1993 demodulator aktivieren (m)
--> AV7110 cards aktivieren (m)
--> Compile AV7110 firmware into the driver
(/usr/lib/hotplug/firmare/dvb-ttpci-01.fw)
--> AV7110 OSD support aktivieren
--> Budget cards aktivieren (m)
--> Budget cards with onboard CI connector aktivieren
--> Budget cards with analog video inputs aktivieren
--> AV7110 card with Budget Patch aktivieren
für eine Hauppauge Nexus 2.1 Karte benötigt man eigentlich nur STV0299, AV7110 (+Firmware +OSD Support)
Variante B - Treiber aus dem CVS
Hier werden wie bei Kernel 2.4 nur die grundlegenden Dinge im Kernel selber aktiviert. Die Treiber für die DVB-Karten werden vom Kernel getrennt compiliert.
Kernelkonfiguration
Code maturity level options -->
--> Prompt for development and incomplete code / driver aktivieren
Select only drivers expected to compile cleanly aktivieren
Select only drivers that don't need compile-time external firmware deaktivieren
Loadable module support -->
--> Enable loadable module support aktivieren
Module unloading aktivieren
Automatic kernel module loading aktivieren
Device Drivers -->
--> Generic Driver Options -->
--> Hotplug firmware loading support aktivieren (m)
--> Input Device Support
--> Event Interface aktivieren (notwendig bspw. für den eingebauten IR-Empfänger der Hauppauge Nexus)
--> Character Devices
--> Unix98 PTY support aktivieren
--> /dev/nvram aktivieren
--> Enhance Realtime Clock support aktivieren
--> I2C support -->
--> I2C support aktivieren (m)
--> I2C device interface aktivieren (m)
--> I2C Algorithms -->
--> I2C bit-banging interfaces aktivieren (m)
--> I2C PCF 8584 interfaces aktivieren (m)
--> Multimedia Devices -->
--> Video For Linux aktivieren
--> Digital Video Broadcasting Devices -->
--> DVB for linux deaktivieren
Jetzt das linuxtv-dvb-cvs ebuild emergen:
echo "media-tv/linuxtv-dvb-cvs ~x86" >> /etc/portage/package.keywords emerge linuxtv-dvb-cvs
Installation der Firmware
Seit neuestem gibt es ein ebuild für die Firmware-Dateien. Hierfür kann man in /etc/make.conf festlegen für welche DVB-Karten man Firmware-Dateien braucht. Falls man diesen Schritt unterlässt werden alle Firmware-Dateien installiert (Warnung: ca. 60MB Download)
In /etc/make.conf:
DVB_CARDS="..."
Im Moment unterstützte Werte für DVB_CARDS:
dibusb-usb1 dibusb-usb2 nxt2002 nxt200x or51132 or51211 sp8870 sp887x tda1004x ttpci ttusb-dec usb-a800 usb-dtt200u usb-umt usb-vp702x usb-vp7045 usb-wt220u
In dein meisten Fällen entspricht dieser Name dem Namen des entsprechenden Treibers der diese Firmware braucht.
Wenn man beispielsweise eine FF-Karte und eine Karte mit nxt2002 Chip installiert hat sollte DVB_CARDS mindestens so aussehen:
DVB_CARDS="ttpci nxt2002"
Danach wird das Packet linuxtv-dvb-firmware per emerge installiert.
echo "media-tv/linuxtv-dvb-firmware ~x86" >> /etc/portage/package.keywords emerge linuxtv-dvb-firmware
Laden des Treibers
Nun werden die passenden Treiber werden in /etc/modules.autoload/kernel-2.4 bzw. /etc/modules.autoload/kernel-2.6 eingetragen, damit sie beim Systemstart automatisch geladen werden.
Nach dem Laden kann man die Ausgaben der Treiber mit dmesg betrachten.
Für eine Karte mit eigenem MPEG-Decoder sollte die Ausgabe von dmesg ungefähr so aussehen:
DVB: registering new adapter (Siemens/Technotrend/Hauppauge PCI rev1.3). saa7146_core.o: adjusting pci latency to 64 DVB: registering frontend 0:0 (Grundig 29504-491, (TDA8083 based))... DVB: AV7111(0) - firm f0240009, rtsl b0250018, vid 71010068, app 80002613 DVB: AV7111(0) - firmware supports CI link layer interface
Wenn dem so ist, Glückwunsch. Wenn nicht kann es daran liegen das einige Kernelmodule/ Funktionen fehlen.