|
|
Zeile 18: |
Zeile 18: |
| * es können von allen Karten gleichzeitig Aufnahmen gemacht werden | | * es können von allen Karten gleichzeitig Aufnahmen gemacht werden |
| | | |
− | | + | ==Beispiele== |
− | ==Hilfestellung bei Problemen== | + | *[[Mischsysteme_Beispiel1|Mischsystem Arne]] |
− | Hinweis: der folgende Text ist das Ergebnis der Fehlersuche *eines* Problemfalls. Es wurde versucht, das Thema allgemeiner zu halten. Ergänzungen durch andere Erfahrungen zum Thema sind sehr erwünscht.
| + | |
− | | + | |
− | Die Ausgaben beziehen sich auf ein System, bei dem drei DVB-Karten installiert sind:
| + | |
− | * Pinnacle PCTV 300i -- DVB-T, analog
| + | |
− | * Fujitsu Siemens DVB-C -- DVB-C, analog
| + | |
− | * Medion 7134 (?) -- DVB-T, analog?
| + | |
− | | + | |
− | | + | |
− | ===Grundlegende Informationen zur installierten Hardware finden===
| + | |
− | | + | |
− | (Vielleicht sollte dieser Teil in eine eigene Seite ausgelagert werden.)
| + | |
− | | + | |
− | ====PCI-Steckkarten - Programm lspci====
| + | |
− | | + | |
− | lspci zeigt Informationen über PCI-Steckkarten, was für die meisten DVB-Karten sind.
| + | |
− | | + | |
− | # '''lspci''' | grep "Multimedia controller"
| + | |
− | 0000:00:0a.0 Multimedia controller: Philips Semiconductors SAA7134 (rev 01)
| + | |
− | 0000:00:0c.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
| + | |
− | 0000:00:0f.0 Multimedia controller: Philips Semiconductors SAA7134 (rev 01)
| + | |
− | | + | |
− | Die Ausgabe ist leider nicht sehr aussagekräftig, da sie sich auf spezielle Chips auf den DVB-Karten bezieht, aber sie ist zumindest ein Anhaltspunkt. Mit der Option ''verbose'' von lspci gelingt die Zuordnung schon besser:
| + | |
− | | + | |
− | # '''lspci -v'''
| + | |
− | [...]
| + | |
− | 0000:00:0a.0 Multimedia controller: Philips Semiconductors SAA7134 (rev 01)
| + | |
− | Subsystem: '''Creatix Polymedia GmbH: Unknown device 0003'''
| + | |
− | Flags: bus master, medium devsel, latency 64, IRQ 9
| + | |
− | Memory at dffff800 (32-bit, non-prefetchable) [size=1K]
| + | |
− | Capabilities: [40] Power Management version 1
| + | |
− | 0000:00:0c.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
| + | |
− | Subsystem: '''Siemens Nixdorf AG Fujitsu/Siemens DVB-C card rev1.5'''
| + | |
− | Flags: bus master, medium devsel, latency 64, IRQ 11
| + | |
− | Memory at dffffc00 (32-bit, non-prefetchable) [size=512]
| + | |
− | 0000:00:0f.0 Multimedia controller: Philips Semiconductors SAA7134 (rev 01)
| + | |
− | Subsystem: '''Pinnacle Systems Inc.: Unknown device 002d'''
| + | |
− | Flags: bus master, medium devsel, latency 64, IRQ 10
| + | |
− | Memory at dffff400 (32-bit, non-prefetchable) [size=1K]
| + | |
− | Capabilities: [40] Power Management version 1
| + | |
− | [...]
| + | |
− | | + | |
− | Da alle Karten mind. ein Jahr alt sind, wundert man sich, dass die Hardware noch nicht in die PCI-Device eingetragen ist.
| + | |
− | | + | |
− | ====USB-Geräte - Programm lsusb====
| + | |
− | | + | |
− | Bei USB-Geräten hift vielleicht das Kommando lsusb weiter.
| + | |
− | | + | |
− | ====Programm hwinfo====
| + | |
− | | + | |
− | Von Suse gibt das Programm hwinfo. Dies muss ggf. aber noch installiert werden, z. B. mit 'apt-get install hwinfo' (Debian) oder 'ACCEPT_KEYWORDS="~x86" emerge hwinfo' (Gentoo).
| + | |
− | | + | |
− | Der Aufruf mit 'hwinfo --dvb' ergab in obiger Beispielkonfiguration aber nur die Ausgabe für ein Gerät, so dass hier 'hwinfo --pci' verwendet wurde. Die Ausgabe enthält Informationen zu den verwendeten Treibern.
| + | |
− | | + | |
− | # hwinfo --pci
| + | |
− | [...]
| + | |
− | 25: PCI 0f.0: 11200 TV Card
| + | |
− | [Created at pci.244]
| + | |
− | Unique ID: _+Pw.wvAFGqF+rP8
| + | |
− | SysFS ID: /devices/pci0000:00/0000:00:0f.0
| + | |
− | SysFS BusID: 0000:00:0f.0
| + | |
− | Hardware Class: tv card
| + | |
− | Model: "Pinnacle SAA7134"
| + | |
− | Vendor: pci 0x1131 "Philips Semiconductors"
| + | |
− | Device: pci 0x7134 "SAA7134"
| + | |
− | SubVendor: pci 0x11bd "Pinnacle Systems Inc."
| + | |
− | SubDevice: pci 0x002d
| + | |
− | Revision: 0x01
| + | |
− | Driver: "saa7134"
| + | |
− | Memory Range: 0xdffff400-0xdffff7ff (rw,non-prefetchable)
| + | |
− | IRQ: 10 (no events)
| + | |
− | Driver Info #0:
| + | |
− | Driver Status: saa7134 is active
| + | |
− | Driver Activation Cmd: "modprobe saa7134"
| + | |
− | Config Status: cfg=new, avail=yes, need=no, active=unknown
| + | |
− | [...]
| + | |
− | | + | |
− | ====Treiber verwalten (lsmod, modprobe, insmod, rmmod)====
| + | |
− | | + | |
− | Die Treiber ("Module") befinden sich (beim Kernel 2.6?) im Verzeichnis /lib/modules/<Kernel-Version>/kernel/drivers/ und darunter, also z. B. /lib/modules/2.6.16-ct-1/kernel/drivers/media/dvb/.
| + | |
− | | + | |
− | Module können mit den Programmen lsmod, modprobe, insmod und rmmod verwaltet werden. Eine Beschreibung der Befehler würde hier zu weit gehen.
| + | |
− | | + | |
− | ====Ausgaben der Treiber - Programm dmesg====
| + | |
− | | + | |
− | Die Ausgaben der Kerneltreiber können mit dmesg betrachtet werden. Je nach Linux-Distribution befinden sich Informationen auch in den Dateien /var/log/messages, /var/log/kern.log, /var/log/dmesg, /var/log/everything/current, usw.
| + | |
− | | + | |
− | # dmesg
| + | |
− | [... sehr viel Informationen über alles mögliche ...]
| + | |
− | | + | |
− | Eine Ausgabe mit den wichtigen Informationen konnte auf einem System mit Kernel 2.6 so erzeugt werden:
| + | |
− | | + | |
− | # dmesg | grep -E '('$( find /lib/modules/$(uname -r)/kernel/drivers/media/ -type f | rev | cut -d. -f2 | cut -d/ -f1 | rev | tr "\n" "|" )'DVB|v4l|video|frontend|tuner)' | grep -v "i2c eeprom"
| + | |
− | | + | |
− | Boot video device is 0000:01:00.0
| + | |
− | Linux video capture interface: v1.00
| + | |
− | saa7130/34: v4l2 driver version 0.2.14 loaded
| + | |
− | saa7134[0]: found at 0000:00:0a.0, rev: 1, irq: 9, latency: 64, mmio: 0xdffff800
| + | |
− | saa7134[0]: subsystem: 16be:0003, board: '''Medion 7134''' [card=12,autodetected]
| + | |
− | saa7134[0]: board init: gpio is 0
| + | |
− | saa7134[0] Board has DVB-T
| + | |
− | saa7134[0] Tuner type is 63
| + | |
− | tuner 1-0061: chip found @ 0xc2 (saa7134[0])
| + | |
− | tuner 1-0061: type set to 63 (Philips FMD1216ME MK3 Hybrid Tuner)
| + | |
− | tda9887 1-0043: chip found @ 0x86 (saa7134[0])
| + | |
− | saa7134[0]: registered device video0 [v4l2]
| + | |
− | saa7134[0]: registered device vbi0
| + | |
− | saa7134[0]: registered device radio0
| + | |
− | saa7134[1]: found at 0000:00:0f.0, rev: 1, irq: 10, latency: 64, mmio: 0xdffff400
| + | |
− | saa7134[1]: subsystem: 11bd:002d, board: '''Pinnacle PCTV 300i''' DVB-T + PAL [card=50,autodetected]
| + | |
− | saa7134[1]: board init: gpio is c806000
| + | |
− | tuner 2-0060: Chip ID is not zero. It is not a TEA5767
| + | |
− | tuner 2-0060: chip found @ 0xc0 (saa7134[1])
| + | |
− | tuner 2-0060: microtune: companycode=3cbf part=42 rev=2f
| + | |
− | tuner 2-0060: microtune MT2050 found, OK
| + | |
− | tda9887 2-0043: chip found @ 0x86 (saa7134[1])
| + | |
− | saa7134[1]: registered device video1 [v4l2]
| + | |
− | saa7134[1]: registered device vbi1
| + | |
− | saa7146: register extension 'dvb'.
| + | |
− | saa7146: found saa7146 @ mem d0918c00 (revision 1, irq 11) (0x110a,0x0000).
| + | |
− | DVB: registering new adapter ('''Fujitsu Siemens DVB-C''').
| + | |
− | dvb-ttpci: gpioirq unknown type=0 len=0
| + | |
− | dvb-ttpci: info @ card 0: firm f0240009, rtsl b0250018, vid 71010068, app 80002622
| + | |
− | dvb-ttpci: firmware @ card 0 supports CI link layer interface
| + | |
− | dvb-ttpci: DVB-C analog module @ card 0 detected, initializing MSP3400
| + | |
− | saa7146_vv: saa7146 (0): registered device video2 [v4l2]
| + | |
− | saa7146_vv: saa7146 (0): registered device vbi2 [v4l2]
| + | |
− | DVB: registering frontend 0 (VLSI VES1820 DVB-C)...
| + | |
− | input: DVB on-card IR receiver as /class/input/input2
| + | |
− | dvb-ttpci: found av7110-0.
| + | |
− | | + | |
− | Wie man sieht, ist die Ausgabe über die Hardware sehr vom jeweiligen Treiber abhängig.
| + | |
− | | + | |
− | ====/dev/====
| + | |
− | | + | |
− | Für jede Karte muss ein Eintrag im Device-Filesystem vorhanden sein.
| + | |
− | | + | |
− | # ll -d /dev/dvb/*
| + | |
− | drwxr-xr-x 2 root root 200 2006-05-21 17:00 /dev/dvb/adapter0
| + | |
− | | + | |
− | Aha, da fehlen zwei! Richtig wäre:
| + | |
− | | + | |
− | # ll -d /dev/dvb/*
| + | |
− | drwxr-xr-x 2 root root 200 2006-05-21 20:00 /dev/dvb/adapter0
| + | |
− | drwxr-xr-x 2 root root 120 2006-05-21 18:02 /dev/dvb/adapter1
| + | |
− | drwxr-xr-x 2 root root 120 2006-05-21 18:02 /dev/dvb/adapter2
| + | |
− | | + | |
− | | + | |
− | ===Check: Sind die auch Frontend-Treiber geladen?===
| + | |
− | | + | |
− | Im obigen Beispiel wurden zwar die Treiber für die drei Karten geladen, aber nur ein Frontent-Treiber:
| + | |
− | | + | |
− | # dmesg | grep frontend
| + | |
− | DVB: registering frontend 0 (VLSI VES1820 DVB-C)...
| + | |
− | | + | |
− | Das laden der Frontend-Module (hier: /lib/modules/2.6.16-ct-1/kernel/drivers/media/dvb/frontends/) brachte *keinen* Erfolg! :-(
| + | |
− | | + | |
− | Folgendes funtionierte '''*hier*''':
| + | |
− | | + | |
− | # '''modprobe -v saa7134-dvb'''
| + | |
− | insmod /lib/modules/2.6.16-ct-1/kernel/drivers/media/dvb/frontends/tda1004x.ko
| + | |
− | insmod /lib/modules/2.6.16-ct-1/kernel/drivers/media/dvb/frontends/dvb-pll.ko
| + | |
− | insmod /lib/modules/2.6.16-ct-1/kernel/drivers/media/dvb/frontends/nxt200x.ko
| + | |
− | insmod /lib/modules/2.6.16-ct-1/kernel/drivers/media/video/video-buf-dvb.ko
| + | |
− | insmod /lib/modules/2.6.16-ct-1/kernel/drivers/media/dvb/frontends/mt352.ko
| + | |
− | insmod /lib/modules/2.6.16-ct-1/kernel/drivers/media/video/saa7134/saa7134-dvb.ko
| + | |
− | | + | |
− | Ergebnis:
| + | |
− | | + | |
− | # dmesg | grep frontend
| + | |
− | DVB: registering frontend 0 (VLSI VES1820 DVB-C)...
| + | |
− | DVB: registering frontend 1 (Philips TDA10046H DVB-T)...
| + | |
− | DVB: registering frontend 2 (Zarlink MT352 DVB-T)...
| + | |
− |
| + | |
− | # ll -d /dev/dvb/*
| + | |
− | drwxr-xr-x 2 root root 200 2006-05-21 20:00 /dev/dvb/adapter0
| + | |
− | drwxr-xr-x 2 root root 120 2006-05-21 18:02 /dev/dvb/adapter1
| + | |
− | drwxr-xr-x 2 root root 120 2006-05-21 18:02 /dev/dvb/adapter2
| + | |
− | | + | |
− | TODO
| + | |
− | | + | |
− | * Beim booten automatisch Modul laden ...
| + | |
− | | + | |
− | | + | |
− | ====Neustart des VDR====
| + | |
− | | + | |
− | # /etc/init.d/vdr restart
| + | |
− | | + | |
− | Ggf. weitere Programme starten (/etc/init.d/vdradmin-am start)
| + | |
− | | + | |
− | | + | |
− | ===Check: Wurde die notwendige Firmware geladen?===
| + | |
− | | + | |
− | # dmesg | grep firmware
| + | |
− | tda1004x: found firmware revision 26 -- ok
| + | |
− | | + | |
− | | + | |
− | ===Check: channels.conf===
| + | |
− | | + | |
− | Die Datei channels.conf muss für alle Karten-Typen (DVB-T, DVB-S, DVB-C) die Einträge enthalten.
| + | |
− | | + | |
− | In obigen System (c't-VDR 2006-05) mit VDR 1.4 war die channels.conf nicht mehr unter /etc/vdr/, sondern unter /var/lib/vdr/:
| + | |
− | | + | |
− | # ls -l /var/lib/vdr/channels.conf
| + | |
− | -rw-r--r-- 1 vdr vdr 3990 2006-05-21 15:10 /var/lib/vdr/channels.conf
| + | |
− | | + | |
− | Beispiele, die bei der c't-VDR-Ditribution von Mai 2006 mitgeliefert werden:
| + | |
− | | + | |
− | # ls -l /var/lib/ctvdrcfg/base/vdr/channels
| + | |
− |
| + | |
− | -rw-r--r-- 1 root root 10177 2006-04-30 22:42 DVB-C-IESY
| + | |
− | -rw-r--r-- 1 root root 3181 2006-05-12 09:26 DVB-C-Kabel-Deutschland
| + | |
− |
| + | |
− | -rw-r--r-- 1 root root 8864 2006-04-30 22:42 DVB-S-Astra
| + | |
− |
| + | |
− | -rw-r--r-- 1 root root 2177 2006-04-30 22:42 DVB-T-BerlinBrandenburg
| + | |
− | -rw-r--r-- 1 root root 1632 2006-04-30 22:42 DVB-T-Bonn
| + | |
− | -rw-r--r-- 1 root root 1545 2006-04-30 22:42 DVB-T-Braunschweig
| + | |
− | -rw-r--r-- 1 root root 2035 2006-04-30 22:42 DVB-T-BremenOldenburg
| + | |
− | -rw-r--r-- 1 root root 1701 2006-04-30 22:42 DVB-T-Dortmund
| + | |
− | -rw-r--r-- 1 root root 1708 2006-04-30 22:42 DVB-T-Duesseldorf
| + | |
− | -rw-r--r-- 1 root root 1540 2006-04-30 22:42 DVB-T-Frankfurt
| + | |
− | -rw-r--r-- 1 root root 2043 2006-04-30 22:42 DVB-T-Hamburg
| + | |
− | -rw-r--r-- 1 root root 1551 2006-04-30 22:42 DVB-T-Hannover
| + | |
− | -rw-r--r-- 1 root root 1558 2006-04-30 22:42 DVB-T-Kiel
| + | |
− | -rw-r--r-- 1 root root 250 2006-04-30 22:42 DVB-T-Leipzig
| + | |
− | -rw-r--r-- 1 root root 1613 2006-04-30 22:42 DVB-T-Mainz
| + | |
− | -rw-r--r-- 1 root root 256 2006-04-30 22:42 DVB-T-Muenchen
| + | |
− | | + | |
− | Backup der alten Liste
| + | |
− | | + | |
− | # cd /var/lib/vdr/
| + | |
− | # cp -a channels.conf channels.conf__2006-05-21a
| + | |
− | Erstellen der neuen Liste
| + | |
− | | + | |
− | # cd /var/lib/ctvdrcfg/base/vdr/channels/
| + | |
− | # cat DVB-C-Kabel-Deutschland DVB-T-Braunschweig > /var/lib/vdr/channels.conf
| + | |
− | | + | |
− | Reihenfolgen bearbeiten mit beliebigen Editor, z. B. joe.
| + | |
− | | + | |
− | TODO
| + | |
− | | + | |
− | * Link zu aktuellen Senderlisten
| + | |
− | * Konfigurationsmöglichkeiten des VDR zur automatischen Ergänzung der Liste
| + | |
Da diese Frage immer wieder auftaucht:
selbstverständlich sind Mischsysteme aus allen drei DVB Arten: DVB-{S,C,T} und analogem TV möglich.
Mit solchen Systemen gibt es einige kleinere Einschränkungen und Besonderheiten, diese Seite soll eine Übersicht dazu bieten.