TreiberInstallation
Contents |
Einleitung
Die Sundtek MediaTV Pro/Gold USB unterstützt Linux DVB-C, DVB-T, analog TV, FM Radio, Composite und Svideo. Die Installation des Treibers ist kinderleicht und benötigt lediglich wenige Sekunden.
http://www.sundtek.com/docs/sundtek_smart_facts_de.pdf
Die Installation findet überwiegend auf der Konsole statt, wir arbeiten daran eine graphische Installation beizulegen. Der Treiber wird inhouse von Sundtek Ltd. entwickelt. Die Treiber werden als normale Applikation (im Userspace) gestartet, haben somit den Vorteil das sie bei Problemen das System nicht beeinflussen können und über verschiedene Kernelversionen hinweg funktionieren. Auch Systemupdates bereiten den einmalig installierten Treibern keine Probleme, ausserdem entfällt dadurch schwieriges kompilieren auf allen Systemen.
Die letzten Treiber finden Sie im Treiber Unterforum
Falls Sie noch kein Geraet besitzen koennen Sie analog TV ebenfalls mit unserem virtuellen Demo Treiber testen. Nach Installation des Treibers einfach "/opt/bin/mediaclient --tvdummy" ausfuehren. Screenshot
Minimale Systemanforderung Linux 2.6.15/libc2.4+ (was idR alle Distributionen der letzten 4 Jahre erfuellen) 32 oder 64 Bit, 1.5 Ghz
Unterstuetzte Systeme/Architekturen:
- Intel/AMD x86 (32/64 bit)
- ARM (EABI4/OABI)
- IBM PowerPC (ppc64-be/ppc32-be/z.B. Sony Playstation 3 - erste Version)
- MIPS
- MIPSel (z.B Dreambox 800)
- Weitere Builds sind auf Anfrage verfuegbar.
Diese Installationsbeschreibung gilt fuer folgende Betriebssysteme:
- Linux
- FreeBSD 8.0 (wird demnaechst freigegeben)
- Apple (Sundtek MediaTV Gold, mediaclient Befehle funktionieren auch hierfuer, die Software kommt jedoch demnaechst mit einem alternativen Mac basierten Installer sowie eigener TV Applikation)
- Oracle Solaris (getestet 11 Express).
Installation
Öffnen Sie eine Konsole und geben Sie die folgende Zeile ein:
$ wget http://www.sundtek.de/media/sundtek_netinst.sh $ chmod 755 sundtek_netinst.sh $ sudo ./sundtek_netinst.sh Welcome to the Sundtek linux driver setup Legal notice: This software comes without any warranty, use it at your own risk Do you want to continue [Y/N]: Nutzungsbedingungen: Sundtek übernimmt keinerlei Haftung für Schäden welche eventuell durch das System oder die angebotenen Dateien entstehen können. Wollen Sie fortfahren [J/N]: y stopping old driver instance... unpacking... checking system... testing libc OK 2.15.0 64Bit System detected installing (local mode) ... installing remote control support finalizing configuration... (can take a few seconds) installing libmediaclient interception library Starting driver... done.
Fehlerquellen
Linux 2.6.27 bis alle Versionen kleiner 2.6.29 haben einen Fehler im USB Stack welcher den Systemspeicher allmählich anwachsen lässt. Weitere Informationen über dieses Problem kann man unter Linux USB Mailinglist finden.
Das USB Interface wurde ebenfalls von Linux 2.6.32.9 bis 2.6.33.1 durch einen urspruenglichen Patch von SUSE beschaedigt, eine Loesung fuer dieses Problem findet man unter: http://lkml.org/lkml/2010/3/6/100 Ubuntu 10.04 verwendet ebenfalls Linux 2.6.32.x ist jedoch nicht von diesem Problem betroffen da wir fruehzeitig Bugreports eingeschickt haben.
Sollte es Probleme mit der Graphikausgabe mit NVidia oder ATI/AMD geben (z.B mit tvtime) installieren Sie bitte die die Treiber von der jeweiligen Herstellerseite (Links finden Sie am Ende dieser Seite)
Um das angeschlossene Gerät nach der Installation zu identifizieren geben Sie folgende Zeile ein:
$ /opt/bin/mediaclient -e
**** List of Media Hardware Devices ****
device 0: [ Sundtek MediaTV Pro] DVB-C, DVB-T, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS
[DVB-C]:
FRONTEND: /dev/dvb/adapter0/frontend0
DVR: /dev/dvb/adapter0/dvr0
DMX: /dev/dvb/adapter0/demux0
[DVB-T]:
FRONTEND: /dev/dvb/adapter0/frontend0
DVR: /dev/dvb/adapter0/dvr0
DMX: /dev/dvb/adapter0/demux0
[ANALOG-TV]:
VIDEO0: /dev/video1
VBI0: /dev/vbi0
[FM-RADIO]:
RADIO0: /dev/radio0
RDS: /dev/rds0
[REMOTECONTROL]:
INPUT0: /dev/mediainput0
[OSS]:
OSS0: /dev/dsp0
Achtung: Bitte beachten Sie das in dieser Ausgabe analog TV mit [i]/dev/video[b]1[/b][/i] erkannt wurde, diese Zahl kann je nachdem ob bereits eine Webcam im System vorhanden ist variieren und muss als Argument für die TV Applikationen beachtet werden
Deinterlacing Der Treiber unterstützt direktes deinterlacing
Original (aus Lauftext):
Sundtek Enhanced Quality:
Deinterlacer aktivieren: $ /opt/bin/mediaclient -d /dev/video1 --vfilter=on Deinterlacer deaktivieren: $ /opt/bin/mediaclient -d /dev/video1 --vfilter=off
Analog TV/Composite/S-Video
Um analog TV mit tvtime zu starten:
$ tvtime -d /dev/video1
Standardmäßig versucht der Treiber Audio intern abzuspielen, da tvtime unter anderem keine direkte Unterstützung für digitales Audio beinhaltet.
Um analog TV mit mplayer zu verwenden:
Mplayer starten: $ mplayer tv:// -tv driver=v4l2:device=/dev/video1 MPlayer SVN-r29305-4.3.2 (C) 2000-2009 MPlayer Team Playing tv://. TV file format detected. Selected driver: v4l2 name: Video 4 Linux 2 input author: Martin Olschewski <olschewski@zpr.uni-koeln.de> comment: first try, more to come ;-) Selected device: Sundtek MediaTV Tuner cap: STEREO Tuner rxs: Capabilites: video capture VBI capture device tuner audio read/write streaming supported norms: 0 = PAL-BG; 1 = PAL-DK; 2 = PAL-I; 3 = PAL-M; 4 = NTSC-M; inputs: 0 = Television; 1 = Composite; 2 = S-Video; Current input: 0 Current format: YUYV
Im Gegensatz zu Kerneltreibern kümmert sich der Treiber hier automatisch um die richtige Audioausgabe.
Um Analog TV mit VLC zu verwenden, einfach VLC starten und als Capturegerät das jeweilige TV Gerät angeben z.B.: /dev/video1
Oder VLC von der Kommandozeile:
vlc v4l2://:dev=/dev/video1:width=720:height=576:tuner-frequency=510750:adev=/dev/null:standard=255
FM Radio
Im folgenden werden 3 Beispiele beschrieben wie FM Radio angesteuert werden kann: Kommandozeile:
/opt/bin/mediaclient -f 90100000 -m RADIO -d /dev/radio0 -t 0 /opt/bin/mediaclient -m RADIO -d /dev/radio0 --mute off Um Audio im Hintergrund wieder auszuschalten: /opt/bin/mediaclient -m RADIO -d /dev/radio0 --mute on Um die Tonausgabe nur ueber /dev/dsp* ausgeben zu lassen: /opt/bin/mediaclient -c external -m RADIO -d /dev/radio0 um radio aufzunehmen (hierbei vorher Radio unmuten): cat /dev/radio0 | lame - fmradio.mp3
Konsolenapplikation:
$ radio -c /dev/radio0
GUI Applikation (gnomeradio):
DVB-T
Kaffeine (DVB-T)
(Driver release from 3rd. August 09 on) Das Gerät identifiziert sich als Sundtek DVB-T
$ /opt/bin/mediaclient --setdtvmode=DVBT $ kaffeine
Mplayer (DVB-T)
Um das Gerät in den DVB-T Modus zu versetzen: $ /opt/bin/mediaclient -D DVBT $ scan dvb-apps/util/scan/dvb-t/de-Berlin scanning dvb-apps/util/scan/dvb-t/de-Berlin using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' Frontend can not do INVERSION_AUTO, trying INVERSION_OFF instead initial transponder 506000000 0 2 9 1 1 2 0 initial transponder 522000000 0 2 9 1 1 2 0 initial transponder 570000000 0 2 9 1 1 3 0 initial transponder 658000000 0 2 9 1 1 2 0 initial transponder 754000000 0 2 9 1 1 2 0 initial transponder 778000000 0 2 9 1 1 2 0 >>> tune to: 506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE 0x0000 0x4015: pmt_pid 0x0150 RTL World -- RTL Television (running) 0x0000 0x4016: pmt_pid 0x0160 RTL World -- RTL2 (running) 0x0000 0x401b: pmt_pid 0x01b0 RTL World -- Super RTL (running) 0x0000 0x4022: pmt_pid 0x0220 RTL World -- VOX (running) Network Name 'MEDIA BROADCAST' etc.
$ /opt/bin/mediaclient -m DVBT -f 506000000 -b 8 Using device: /dev/dvb/adapter0/frontend0 Checking for lock: . [LOCKED] $ mplayer /dev/dvb/adapter0/dvr0 oder $ cat /dev/dvb/adapter0/dvr0 | mplayer -cache 10240 -
VDR
$ vdr -P "xineliboutput --local=sxfe --video=xshm --local=none --primary --remote=127.0.0.1:37890" -v /var/lib/video.00/ -l 3
DVB-C
Kaffeine
Troubleshooting Kaffeine: http://support.sundtek.com/index.php/topic,546.msg4162.html#msg4162
Kaffeine unterstützt ebenfalls DVB-C Das Gerät muss zuvor auf DVB-C umgestellt werden:
$ /opt/bin/mediaclient --setdtvmode=DVBC $ kaffeine
mplayer
Um das Gerät in den DVB-C Modus zu versetzen: $ /opt/bin/mediaclient -D DVBC $ scan dvb-apps/util/scan/dvb-c/de-Berlin scanning dvb-apps/util/scan/dvb-c/de-Berlin using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' initial transponder 113000000 6900000 0 3 initial transponder 346000000 6900000 0 5 initial transponder 522000000 6900000 0 5 initial transponder 402000000 6900000 0 5 initial transponder 378000000 6900000 0 3 initial transponder 378000000 6900000 0 3 initial transponder 394000000 6900000 0 3 initial transponder 466000000 6900000 0 3 >>> tune to: 113000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_64 0x0000 0x6dca: pmt_pid 0x0064 ARD -- Das Erste (running) 0x0000 0x6dcb: pmt_pid 0x00c8 ARD -- Bayerisches FS Süd (running) 0x0000 0x6dcc: pmt_pid 0x012c ARD -- hr-fernsehen (running) 0x0000 0x6dce: pmt_pid 0x01f4 ARD -- Bayerisches FS Nord (running) 0x0000 0x6dcf: pmt_pid 0x0258 ARD -- WDR Köln (running) 0x0000 0x6dd0: pmt_pid 0x02bc ARD -- BR-alpha* (running) 0x0000 0x6dd1: pmt_pid 0x0320 ARD -- SWR Fernsehen BW (running)
$ /opt/bin/mediaclient -m DVBC -f 113000000 -S 6900000 -M Q64 Using device: /dev/dvb/adapter0/frontend0 Checking for lock: . [LOCKED]
$ mplayer /dev/dvb/adapter0/dvr0 oder $ cat /dev/dvb/adapter0/dvr0 | mplayer -cache 10240 -
Deinstallation
Dieser Schritt sollte vor jedem Update stattfinden, nach einem Neustart kann die neue Version dann installiert werden. Um den Treiber wieder vom System zu entfernen:
./sundtek_installer.sh -u EETI em28xx linux driver setup stopping em28xx driver... removing driver ....... driver successfully removed from system
Troubleshooting
Es kann vorkommen das VDR das Gerät direkt beim Systemstart im Hintergrund belegt. Um zu überprüfen welcher Prozess bzw. welche Applikation gerade auf den Treiber zugreift kann folgender Befehl ausgeführt werden:
$ /opt/bin/mediaclient --lc **** List of Media Clients **** /dev/dvb/adapter0/frontend0: No client connected /dev/dvb/adapter0/dvr0: No client connected /dev/dvb/adapter0/demux0: No client connected /dev/video1: 329 ... tvtime /dev/vbi0: No client connected /dev/radio0: No client connected /dev/mediainput0: No client connected /dev/dsp0: 28289 ... mediasrv
Da tvtime Audio nicht direkt unterstützt wird dies vom Multimediaframework (mediasrv) direkt übernommen und auch dementsprechend angezeigt.
In diesem Fall kann tvtime mit folgendem Befehl vom Treiber getrennt werden:
$ /opt/bin/mediaclient --dc 329
Kaffeine:
Das Demux Interface zeigt zudem noch die aktuell gefilterte DVB PID an:
$ ./mediaclient --lc **** List of Media Clients **** /dev/dvb/adapter0/frontend0: 859 ... kaffeine /dev/dvb/adapter0/dvr0: 859 ... kaffeine /dev/dvb/adapter0/demux0: 859 ... kaffeine (0012) 859 ... kaffeine (00c8) 859 ... kaffeine (00d2) 859 ... kaffeine (00dc)
Bildschirmschoner springt permanent an waehrend man kaffeine verwendet
Der Screensaver kann temporaer ueber die Konsole abgeschalten werden:
gnome-screensaver-command --inhibit
sobald dieser Befehl beendet wird, wird der Screensaver wieder aktiviert
Wenn bei Analog TV kein Audio wiedergegeben wird überprüfen Sie eventuell ob der Treiber auf Stumm geschalten ist. Einige video4linux1 Applikationen können dies nicht richtig konfigurieren.
/opt/bin/mediaclient -m ATV --mute=off -d /dev/video1
Fernbedienung Die Fernbedienung wird als Keyboard Gerät registriert.
Stromsparfunktion Die Stromsparfunktion setzt nach 15 Sekunden Inaktivitaet ein, das Geraet kuehlt bei diesem Zustand komplett ab (dies erhoeht die Lebensdauer erheblich)
DVB-S/S2
Kaffeine: http://support.sundtek.com/index.php/topic,546.msg4162.html#msg4162
Pulseaudio
Pulseaudio enthält einige nützliche Konfigurationstools z.B.: pavucontrol. Mit pavucontrol kann eine individuelle Lautstärke für AnalogTV sowie FM Radio eingestellt werden. Da der System Pulseaudio Service an sich zur Zeit leider nicht sehr stabil ist kann es vorkommen das der Treiber automatisch während der Laufzeit direkt auf ALSA zurückschaltet.
pavucontrol:
pavumeter:
Sollte das Bild und der Ton im VLC Player nicht synchron sein (in Verbindung mit Pulseaudio) hilft eventuell folgendes:
http://www.st4ck.com/en/post/ubuntu-11-04-vlc-out-of-sync/#Runtime
NVidia Graphiktreiber:
http://www.nvidia.com/Download/index.aspx?lang=de
ATI Graphiktreiber:
http://support.amd.com/de/gpudownload/Pages/index.aspx
Restricted Formats/Codecs Suse:
http://opensuse-community.org/Restricted_Formats/11.0
http://opensuse-community.org/Restricted_Formats/11.1
Pegelmessung:
Standardmaessig gibt das Signalreporting nur 0% oder 100% zurueck, dies kann mit folgendem Befehl auf ein genaueres Reporting umgeschalten werden:
/opt/bin/mediaclient --signalreporting=1
(Der Grund hierfuer, das genauere Reporting benoetigt etwas mehr Zeit zum Auslesen der Informationen und ist deshalb standardmaessig nicht eingeschalten).
Syntax: /opt/bin/mediaclient -d /dev/video[n] --readsignal=[i] Wobei n das Videodevice ist (wie mit /opt/bin/mediaclient -e ausgegeben) und i die Anzahl wie oft die Signalinformation ausgelesen werden soll, wenn i kleiner oder gleich 0 ist dann wird bis zum manuellen Abbruch ausgelesen. Beispielausgabe: SIGNAL: [.............................................................................................. ] 62225 (94%) SIGNAL: [......................................................................................... ] 58950 (89%) SIGNAL: [.............................................................................................. ] 62225 (94%) SIGNAL: [.............................................................................................. ] 62225 (94%) SIGNAL: [.............................................................................................. ] 62225 (94%) SIGNAL: [............................................................................................ ] 60915 (92%)
Treiber entpacken (z.b fuer manuelle Installationen)
$ ./sundtek_installer.sh -e
Der Treiber filtert standardmaessig NULL Pakete (0x1fff), um dies zu deaktivieren kann folgender Befehl ausgefuehrt werden (mplayer hat mit NULL Paketen Probleme):
$ /opt/bin/mediaclient -d /dev/dvb/adapter0/frontend0 --nullpackets=on
Automatisches starten einer Applikation bzw. eines Skriptes sobald ein Geraet angeschlossen oder entfernt wird:
Die Konfigurationsdate /etc/sundtek.conf kann 2 Parameter enthalten, device_attach sowie device_detach, diese Parameter koennen genutzt werden um ein Skript zu triggern welches z.B.: VDR oder andere Applikationen neu initialisiert.
Beispiel:
/etc/sundtek.conf device_attach=/usr/bin/usb_deviceattach.sh DEVID device_detach=/usr/bin/usb_devicedetach.sh DEVID
Transfer Modus fuer DVB-T/C von Isochronous auf Bulk aendern (einige Rechner unterstuetzen keinen Isochronous Transfer unter Linux), ebenso kann mit dieser Option ein Transfer Kernelbug (bei Linux 2.6.26/27/28, sowie 2.6.32.9 - 2.6.33.1) fuer DVB-T und DVB-C uebergangen werden.
Das Geraet befindet sich bei der Auslieferung standardmaessig im Isochronous Datenmodus
Um Isochronous zu konfigurieren: $ /opt/bin/mediaclient --dtvtransfermode=iso -d /dev/dvb/adapter0/frontend0 Setting transfermode to Isochronous Please reconnect your device in order to activate the transfer mode change Um Bulk zu konfigurieren: $ /opt/bin/mediaclient --dtvtransfermode=bulk -d /dev/dvb/adapter0/frontend0 Setting transfermode to Bulk Please reconnect your device in order to activate the transfer mode change
Nach dem Umschalten muss das Geraet neu angeschlossen werden.
Hardware PID Filter
Um die Hardware PID filter zu benutzen muessen sie manuell eingeschalten werden. Die USB TV Tuner verfuegen ueber 15 Filter. Die Filter koennen die benoetigte USB Bandbreite stark senken - insbesondere wird dies fuer Embedded PCs empfohlen.
Hardware PID Filter einschalten:
/opt/bin/mediaclient -P on
Hardware PID Filter ausschalten:
/opt/bin/mediaclient -P off
Aktuell registrierte PID Tabelle anzeigen:
$ /opt/bin/mediaclient -w Using device: /dev/dvb/adapter0/frontend0 ID | PID ---------- 0000 | 0x0001 - 1 0001 | 0x175c - 5980 0002 | 0x0899 - 2201 0003 | 0x089a - 2202 0004 | 0x089b - 2203 0005 | 0x0012 - 18 0006 | 0x1500 - 5376 0007 | 0x1501 - 5377 0008 | 0x1505 - 5381
Der Befehl welche die aktuellen Zugriffe auf den Treiber anzeigt, zeigt die PIDs ebenfalls an:
$ /opt/bin/mediaclient --lc **** List of Media Clients **** /dev/dvb/adapter0/frontend0: 897 ... mediasrv /dev/dvb/adapter0/dvr0: 897 ... mediasrv /dev/dvb/adapter0/demux0: 897 ... mediasrv (0899) 897 ... mediasrv (089a) 897 ... mediasrv (089b) 897 ... mediasrv (0012) 897 ... mediasrv (1500) 897 ... mediasrv (1501) 897 ... mediasrv (1505) 897 ... mediasrv (0001) 897 ... mediasrv (175c) /dev/video0: No client connected /dev/vbi0: No client connected /dev/radio0: No client connected /dev/rds0: No client connected /dev/mediainput0: No client connected /dev/dsp0: No client connected
