Mischsysteme

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Allgemein)
 
(16 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Einleitung==
 
==Einleitung==
Da diese Frage immer wieder auftaucht:
+
Selbstverständlich sind Mischsysteme aus allen drei DVB-Arten ([[DVB-S]], [[DVB-T]] und [[DVB-C]]) und analogem TV möglich.
selbstverständlich sind Mischsysteme aus allen drei DVB Arten: DVB-{S,C,T} und analogem TV möglich.
+
Allerdings gibt es bei solchen Systemen einige kleinere Einschränkungen und Besonderheiten zu beachten.
Mit solchen Systemen gibt es einige kleinere Einschränkungen und Besonderheiten, diese Seite soll eine Übersicht dazu bieten.
+
  
 
==Besonderheiten bei der Konfiguration==
 
==Besonderheiten bei der Konfiguration==
* für verschiedene [[DVB]] Karten müssen auch die jeweils passenden Frontendtreiber geladen werden
+
* alle Senderdefinitionen, egal ob [[DVB-S]], [[DVB-C]], [[DVB-T]] oder analog kommen gemeinsam in die [[channels.conf]]
* [[DVB-T]] Karten benötigen meist zusätzlich Firmware des Kartenherstellers
+
* die Reihenfolge der Sender in der channels.conf ist frei wählbar
* 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
+
===Allgemein===
* die Reihenfolge der unterschiedlichen Sender in der channels.conf ist dabei frei wählbar
+
* [[DVB-T]] Karten benötigen meist zusätzlich [[Firmware]] des Kartenherstellers
 +
* für verschiedene [[DVB]]-Karten müssen auch die jeweils passenden Frontendtreiber geladen werden
 +
* analoges TV braucht zusätzlich das [[Pvrinput-plugin]]
  
 
==Einschränkungen und Besonderheiten beim Betrieb==
 
==Einschränkungen und Besonderheiten beim Betrieb==
 
* der VDR gibt alle Kanäle über ein Ausgabegerät wieder, unabhängig von deren Quelle
 
* der VDR gibt alle Kanäle über ein Ausgabegerät wieder, unabhängig von deren Quelle
 +
* es können von allen Karten gleichzeitig Aufnahmen gemacht werden
 
* VDR erkennt aus der channels.conf, welche Karte er zu nutzen hat
 
* 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.
+
* 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. Erste Abhilfe für dieses Problem verschafft der relativ neue [[Alternative_channel-patch|Alternative-Channel-Patch]].
 
* 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.
 
* 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
 
 
 
==Hilfestellung bei Problemen==
 
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===
+
[[ru:Mix]]
 +
[[Kategorie:DVB-C]][[Kategorie:DVB-S]][[Kategorie:DVB-T]]
 +
[[Kategorie:Mischsysteme]]

Aktuelle Version vom 30. August 2013, 22:53 Uhr

Inhaltsverzeichnis

[Bearbeiten] Einleitung

Selbstverständlich sind Mischsysteme aus allen drei DVB-Arten (DVB-S, DVB-T und DVB-C) und analogem TV möglich. Allerdings gibt es bei solchen Systemen einige kleinere Einschränkungen und Besonderheiten zu beachten.

[Bearbeiten] Besonderheiten bei der Konfiguration

  • alle Senderdefinitionen, egal ob DVB-S, DVB-C, DVB-T oder analog kommen gemeinsam in die channels.conf
  • die Reihenfolge der Sender in der channels.conf ist frei wählbar

[Bearbeiten] Allgemein

  • DVB-T Karten benötigen meist zusätzlich Firmware des Kartenherstellers
  • für verschiedene DVB-Karten müssen auch die jeweils passenden Frontendtreiber geladen werden
  • analoges TV braucht zusätzlich das Pvrinput-plugin

[Bearbeiten] Einschränkungen und Besonderheiten beim Betrieb

  • der VDR gibt alle Kanäle über ein Ausgabegerät wieder, unabhängig von deren Quelle
  • es können von allen Karten gleichzeitig Aufnahmen gemacht werden
  • 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. Erste Abhilfe für dieses Problem verschafft der relativ neue Alternative-Channel-Patch.
  • 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.
In anderen Sprachen