ubuntuusers.de

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:

/Wiki/Icons/pci.png 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 )

Paketliste zum Kopieren:

sudo apt-get install build-essential libproc-processtable-perl libncurses5-dev linux-headers-generic mercurial 

Oder mit apturl die Pakete 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 Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams yavdr zu entnehmen.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

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)

Paketliste zum Kopieren:

sudo apt-get install dddvb-dkms 

Oder mit apturl die Pakete 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).

Diese Revision wurde am 7. Februar 2020 17:20 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, TV, Multimedia, DVB