Gentoo DVB Treiber

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Liste aller gültigen Werte für DVB_CARDS)
(Neuer Absatz Finden des richtigen Treibers)
Zeile 161: Zeile 161:
 
emerge linuxtv-dvb-cvs
 
emerge linuxtv-dvb-cvs
 
</pre>
 
</pre>
 +
 +
=Finden des richtigen Treibers=
 +
Da es relativ viele verschiedene DVB-Karten gibt muss jetzt herausgefunden werden welcher Treiber denn zu laden ist.
 +
Dies geht bei PCI-Karten zB mit ''pcimodules''.
 +
Falls noch nicht vorhanden installieren wir die ''pciutils''.
 +
emerge pciutils
 +
 +
Nun schauen wir welche Treiber sich zuständig fühlen:
 +
vdr # pcimodules
 +
ohci-hcd
 +
ehci-hcd
 +
sis900
 +
snd-emu10k1
 +
dvb-ttpci
 +
b2c2-flexcop-pci
 +
nvidia
 +
nvidiafb
 +
 +
In diesem Fall sind dies die Treiber ''dvb-ttpci'' und ''b2c2-flexcop-pci''.
 +
Diese beiden werden nun in /etc/modules.autoload.d/kernel-2.6 (Kernel 2.4 analog) eingetragen:
 +
echo dvb-ttpci >> /etc/modules.autoload.d/kernel-2.6
 +
echo b2c2-flexcop-pci >> /etc/modules.autoload.d/kernel-2.6
 +
  
 
=Installation der Firmware=
 
=Installation der Firmware=

Version vom 12. Dezember 2005, 18:18 Uhr

Inhaltsverzeichnis

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

Finden des richtigen Treibers

Da es relativ viele verschiedene DVB-Karten gibt muss jetzt herausgefunden werden welcher Treiber denn zu laden ist. Dies geht bei PCI-Karten zB mit pcimodules. Falls noch nicht vorhanden installieren wir die pciutils.

emerge pciutils

Nun schauen wir welche Treiber sich zuständig fühlen:

vdr # pcimodules
ohci-hcd
ehci-hcd
sis900
snd-emu10k1
dvb-ttpci
b2c2-flexcop-pci
nvidia
nvidiafb

In diesem Fall sind dies die Treiber dvb-ttpci und b2c2-flexcop-pci. Diese beiden werden nun in /etc/modules.autoload.d/kernel-2.6 (Kernel 2.4 analog) eingetragen:

echo dvb-ttpci >> /etc/modules.autoload.d/kernel-2.6
echo b2c2-flexcop-pci >> /etc/modules.autoload.d/kernel-2.6


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.