Digital Devices Cine S2
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
⚓︎ Verwenden eines PPAs, optional
⚓︎ Einen Editor öffnen, optional
⚓︎ Root-Rechte, optional
Die Digital Device Cine S2 🇩🇪 ist eine DVB-Karte für den PCIexpress-Bus vom deutschen Hersteller Digital Device und wird mit Linux-Unterstützung angeboten. Alle Cine-S2-Karten bis zur Version 6.0 werden vom Kernel automatisch erkannt und können direkt verwendet werden.
Alle Versionen aktueller 6.0 werden erst ab Ubuntu 16.04 automatisch erkannt!
Aktuell wird nur noch die Version 6.5 dieser Karte verkauft, die erst ab Ubuntu 16.04 automatisch erkannt wird. Falls man diese Karte erstanden hat und eine ältere Ubuntu Version nutzt, dann muss man den Treiber von Hand nachinstallieren. Dieser Artikel beschäftigt sich mit der manuellen Installation als auch mit der Möglichkeit einer automatischen Installation des fehlenden Kernelmoduls ddbridge.
Diese Anleitung funktioniert auch (eventuell nur teilweise) für die Digital Device Cine C2/T2 🇩🇪.
Installation¶
Manuelle Installation¶
Damit die Karte vom System erkannt wird, muss die aktuellste Version des Kernelmoduls ddbridge für den eigenen Kernel gebaut und installiert werden.
Benötigte Pakete installieren¶
Zum Erstellen des Kernelmoduls werden folgende Programme benötigt[1]:
build-essential
libproc-processtable-perl (universe)
libncurses5-dev
linux-headers-generic
mercurial (universe )
Befehl zum Installieren der Pakete:
sudo apt-get install build-essential libproc-processtable-perl libncurses5-dev linux-headers-generic mercurial
Oder mit apturl installieren, Link: apt://build-essential,libproc-processtable-perl,libncurses5-dev,linux-headers-generic,mercurial
Arbeitsumgebung erstellen¶
Als erstes öffnet man ein Terminal[2] und erstellt ein Verzeichnis, indem die benötigten Dateien heruntergeladen werden und das Kernelmodul gebaut wird.
mkdir ~/Download/Build
Natürlich kann man auch einen anderen Ordner wählen. Nun wechselt man in das Verzeichnis, welches man gerade erstellt hat.
cd ~/Download/Build
Kopie des Projektes media_build herunterladen¶
Jetzt lädt man sich eine Kopie des Projekts media_build_experimental 🇬🇧 mit Hilfe von Archiv/Mercurial herunter[3].
hg clone http://linuxtv.org/hg/~endriss/media_build_experimental
Treiberpakete herunterladen und auspacken¶
Daraufhin wechselt man in das Verzeichnis media_build_experimental und lädt die noch fehlenden Treiberpakete herunter und entpackt diese.
cd media_build_experimental make download make untar
Hinweis:
Dieser Vorgang kann einige Zeit dauern.
Nicht benötigte Module abwählen¶
Die heruntergeladenen Treiberpakete beinhalten neben den gesuchten Kernelmodul ddbridge noch sehr viele weitere Treiber, daher ist es sinnvoll nur die benötigten Module auszuwählen und alle anderen abzuschalten.
make menuconfig
Folgende Objekte müssen angewählt werden:
Multimedia support
Digital TV support
Digital Devices bridge support
Die benötigten Tuner werden dann automatisch angewählt. Außerdem muss noch kontrolliert werden, dass
Staging drivers
Media staging drivers
CXD2099AR Common Interface driver
angewählt sind.
Treiber bauen¶
Nun muss man die ausgewählten Module bauen.
make -jX
Das X
ersetzt man durch die Anzahl der Kerne, die der Prozessor hat. Bei einem Dualcore-Prozessor müsste der Befehl also lauten:
make -j2
Module installieren¶
Wenn das Erstellen der Module ohne Fehler durchgelaufen ist, dann müssen die nur noch installiert werden.
sudo make install
Nun muss man den PC nur noch neustarten und schon sollte die Karte vom System erkannt und verwendet werden.
Hinweis:
Die TV-Karte funktioniert nur bis zum nächsten Kernelupdate. Nach einem Kernelupdate muss man die Treiber neu erstellen.
Nach Kernelupdate - Arbeitsumgebung aufräumen¶
Um nach einen Kernelupdate die fehlenden Treiber wieder neu zu installieren, muss man das Arbeitsverzeichnis, welches man bei der ersten Installation angelegt hat, aufräumen:
make clean make distclean
Danach kann wieder mit dem Schritt Nicht benötigte Module abwählen fortfahren.
Automatische Installation¶
Wem die manuelle Installation zu kompliziert ist, für den existiert noch eine andere Möglichkeit. Durch die Installation des Pakets dddvb-dkms aus dem nachfolgenden "Personal Package Archiv" (PPA)[4] wird das Kernelmodul ddbridge mithilfe von DKMS für jeden neu installierten Kernel automatisch erstellt und installiert.
Paketquelle hinzufügen¶
Dieses PPA ist zwar neben Ubuntu 12.04 auch für Ubuntu 14.04 verfügbar, leider wurde das benötigte Paket dddvb-dksm nur für Ubuntu 12.04 angeboten.
Adresszeile zum Hinzufügen des PPAs:
ppa:yavdr/unstable-main
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams yavdr zu entnehmen.
Das Paket dddvb-dkms funktioniert aber auch bis einschließlich Ubuntu 14.04. Dort kann man das PPA nicht wie normal hinzufügen, sondern muss in einem Editor[5] mit Root-Rechten[6] die Datei /etc/apt/sources.list öffnen und die folgende Zeile hinzufügen:
1 | deb http://ppa.launchpad.net/yavdr/unstable-main/ubuntu precise main |
Jetzt muss man die Paketquellen zwingend mit dem jeweiligen Paketmanager (Synaptic, apt-get, aptitude, etc.) neu laden bzw. aktualisieren. Das Neuladen der Paketquellen kann man beispielsweise im Terminal mit folgenden Befehl veranlassen:
sudo apt-get update
Danach kann man das Paket wie gewohnt installieren:
dddvb-dkms (ppa)
Befehl zum Installieren der Pakete:
sudo apt-get install dddvb-dkms
Oder mit apturl installieren, Link: apt://dddvb-dkms
Hinweis:
Nach der Installation sollte man das PPA wieder deaktiviert, da es sich um eine Paketquelle mit Testversionen handelt.
Benutzung¶
Die Karte kann mit jeder DVB-S-tauglichen Software verwendet werden (siehe TV).
Problembehebung¶
Karte funktioniert nach dem Aufwecken nicht mehr¶
Nachdem der PC aus dem Ruhezustand oder Bereitschaftsmodus aufgewacht ist, funktioniert die TV-Karte nicht mehr, da es Probleme mit den Kernel-Modulen gibt. Die effektivste Lösung ist, die drei betroffenen Kernel-Module ddbridge, cxd2099 und dvb_core beim SUSPEND zu entladen und beim RESUME wieder zu laden. Die genaue Anleitung dazu findet man im Artikel Archiv/pm-utils (Abschnitt „Module-vor-SUSPEND-entladen-nach-RESUME-wieder-laden“).
Die Datei /etc/pm/config.d/00sleep_module sieht dann für die Cine S2 folgendermaßen aus:
# USB-Kernelmodule und forcedeth (Netzwerkkarte) machen Aerger bei SUSPEND & RESUME mit pm-utils # daher sollen sie automatisch ent- und geladen werden SUSPEND_MODULES="$SUSPEND_MODULES ddbridge cxd2099 dvb_core"
Karte mithilfe von systemd aufwecken¶
Seit Ubuntu 15.10 funktioniert die oben beschriebene Methode nicht mehr, da systemd nun für den Wechsel in den Ruhezustand oder Bereitschaftsmodus zuständig ist. Um nun die Module zu entladen, erstellt man die Datei /etc/systemd/system/ddbridge-sleep.service:
[Unit] Description=Restart ddbridge Before=sleep.target StopWhenUnneeded=yes [Service] Type=oneshot RemainAfterExit=yes ExecStart=/sbin/modprobe -r ddbridge cxd2099 dvb_core ExecStop=/sbin/modprobe ddbridge cxd2099 dvb_core [Install] WantedBy=sleep.target
Nun muss diese Datei noch von systemd mit folgendem Befehl eingelesen werden:
sudo systemctl enable ddbridge-sleep.service
Karte bei Verwendung von tvheadend aufwecken¶
Falls man tvheadend mit dieser Karte betreibt, dann blockiert tvheadend das Abschalten der Module während des Ruhezustands, wodurch die Karte nach dem Aufwachen nicht mehr angesprochen werden kann. Um dieses Fehlverhalten zu unterbinden, muss tvheadend beendet werden, bevor die Module entladen werden. Dafür kann man die Datei /etc/systemd/system/ddbridge-sleep.service folgendermaßen erweitern:
[Unit] Description=Restart tvheadend and ddbridge Before=sleep.target StopWhenUnneeded=yes [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/systemctl stop tvheadend.service ; /sbin/modprobe -r ddbridge cxd2099 dvb_core ExecStop=/sbin/modprobe ddbridge cxd2099 dvb_core ; /bin/systemctl start tvheadend.service [Install] WantedBy=sleep.target
Anschließend liest man die Service-Datei neu ein und das Aufwecken der Karte funktioniert wieder:
systemctl daemon-reload
Karte bei Verwendung von MythTV aufwecken¶
Auch MythTV blockiert wie tvheadend das Abschalten der Module. Daher muss das Backend vor dem Ruhezustand/Tiefschlaf beendet werden. Dies lässt sich bis Ubuntu 15.04 ebenfalls mit einem Script regeln. Unter /etc/pm/sleep.d/ muss eine Datei (z.B. 10_mythbackend) angelegt werden:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash case "$1" in hibernate|suspend) sudo service mythbackend stop;; thaw|resume) sleep 5 sudo service mythbackend start;; *) echo "no parameter given" ;; esac |
Dieses Skript muss als ausführbar markiert werden. Der Neustart des Backends muss verzögert werden, bis die Netzwerkverbindung wieder aufgebaut ist (sleep 5
). Bei einer WLAN-Verbindung können mehr als 5 Sekunden notwendig sein. Ansonsten ist das Backend nach dem Aufwachen nur noch auf localhost
verfügbar (= der Rechner, auf dem es installiert ist).
Links¶
Diskussion im VDR-Portal 🇩🇪 zu aktuellen Digital Devices Treiber
Installationsanleitung 🇩🇪 des Herstellers
DVB-Karten Übersichtsartikel