Technisat SkyStar HD2 u.Ä. endlich fehlerfrei unter Linux?

Ich bin seit knapp einem Jahr Besitzer einer Technisat SkyStar HD2 und war eigentlich mehr oder weniger zufrieden. Natürlich betreibe ich die TV Karte unter Linux, was aber leider nie 100 %ig funktioniert hatte. MythTV wollte einfach nicht auf einige Sender umschalten (Kein Lock) und XBMC mit VDR spukte beim Umschalten oft die Meldung “Kanal nicht verfügbar” aus.

Der Grund für diese Tuningprobleme ist der STB0899 Demodulator bzw. dessen Treiber unter Linux. Dieses Problem tritt auch bei anderen Karten auf, die diesen Demodulator benutzen, so z.B. die TechnoTrend S2-3200, Twinhan VP1041 oder die TerraTec Cinergy S2 PCI HD CI.

Kürzlich bin ich auf diesen Beitrag im VDR Portal gestoßen. Endlich hat sich jemand erbarmt und den Algorithmus für das Kanaltuning verbessert, die Resonanz in dem Forum ist sehr positiv und meistens sind große Verbesserungen festzustellen. Auch ich kann mit der gepatchten Version von v4l-dvb endlich schneller umschalten und habe bisher nie die Fehlermeldung “Kanal nicht verfügbar” gesehen.

Installation:

Der einfachste Weg dürfte die Benutzung einer Paketquelle sein, damit erspart man sich das selbst kompilieren und wird automatisch mit Updates versorgt. Wenn man bereits einen alten Treiber installiert hat, so sollte man diesen entfernen.
(Achtung: Wenn bereits diese Paketquelle benutzt wird, sollte sich der Treiber mit einem normalen Update selbst aktualisieren. Hat man ihn selbst kompiliert (mit hg usw.), dann ist ein “sudo make rminstall” notwendig.)

1
2
3
4
sudo add-apt-repository ppa:yavdr/stable-vdr
sudo apt-get update
sudo apt-get install v4l-dvb-dkms
sudo reboot

Nun sollte auch schon alles laufen. Um zu überprüfen, ob der Treiber richtig geladen wurde, überprüft man dies eben:

1
lsmod | grep mantis

Ich hoffe, dass der Patch auch bald in das Mantis Modul zukünftiger Kernel wandern wird, sowie in andere Entwicklungszweige (v4l, s2-liplianin usw). Mein größter Respekt gilt denjenigen Leuten (und vor allem Lou vom VDR Portal), die sich in ihrer Freizeit abmühen, um Leuten wie mir das Leben etwas angenehmer zu machen.

Nachdem mein “Fernseher” nun endlich umschalten kann, ohne dutzende Versuche oder Minuten zu benötigen, kann ich Themen wie Deinterlacing und Permanent Timeshift bei XBMC angehen.

mfg
Finn

TechniSat Skystar HD2 unter Ubuntu installieren

UPDATE: Diese Anleitung ist schon etwas älter und beschreibt die manuelle Installation. Eine aktuellere und einfachere Installation per Paketquelle habe ich hier geschrieben.

In meinem noch nicht ganz fertigen Heimserver steckt seit kurzem eine TechniSat SkyStar HD2 DVB-S2 PCI Karte. Leider laufen (noch) nicht alle TV-Karten out-of-the-box, die meinige jedenfalls nicht. Es hat zwar ein paar Tage und einige Google Suchanfragen gebraucht, bis die Karte lief, aber letztendlich war es doch nicht allzu schwierig.

Zuerst schaut man nach, ob die PCI Karte korrekt erkannt wurde:

1
2
lspci | grep -i dtv
03:06.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01)

Die SkyStar Karte besitzt den gleichen Chip wie die Twinhan VP1041 oder Azureweve AD-SP 400, deshalb nicht über die Ausgabe von lspci wundern. Wenn diese oder eine ähnliche Ausgabe erscheint, wurde die Karte erkannt.

Als nächstes wird der Treiber heruntergeladen:

1
2
3
4
5
sudo apt-get update
sudo apt-get install mercurial build-essential gcc make libncurses5-dev linux-headers-`uname -r`
hg clone http://mercurial.intuxication.org/hg/s2-liplianin/
cd s2-liplianin
sudo make menuconfig

Wählt dort unter “Multimedia Support -> DVB/ATSC Adapters” den Punkt “Firedtv/Floppydtv” ab, ansonsten kommt es eventuell zu einem Fehler beim make Vorgang.

Jetzt sollte sich der Treiber problemlos installieren lassen:

1
2
3
make
sudo make install
sudo reboot

Nach dem Neustart sollte die Karte dann laufen:

1
2
3
4
5
dmesg | grep -i dvb
[    8.509639] found a VP-1041 PCI DSS/DVB-S/DVB-S2 device on (03:06.0),
[    8.512424] DVB: registering new adapter (Mantis dvb adapter)
[    9.089752] mantis_frontend_init (0): found STB0899 DVB-S/DVB-S2 frontend @0x68
[    9.090205] DVB: registering adapter 0 frontend 0 (STB0899 Multistandard)...

Wenn diese Ausgabe erscheint, ist die Karte fertig eingerichtet und Fernsehempfang mit beispielsweise MythTV sollte möglich sein.

mfg
Finn

Update: Die Installation von ntop hätte ich sein lassen sollen. Das Netzwerk Monitoring Programm bekam meiner Ubuntu Installation nicht sehr gut. Ich weiß nicht, ob es sich nicht mit dem Kernel oder mit den Nvidia Treibern vertragen hat, jedenfalls konnte ich Ubuntu nicht mehr booten. Weder mit einem älteren Kernel, weder im Low Graphics Mode und auch die Konsole funktionierte nicht.

Irgendwie hätte man das Problem sicherlich beheben können, aber eine Neuinstallation dauert auch nicht lange und die paar Treiber sind ja schnell installiert. Leider hat nach der Neuinstallation fast nichts funktioniert. Ich habe auch verschiedene Treiber probiert:

1
hg clone http://jusst.de/hg/v4l-dvb

oder den hier:

1
hg clone http://linuxtv.org/hg/v4l-dvb/

Die v4l-dvb Treiber wurden zwar korrekt geladen und liefen, aber mit w_scan konnte ich nicht alle Programme finden, es waren etwa 800 Stück, darunter 99% Schrottsender. Beispielsweise konnte ich mit jedem Treiber den RTL Transponder finden, allerdings z.B. Pro Sieben nur mit dem s2-liplianin Treiber.

Dann habe ich etwa 2 Wochen alte s2-liplianin Treiber installiert, da die aktuellen Treiber nicht geladen werden und eine Fehlermeldung bezüglich mantis raushauen.

1
hg clone -r d37b8ae36051 http://mercurial.intuxication.org/hg/s2-liplianin

Der s2-liplianin Treiber funktionierte aus folgendem Grund nicht:

1
2
mantis_core: disagrees about version of symbol ir_input_init
mantis_core: Unknown symbol ir_input_init

Aber es hat sich herausgestellt, dass das Problem inzwischen gefixt wurde.

Jetzt finde ich mit w_scan immerhin wieder alle Programme, die ich haben möchte, insgesamt etwas über 1000 Stück, davon natürlich wieder überwiegend nutzlose Sender. Immerhin läuft die SkyStar HD2 jetzt wieder normal. Ich werde die Entwicklung von s2-liplianin beobachten und dann irgendwann mal den Treiber updaten, wenn das Problem gefixt ist

Update 2: Nachdem ich dachte mit dem aktuellen s2-liplianin Treiber (rev 98c44b3dd343) wieder alle Sender empfangen zu können, gibt es nun das nächste Problem:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[   14.168953] found a VP-1041 PCI DSS/DVB-S/DVB-S2 device on (03:06.0),
[   14.168955]     Mantis Rev 1 [1ae4:0003], irq: 21, latency: 64
[   14.168956]     memory: 0xfbfff000, mmio: 0xffffc900111b6000
[   14.172920]     MAC Address=[00:08:c9:e0:df:3a]
[   14.172941] mantis_alloc_buffers (0): DMA=0x37840000 cpu=0xffff880037840000 size=65536
[   14.172945] mantis_alloc_buffers (0): RISC=0x37814000 cpu=0xffff880037814000 size=1000
[   14.172948] DVB: registering new adapter (Mantis dvb adapter)
[   25.790017] mantis_ack_wait (0): Slave RACK Fail !
[   37.410017] mantis_ack_wait (0): Slave RACK Fail !
[   47.960018] mantis_ack_wait (0): Slave RACK Fail !
[   47.960426] _stb0899_read_s2reg ERR(1), Device=[0xf3fc], Base address=[0x00000400], Offset=[0xf334], Status=-121
[   59.850016] mantis_ack_wait (0): Slave RACK Fail !
[   59.850427] _stb0899_read_s2reg ERR(1), Device=[0xf3fc], Base address=[0x00000400], Offset=[0xf33c], Status=-121
[   70.870017] mantis_ack_wait (0): Slave RACK Fail !
[   70.870426] _stb0899_read_s2reg ERR(1), Device=[0xfafc], Base address=[0x00000800], Offset=[0xfa2c], Status=-121
[   81.980022] mantis_ack_wait (0): Slave RACK Fail !
[   81.980433] _stb0899_read_s2reg ERR(1), Device=[0xfafc], Base address=[0x00000800], Offset=[0xfa34], Status=-121
[   81.980493] stb0899_attach: Attaching STB0899
[   81.980495] mantis_frontend_init (0): found STB0899 DVB-S/DVB-S2 frontend @0x68
[   81.980549] stb6100_attach: Attaching STB6100
[   81.981137] LNBx2x attached on addr=8
[   81.981140] DVB: registering adapter 0 frontend 0 (STB0899 Multistandard)...
[   81.981199] mantis_ca_init (0): Registering EN50221 device
[   81.981299] mantis_ca_init (0): Registered EN50221 device
[   81.981360] mantis_hif_init (0): Adapter(0) Initializing Mantis Host Interface
[   81.981488] input: Mantis VP-1041 IR Receiver as /devices/virtual/input/input8
[   82.090022] Mantis VP-1041 IR Receiver: unknown key for scancode 0x0000
[   82.090025] Mantis VP-1041 IR Receiver: unknown key: key=0x00 down=1
[   82.190021] Mantis VP-1041 IR Receiver: unknown key: key=0x00 down=0

Wenn ich einen DVB-S2 Sender aufrufe, ist kein Empfang mehr möglich und das Mantis Modul scheint nicht mehr zu funktionieren. Das hier spukt dmesg aus:

1
2
mantis_ack_wait (0): Slave RACK Fail !
_stb0899_read_s2reg ERR(1), Device=[0xf3fc], Base address=[0x00000400], Offset=[0xf334], Status=-121

Auf DVB-S2 Sender kann ich auch vorerst verzichten. Vermutlich wird das auch wieder in Kürze gefixt werden…
Wenn bei mir dieses Problem auftritt, hilft es das Mantis Modul neu zu laden:

1
2
sudo modprobe -r mantis
sudo modprobe mantis