Mischsysteme

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Check: channels.conf)
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
+

Version vom 21. Mai 2006, 20:36 Uhr

Inhaltsverzeichnis

Einleitung

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.

Besonderheiten bei der Konfiguration

  • für verschiedene DVB Karten müssen auch die jeweils passenden Frontendtreiber geladen werden
  • DVB-T Karten benötigen meist zusätzlich Firmware des Kartenherstellers
  • analogtv braucht zusätzlich das analogtv-Plugin
  • alle Senderdefinitionen, egal ob DVB-S, DVB-C, DVB-T oder analog kommen gemeinsam in eine channels.conf
  • die Reihenfolge der unterschiedlichen Sender in der channels.conf ist dabei frei wählbar

Einschränkungen und Besonderheiten beim Betrieb

  • der VDR gibt alle Kanäle über ein Ausgabegerät wieder, unabhängig von deren Quelle
  • VDR erkennt aus der channels.conf, welche Karte er zu nutzen hat
  • VDR ist nicht in der Lage selbstständig zu erkennen, ob ein Sender auf zwei unterschiedlichen Übertragungswegen doppelt vorhanden ist. Falls beispielsweise 'Das Erste' sowohl auf DVB-C als auch DVB-T gesendet wird, behandelt VDR diese beiden Kanäle als unterschiedliche Sender.
  • bei Timern muss dementsprechend darauf geachtet werden, dass die jeweilige Karte auch wirklich frei ist und nicht bereits von einem anderen Timer/Transponder belegt wurde. VDR wählt nur dann eine alternative Quelle, wenn diese die gleiche Signalart hat.
  • es können von allen Karten gleichzeitig Aufnahmen gemacht werden

Beispiele