Gentoo DVB Treiber
Zzam (Diskussion | Beiträge) (udev-079 funktioniert) |
Flow (Diskussion | Beiträge) K (Hinweis auf 'lspci -k') |
||
(22 dazwischenliegende Versionen von 17 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=Treiber für Kernel 2.4= | =Treiber für Kernel 2.4= | ||
<b>Kernelkonfiguration</b> | <b>Kernelkonfiguration</b> | ||
+ | |||
+ | Im Verzeichnis der Kernelquellen '/usr/src/linux' lassen sich mit Hilfe von 'make menuconfig' folgende Einstellungen vornehmen (weitere Informationen im [http://de.gentoo-wiki.com/Kernel_manuell_kompilieren Gentoo-Wiki]): | ||
+ | |||
<pre> | <pre> | ||
Input core support ---> | Input core support ---> | ||
Zeile 19: | Zeile 22: | ||
</pre> | </pre> | ||
− | Jetzt kann das linuxtv-dvb | + | Jetzt kann das ebuild linuxtv-dvb installiert werden. (Wenn es jetzt nicht installiert wird, passiert dies automatisch bei der Installation von VDR). |
<pre> | <pre> | ||
emerge linuxtv-dvb | emerge linuxtv-dvb | ||
Zeile 25: | Zeile 28: | ||
=Treiber für Kernel 2.6= | =Treiber für Kernel 2.6= | ||
− | Kernel 2.6 enthält schon einige DVB-Treiber, d.h. es gibt hier | + | Kernel 2.6 enthält schon einige DVB-Treiber, d.h. es gibt hier zwei Möglichkeiten. Entweder man nimmt die mitgelieferten Treiber, oder man installiert sich die neuesten Treiber aus der versionsverwaltung Mercurial von [[http://www.linuxtv.org linuxtv.org]]. |
==Variante A - Kernel-Treiber== | ==Variante A - Kernel-Treiber== | ||
<b>Kernelkonfiguration</b> | <b>Kernelkonfiguration</b> | ||
+ | |||
+ | Analog zur Kernelkonfiguration für Kernel 2.4 lassen sich mit 'make menuconfig' folgende Einstellungen vornehmen: | ||
+ | |||
<pre> | <pre> | ||
Code maturity level options ---> | Code maturity level options ---> | ||
Zeile 89: | Zeile 95: | ||
</pre> | </pre> | ||
− | ==Variante B - Treiber aus | + | ==Variante B - Treiber aus der Versionsverwaltung== |
− | 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 | + | 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 kompiliert. |
<b>Kernelkonfiguration</b> | <b>Kernelkonfiguration</b> | ||
Zeile 133: | Zeile 139: | ||
Multimedia Devices ---> | Multimedia Devices ---> | ||
− | < | + | < > Video For Linux |
Digital Video Broadcasting Devices ---> | Digital Video Broadcasting Devices ---> | ||
Zeile 145: | Zeile 151: | ||
[*] Virtual memory file system support (former shm fs) | [*] Virtual memory file system support (former shm fs) | ||
[*] /dev/pts file system for Unix98 PTYs | [*] /dev/pts file system for Unix98 PTYs | ||
+ | |||
+ | Library Routines ---> | ||
+ | <*> CRC32 functions | ||
+ | |||
</pre> | </pre> | ||
− | Jetzt das v4l-dvb- | + | Jetzt das ebuild v4l-dvb-hg (ersetzt die früheren ebuilds linuxtv-dvb-cvs von gentoo.de und v4l-dvb-cvs) emergen: |
<pre> | <pre> | ||
− | echo "media-tv/v4l-dvb- | + | echo "media-tv/v4l-dvb-hg ~x86" >> /etc/portage/package.keywords |
− | emerge v4l-dvb- | + | emerge v4l-dvb-hg |
</pre> | </pre> | ||
=Finden des richtigen Treibers= | =Finden des richtigen Treibers= | ||
− | Zuerst wird das | + | siehe auch [[http://de.gentoo-wiki.com/Hardware_Index]] unter ''TV-Karten'' |
+ | |||
+ | Zuerst wird das Modul evdev geladen: | ||
echo evdev >> /etc/modules.autoload.d/kernel-2.6 | echo evdev >> /etc/modules.autoload.d/kernel-2.6 | ||
Zeile 164: | Zeile 176: | ||
Nun schauen wir welche Treiber sich zuständig fühlen: | Nun schauen wir welche Treiber sich zuständig fühlen: | ||
+ | Bei älternen Systemen geht das mit ''pcimodules'' | ||
vdr # pcimodules | vdr # pcimodules | ||
ohci-hcd | ohci-hcd | ||
Zeile 173: | Zeile 186: | ||
nvidia | nvidia | ||
nvidiafb | nvidiafb | ||
+ | |||
+ | Bei neueren wurde ''pcimodules'' druch ''lspci -k'' abgelöst: | ||
+ | vdr # lspci -k | ||
+ | 01:08.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01) | ||
+ | Subsystem: Technotrend Systemtechnik GmbH Device 101a | ||
+ | Kernel driver in use: budget_ci dvb | ||
+ | |||
In diesem Fall sind dies die Treiber ''dvb-ttpci'' und ''b2c2-flexcop-pci''. | In diesem Fall sind dies die Treiber ''dvb-ttpci'' und ''b2c2-flexcop-pci''. | ||
Zeile 178: | Zeile 198: | ||
echo dvb-ttpci >> /etc/modules.autoload.d/kernel-2.6 | echo dvb-ttpci >> /etc/modules.autoload.d/kernel-2.6 | ||
echo b2c2-flexcop-pci >> /etc/modules.autoload.d/kernel-2.6 | echo b2c2-flexcop-pci >> /etc/modules.autoload.d/kernel-2.6 | ||
− | |||
=Installation der Firmware= | =Installation der Firmware= | ||
Seit neuestem gibt es ein ebuild für die Firmware-Dateien. | Seit neuestem gibt es ein ebuild für die Firmware-Dateien. | ||
Hierfür kann man in /etc/[[Gentoo make.conf|make.conf]] festlegen für welche DVB-Karten man Firmware-Dateien braucht. | Hierfür kann man in /etc/[[Gentoo make.conf|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. | + | Falls man diesen Schritt unterlässt, werden alle Firmware-Dateien installiert (Warnung: ca. 60 MB Download) |
In /etc/[[Gentoo make.conf|make.conf]]: | In /etc/[[Gentoo make.conf|make.conf]]: | ||
Zeile 195: | Zeile 214: | ||
usb-vp7045 usb-wt220u | usb-vp7045 usb-wt220u | ||
− | In | + | In den 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: | Wenn man beispielsweise eine FF-Karte und eine Karte mit nxt2002 Chip installiert hat sollte DVB_CARDS mindestens so aussehen: | ||
DVB_CARDS="ttpci nxt2002" | DVB_CARDS="ttpci nxt2002" | ||
− | Danach wird das | + | Danach wird das Paket linuxtv-dvb-firmware per emerge installiert. |
<pre> | <pre> | ||
echo "media-tv/linuxtv-dvb-firmware ~x86" >> /etc/portage/package.keywords | echo "media-tv/linuxtv-dvb-firmware ~x86" >> /etc/portage/package.keywords | ||
Zeile 206: | Zeile 225: | ||
</pre> | </pre> | ||
− | Das | + | Das Paket '''hotplug''' sollte installiert sein. Wenn noch nicht geschehen: |
emerge sys-apps/hotplug | emerge sys-apps/hotplug | ||
Aktuelle Version vom 3. Mai 2012, 16:25 Uhr
Inhaltsverzeichnis |
[Bearbeiten] Treiber für Kernel 2.4
Kernelkonfiguration
Im Verzeichnis der Kernelquellen '/usr/src/linux' lassen sich mit Hilfe von 'make menuconfig' folgende Einstellungen vornehmen (weitere Informationen im Gentoo-Wiki):
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 ebuild linuxtv-dvb installiert werden. (Wenn es jetzt nicht installiert wird, passiert dies automatisch bei der Installation von VDR).
emerge linuxtv-dvb
[Bearbeiten] Treiber für Kernel 2.6
Kernel 2.6 enthält schon einige DVB-Treiber, d.h. es gibt hier zwei Möglichkeiten. Entweder man nimmt die mitgelieferten Treiber, oder man installiert sich die neuesten Treiber aus der versionsverwaltung Mercurial von [linuxtv.org].
[Bearbeiten] Variante A - Kernel-Treiber
Kernelkonfiguration
Analog zur Kernelkonfiguration für Kernel 2.4 lassen sich mit 'make menuconfig' folgende Einstellungen vornehmen:
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. notwendig für den intergierten IR-Empfänger der Hauppauge Nexus) Character Devices ---> Serial Drivers --> [ ] 8250/16550 and compatible serial support (oder als Modul, nur notwendig für 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
[Bearbeiten] Variante B - Treiber aus der Versionsverwaltung
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 kompiliert.
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 ---> < > Video For Linux 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 Library Routines ---> <*> CRC32 functions
Jetzt das ebuild v4l-dvb-hg (ersetzt die früheren ebuilds linuxtv-dvb-cvs von gentoo.de und v4l-dvb-cvs) emergen:
echo "media-tv/v4l-dvb-hg ~x86" >> /etc/portage/package.keywords emerge v4l-dvb-hg
[Bearbeiten] Finden des richtigen Treibers
siehe auch [[1]] unter TV-Karten
Zuerst wird das Modul evdev 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: Bei älternen Systemen geht das mit pcimodules
vdr # pcimodules ohci-hcd ehci-hcd sis900 snd-emu10k1 dvb-ttpci b2c2-flexcop-pci nvidia nvidiafb
Bei neueren wurde pcimodules druch lspci -k abgelöst:
vdr # lspci -k 01:08.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01) Subsystem: Technotrend Systemtechnik GmbH Device 101a Kernel driver in use: budget_ci dvb
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
[Bearbeiten] 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. 60 MB 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 den 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 Paket linuxtv-dvb-firmware per emerge installiert.
echo "media-tv/linuxtv-dvb-firmware ~x86" >> /etc/portage/package.keywords emerge linuxtv-dvb-firmware
Das Paket hotplug sollte installiert sein. Wenn noch nicht geschehen:
emerge sys-apps/hotplug
TIPP: Falls das Laden der Firmware fehlschlagen sollte, kann man andere Versionen von udev probieren.
Mit der aktuell stabilen Version udev-079 funktioniert es sehr gut.
[Bearbeiten] 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.