Gentoo DVB Treiber
Zzam (Diskussion | Beiträge) (Synced to english version) |
Zzam (Diskussion | Beiträge) (synced to english version) |
||
Zeile 30: | Zeile 30: | ||
<b>Kernelkonfiguration</b> | <b>Kernelkonfiguration</b> | ||
<pre> | <pre> | ||
− | Code maturity level options --> | + | Code maturity level options ---> |
− | + | [*] Prompt for development and incomplete code / driver | |
− | + | [*] Select only drivers expected to compile cleanly | |
− | + | ||
− | + | Loadable module support ---> | |
− | + | [*] Enable loadable module support | |
− | + | [*] Module unloading | |
− | + | [*] Automatic kernel module loading | |
− | + | Device Drivers ---> | |
− | + | Generic Driver Options ---> | |
+ | [*] Select only drivers that don't need compile-time external firmware | ||
+ | [*] Prevent firmware from being built | ||
+ | <M> Hotplug firmware loading support | ||
− | + | Block Devices ---> | |
− | + | <*> RAM disk support | |
− | + | [*] Initial RAM disk (initrd) support | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Input Device Support ---> | |
− | + | <M> Event Interface (i.e. necessary for included IR-Receiver of the Hauppauge Nexus) | |
− | + | ||
− | + | Character Devices ---> | |
− | + | Serial Drivers --> | |
− | + | [ ] 8250/16550 and compatible serial support (or as module, only necessary for LIRC) | |
− | + | [*] Legacy (BSD) PTY support | |
− | + | <M> /dev/nvram support | |
+ | <M> Enhance Realtime Clock support | ||
− | + | I2C support ---> | |
− | + | <M> I2C support | |
− | + | <M> I2C device interface | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | I2C Algorithms ---> | |
− | + | <M> I2C bit-banging interfaces | |
− | + | <M> I2C PCF 8584 interfaces | |
− | + | ||
− | + | ||
− | + | ||
− | + | Multimedia Devices ---> | |
− | + | <M> Video For Linux aktivieren | |
− | + | ||
− | + | Digital Video Broadcasting Devices ---> | |
− | + | [*] DVB For Linux | |
− | + | <M> DVB Core Support | |
− | + | ||
− | + | <M> AV7110 cards | |
− | + | [*] AV7110 OSD support | |
− | + | ||
− | + | (enable every module in here) | |
− | + | ||
− | + | File Systems ---> | |
− | + | <*> Kernel automounter version 4 support (also supports v3) | |
− | + | ||
− | + | Pseudo filesystems --> | |
− | + | [*] /proc file system support | |
− | + | [*] Virtual memory file system support (former shm fs) | |
− | + | [*] /dev/pts file system for Unix98 PTYs | |
− | + | ||
</pre> | </pre> | ||
− | |||
==Variante B - Treiber aus dem CVS== | ==Variante B - Treiber aus dem CVS== | ||
Zeile 110: | Zeile 94: | ||
<b>Kernelkonfiguration</b> | <b>Kernelkonfiguration</b> | ||
<pre> | <pre> | ||
− | Code maturity level options --> | + | Code maturity level options ---> |
− | + | [*] Prompt for development and incomplete code / driver | |
− | + | [*] Select only drivers expected to compile cleanly | |
− | + | ||
− | + | Loadable module support ---> | |
− | + | [*] Enable loadable module support | |
− | + | [*] Module unloading | |
− | + | [*] Automatic kernel module loading | |
− | + | Device Drivers ---> | |
− | + | Generic Driver Options ---> | |
− | + | [*] Select only drivers that don't need compile-time external firmware | |
+ | [*] Prevent firmware from being built | ||
+ | <M> Hotplug firmware loading support | ||
− | + | Block Devices ---> | |
− | + | <*> RAM disk support | |
+ | [*] Initial RAM disk (initrd) support | ||
− | + | Input Device Support ---> | |
− | + | <M> Event Interface (i.e. necessary for included IR-Receiver of the Hauppauge Nexus) | |
− | + | ||
− | + | ||
− | + | Character Devices ---> | |
− | + | Serial Drivers --> | |
− | + | [ ] 8250/16550 and compatible serial support (or as module, only necessary for LIRC) | |
− | + | ||
− | + | ||
− | + | ||
− | + | [*] Legacy (BSD) PTY support | |
− | + | <M> /dev/nvram support | |
− | + | <M> Enhance Realtime Clock support | |
− | --> | + | |
+ | I2C support ---> | ||
+ | <M> I2C support | ||
+ | <M> I2C device interface | ||
+ | |||
+ | I2C Algorithms ---> | ||
+ | <M> I2C bit-banging interfaces | ||
+ | <M> I2C PCF 8584 interfaces | ||
+ | |||
+ | Multimedia Devices ---> | ||
+ | <M> Video For Linux aktivieren | ||
+ | |||
+ | Digital Video Broadcasting Devices ---> | ||
+ | [ ] DVB For Linux | ||
+ | |||
+ | File Systems ---> | ||
+ | <*> Kernel automounter version 4 support (also supports v3) | ||
+ | |||
+ | Pseudo filesystems --> | ||
+ | [*] /proc file system support | ||
+ | [*] Virtual memory file system support (former shm fs) | ||
+ | [*] /dev/pts file system for Unix98 PTYs | ||
</pre> | </pre> | ||
Zeile 152: | Zeile 154: | ||
=Finden des richtigen Treibers= | =Finden des richtigen Treibers= | ||
+ | |||
+ | Zuerst wird das evdev-Modul geladen: | ||
+ | echo evdev >> /etc/modules.autoload.d/kernel-2.6 | ||
+ | |||
Da es relativ viele verschiedene DVB-Karten gibt muss jetzt herausgefunden werden welcher Treiber denn zu laden ist. | 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''. | Dies geht bei PCI-Karten zB mit ''pcimodules''. | ||
Zeile 202: | Zeile 208: | ||
=Laden des Treibers= | =Laden des Treibers= | ||
Entweder wir laden die Treiber nun mit der Hand: | Entweder wir laden die Treiber nun mit der Hand: | ||
+ | modprobe evdev | ||
modprobe dvb-ttpci | modprobe dvb-ttpci | ||
modprobe b2c2-flexcop-pci | modprobe b2c2-flexcop-pci |
Version vom 14. Dezember 2005, 21:24 Uhr
Inhaltsverzeichnis |
Treiber für Kernel 2.4
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
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 [*] Select only drivers expected to compile cleanly Loadable module support ---> [*] Enable loadable module support [*] Module unloading [*] Automatic kernel module loading Device Drivers ---> Generic Driver Options ---> [*] Select only drivers that don't need compile-time external firmware [*] Prevent firmware from being built <M> Hotplug firmware loading support Block Devices ---> <*> RAM disk support [*] Initial RAM disk (initrd) support Input Device Support ---> <M> Event Interface (i.e. necessary for included IR-Receiver of the Hauppauge Nexus) Character Devices ---> Serial Drivers --> [ ] 8250/16550 and compatible serial support (or as module, only necessary for LIRC) [*] Legacy (BSD) PTY support <M> /dev/nvram support <M> Enhance Realtime Clock support I2C support ---> <M> I2C support <M> I2C device interface I2C Algorithms ---> <M> I2C bit-banging interfaces <M> I2C PCF 8584 interfaces Multimedia Devices ---> <M> Video For Linux aktivieren Digital Video Broadcasting Devices ---> [*] DVB For Linux <M> DVB Core Support <M> AV7110 cards [*] AV7110 OSD support (enable every module in here) File Systems ---> <*> Kernel automounter version 4 support (also supports v3) Pseudo filesystems --> [*] /proc file system support [*] Virtual memory file system support (former shm fs) [*] /dev/pts file system for Unix98 PTYs
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 [*] Select only drivers expected to compile cleanly Loadable module support ---> [*] Enable loadable module support [*] Module unloading [*] Automatic kernel module loading Device Drivers ---> Generic Driver Options ---> [*] Select only drivers that don't need compile-time external firmware [*] Prevent firmware from being built <M> Hotplug firmware loading support Block Devices ---> <*> RAM disk support [*] Initial RAM disk (initrd) support Input Device Support ---> <M> Event Interface (i.e. necessary for included IR-Receiver of the Hauppauge Nexus) Character Devices ---> Serial Drivers --> [ ] 8250/16550 and compatible serial support (or as module, only necessary for LIRC) [*] Legacy (BSD) PTY support <M> /dev/nvram support <M> Enhance Realtime Clock support I2C support ---> <M> I2C support <M> I2C device interface I2C Algorithms ---> <M> I2C bit-banging interfaces <M> I2C PCF 8584 interfaces Multimedia Devices ---> <M> Video For Linux aktivieren Digital Video Broadcasting Devices ---> [ ] DVB For Linux File Systems ---> <*> Kernel automounter version 4 support (also supports v3) Pseudo filesystems --> [*] /proc file system support [*] Virtual memory file system support (former shm fs) [*] /dev/pts file system for Unix98 PTYs
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
Zuerst wird das evdev-Modul geladen:
echo evdev >> /etc/modules.autoload.d/kernel-2.6
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
Entweder wir laden die Treiber nun mit der Hand:
modprobe evdev modprobe dvb-ttpci modprobe b2c2-flexcop-pci
oder wir starten das Bootskript welches die Module lädt (unsauber):
/etc/init.d/modules zap start
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.