Selfsat IP36: Erfahrungen mit
Firmware-Reparatur und Netzwerk-Anbindung
Nachdem mir eine Selfsat IP36
Flachantenne "abgeraucht" war, durch mehrfache Strom-Resets in kurzer
Reihenfolge, möchte ich hier ein paar Erfahrungen
berichten.
Die Selfsat IP36
wurde im Jahr 2015 veröffentlicht und ich habe sie im Jahr 2016
eingebaut.
Sie hat neben 2 Legacy-Anschlüssen auch einen Netzwerk-Anschluss
für 8 TV-Streams.
Als SAT>IP-Clients kommen hauptsächlich Panasonic-Viera-TVs
mit MyHomeScreen zum Einsatz (TV>IP).
Ende 2024 startete die Antenne den IP-Server nicht mehr, wie schon im
Eingangssatz erwähnt.
Reparatur der
Start-Partition:
In der Antenne ist ein
Mini-Computer eingebaut, welcher mit einem BusyBox-Linux
läuft.
Die Start-Partition "tb100-env " ist im weitesten Sinne vergleichbar
mit dem "Windows-Boot-Manager".
D.h. sie ist sozusagen ein Vermittler zwischen Boot-Partition und
System-Partition.
Folgend die Partitionsaufteilung lt. Kernel-Meldungen:
Creating 6 MTD partitions on "spi0.0":
0x000000000000-0x000000010000 : "tb100-env" (Start-Partition)
0x000000010000-0x000000040000 : "u-boot0" (Rettungs-Partition)
0x000000040000-0x000000080000 : "u-boot1" (Leere Partition)
0x000000080000-0x000000c80000 : "uImage0" (Leere Partition)
0x000000c80000-0x000001880000 : "uImage1" (System-Partition)
0x000001880000-0x000002000000 : "userdata" (User-Partition)
In anderer Lese-Art ergibt das:
mtdparts=spi0.0:0x10000@0x0(tb100-env),0x30000@0x10000(u-boot0),0x40000@0x40000(u-boot1),0xc00000@0x80000(uImage0),0xc00000@0xc80000(uImage1),0x780000@0x1880000(userdata)
Das wirkt etwas kryptisch, aber wird später zur Orientierung
sehr wichtig sein.
Dank dieser
Info von Carsten Groß
wusste ich schon, dass es eine Wartungsschnittstelle gibt in Form
eines seriellen Anschlusses und mit 3,3V Level Power.
Eine kurze Recherche nach "U-Boot" und "Seriell 3,3V Level" brachte
mich dann schnell zu Infos über ein gebricktes Synology-NAS.
Zu dem Zeitpunkt dachte ich, dass die Firmware-Rettung relativ
einfach per TFTP-Kommandos gehen würde.
Leider besitzt die Flachantenne aber ein nur sehr abgespecktes
"U-Boot" und eine RAM-Begrenzung von 519 KB.
Ich kaufte mir also bei Amazon einen Adapter von USB auf Seriell in
der Annahme, dass es normale PINs wie bei einem Synology-NAS
sind.
Ich entschied mir für eine etwas bessere Version von "Waveshare"
mit einem FT232RNL-Chip, weil sie gleich 6 PINs hatte.
Hier
Erst später wusste ich, dass es auch ein 3-PIN-Adapter getan
hätte mit Ground (GND), Reiceive (RXD), Transceive (TXD).
Dank dieses
Berichtes von Andreas
Schiller konnte ich erst entscheidende Wissenslücken
schliessen.
Andreas war so nett und hat mir mitgeteilt, dass sein Foto des
JST-Adapters ein selbst gelöteter Eigenbau ist.
Bei AliExpress habe ich einen Adapter von JST 1,25 mm Raster-Abstand
auf Dupont-Male 2,54 mm mit 4-PINs gefunden. Hier
Das rote Kabel am JST-Adapter wird nicht benötigt, weil die
Antenne über PoE mit Strom versorgt wird.
Das schwarze Kabel am JST-Adapter geht auf das schwarze Kabel am
USB-Adapter für die Erde (Ground).
Das grüne Kabel am JST-Adapter geht auf das blaue Kabel am
USB-Adapter zum Empfangen.
Das gelbe Kabel am JST-Adapter geht auf das grüne Kabel am
USB-Adapter zum Senden
Zuerst hebe ich den Deckel auf der Rückseite ab und sehe so die
silberne Schutz-Box mit dem Mini-Computer.
Die Torx-Schrauben der silbernen Schutz-Box sind unter einer
weißen gipsartigen Farbschicht verborgen, welche man entfernen
kann mit einem Spatel.
Ich habe die Schutz-Box von der Flachantenne abmontiert, damit ich
die Farbreste nicht im Gehäuse der Flachantenne verteile.
Den Deckel kann man dann einfach abheben und sieht dort bereits
rechts einen weißen JST-Anschluss mit der Bezeichnung J14.
Hier der weiße JST-Anschluss mit 4 PINs und 1,25 mm
Raster-Abstand aus der Nähe.
Jetzt verbinde ich den JST-Stecker mit der Antenne und den
USB-Stecker mit meinem Windows-Rechner, aber stecke noch keinen Strom
an.
Da ich zwar ein Putty.exe Freund bin, aber Daten mit Y-MODEM
transferieren muss, installiere ich mir alternativ das Programm
Tera-Term.
Die Standard-Serial-Port-Konfiguration sollte bereits zur Antenne
passen.
Menü: Setup --> Terminal --> Serial port --> COM?: USB
Serial Port
Wir verbinden uns daher gleich direkt über den
Start-Assistenten. Wichtig ist es den Schiebe-Regler am USB-Adapter
auf "3V3" einzustellen.
Der USB-Adapter muss vor Programm-Start bereits stecken, damit er
ausgewählt werden kann. Er ist zu erkennen als "COM?: USB Serial
Port".
Wir bekommen dann ein schwarzes Fenster und müssen den Strom an
die Antenne anstecken.
Die Selfsat-Antenne kommuniziert jetzt mit uns in englisch und
startet von der U-Boot Partition.
tb100-setup: Warning: invalid
flash TAG
tb100-setup: update board flash configuration with default
settings
tb100-setup: flash update aborted, need manual recovery
(0xc01005d0)
Die Fehler-Meldungen kannte ich bereits von Andreas, aber ich hatte
ja kein Firmware-Update gemacht.
Offensichtlich war aber die Partition "tb100-env" kaputt, was sich
später auch bestätigte beim Auslesen der Flash-Daten mit
"sf read".
Vermutlich war es sehr ungünstig noch während des
Boot-Vorganges der Antenne den Strom gezogen zu haben... klar!
Nach mehrmaligen Durchlesens des Blog-Artikels von Andreas, entschied
ich erstmal nur die Partition "tb100-env" zu überschreiben.
Andreas war so nett und hat mir seine "tb100-env" aus einer Selfsat
IP22 zur Verfügung gestellt, welche ich unten verlinkt habe.
Jetzt legen wir direkt los (Die Speicherangaben errechnen sich aus
den kryptischen Angaben vom Anfang)
Die
Durchführung ist nicht ohne Risiko... weiter unten ein
Screenshot des kompletten
Befehlsablaufes.
sf probe
sf erase 0x0 0x10000
loady
--> Der Befehl "sf erase"
löscht den Speicherbereich, damit dieser später wieder
beschrieben werden kann.
--> Der Befehl "loady" schaltet den Empfangs-Modus über
Y-MODEM ein.
--> Hier wähle ich die Datei
"tb100-env.bin"
aus, welche danach hochgeladen wird in den temporären
Arbeitsspeicher der Antenne.
sf write 0xc0120000 0x0
0x10000
reset
--> Der Befehl "sf write"
schreibt die Daten, aus dem temporären RAM von Adresse
0xc0120000, in den Flash-Speicher.
--> Mit dem Befehl "reset" löse ich einen harten Neustart
aus.... und die Antenne startet in meinem Fall erfreulicherweise
durch.
So sieht es im Erfolgsfall aus:
Zum Testen das Netzwerkkabel anstecken und schauen ob sich die
Web-Oberfläche aufrufen lässt. --> http://IP-SELFSAT:8000
--> User/Pass = admin/admin
Downloads:
Upgrade und Downgrade der Firmware
ist problemlos über die WebGUI möglich innerhalb der
3er-Version.
Das mit der device_description.xml ist bei älteren Panasonic
Viera Geräten mit MyHomeScreen OS ein Thema.
Die ersten Versionen von Firmware 3 werden nicht mehr als
SAT>IP-Server erkannt vom Panasonic Viera TV, aber mit Firmware 2
ging das noch.
Ein Hinweis meinerseits an den Hersteller im Jahr 2017, führte
zur Korrektur in Version 3.1.17 mit freier Anpassung in der
WebGUI.
Man konnte als Workaround über die SSH-Konsole die
device_description.xml dauerhaft abändern, aber das geht seit
3.1.17 nicht mehr.
Die Möglichkeit eine personalisierte device_description.xml per
WebGUI hochzuladen wurde wieder entfernt in der 3.1.18 Firmware.
Mit der Firmware 3.1.18 funktioniert der Panasonic-TV über
SAT>IP (TV>IP), aber die XML-Datei sieht etwas unschön
aus.
Das Firmware-Upgrade von Version 2 auf Version 3 ist ein Meilenstein.
Das erkennt man auch deutlich an der aufgebohrten WebGUI.
Die Firmware ändert sich von "iwedia TB100 server (IWEDIA)" auf
"GSS4P SAT>IP server (IDOIT CO. LTD.)" lt.
device_description.xml.
Netzwerkverbindung
ohne Bohren?
Da die Antenne im Haushalt meiner
Eltern verbaut ist und Löcher bohren im Eigenheim nicht auf
Begeisterung stieß, wollte ich das möglichst
vermeiden.
Hier ein paar Erfahrungen zu alternativen Verbindungsmethoden.
Am Anfang war meine bevorzugte Methode PowerLine, aber das war nie
eine optimale Lösung.
An der Außensteckdose ist ein wetterfestes Gehäuse
montiert, welches zudem geschützt steht.
Es erfolgte dann ein Test durchs
Balkon-Fenster mit einem hochwertigen CAT8-Flachkabel, aber auch hier
gab es manchmal Aussetzer (Half-Duplex)
CAT8 hat eine größere bzw. dickere Schirmung in
Flachkabel-Bauweise gegenüber CAT6-Flachkabeln. Die Antenne hat
CAT5e-Spezifikation (1 Gbit).
Im Laufe der Zeit änderten sich die Rahmenbedingungen beim WLAN.
Inzwischen stand ein Fritz Repeater 3000AX in der Nähe des
Balkons.
Zudem war ein Fritz Repeater 1200 übrig, weil er durch einen
1200AX ersetzt wurde wg. Wi-Fi 6 Funktionalität (WLAN AX).
Diesen Repeater 1200 verband ich mit dem 3000AX über 2,4 GHz.
Man bedenke den Flaschenhals von 400 Mbit brutto des Repeater 1200
für das 2,4 GHz Modul.
In meinem Fall funktioniert die Verbindung ziemlich gut und stabil.
Mit 5 GHz gab es hingegen Probleme und ich habe das Modul gleich ganz
deaktiviert auf dem Repeater 1200.
Allerdings werden nur maximal 3 TV-Streams gleichzeitig
benötigt. Mit dem Nachfolge-Modell 1200AX könnte ich den
Wert auf 600 Mbit anheben, weil der 3000AX den auch kann.
Zumal Wi-Fi 6 auf jeden Fall zu bevorzugen ist, weil bessere
Koexistenz mit anderen WLANs und der Verlust auf den Netto-Wert ist
auch geringen als bei Wi-Fi 5 (WLAN AC).
Zieht lieber ein LAN-Kabel, wenn ihr könnt.
Netzwerkverbindung
in anderen Haushalt?
Nicht in jeder Mietwohnung kann man
eine SAT-Schüssel installieren. Aus dem Grund beschäftigte
ich mich mit der externen Empfangsmöglichkeit vom Standort der
SAT-Antenne.
Beide Netzwerke haben einen Internet-Anschluss mit 50 Mbit-Upload und
sind per WireGuard verbunden. Die WireGuard-Verbindung ist
ungeeignet, weil der TV-Stream vor Artefakten strotzt.
Leider kann das Betriebssystem der Antenne kein IPv6 und somit muss
in der FritzBox eine IPv4-Portweiterleitung eingerichtet werden auf
intern/extern TCP Port 554.
Der Internet-Anschluss muss natives IPv4 können, d.h. kein
CGNAT. Es muss auch extern der Port 554 sein, weil die Antenne sonst
nur die "PID 0" zurück gibt.
Der Upload der Internetleitung muss mindestens 25 Mbit können
oder besser 50 Mbit, damit man auf der sicheren Seite ist.
Am externen Standort des SAT>IP-Client benötigen wir einen
Vermittler, weil der Panasonic-TV nur SAT>IP-Server per
UPnP-Discovery im LAN akzeptiert.
Ich installiere also auf meinem Raspberry-Pi 4 mit 4 GB RAM das
Programm minisatip
und binde die externe Selfsat-Antenne ein. --> http://IP-MINISAT:8080
./minisatip -N -s test.dnshome.de -s
test.dnshome.de
--> Der Befehl startet einen SAT>IP-Server und nutzt als
Tuner-Quelle 2 Streams der externen Selfsat-Antenne per
DynDNS-Anbindung.
Die Vermittlungsstelle ist nur nötig, wenn man die
Server-Adresse nicht händisch eingeben kann im
SAT>IP-Client.
In der Praxis zeigte sich bei mir, dass die 50 Mbit-Upload für 2
HD-Streams gleichzeit nicht ganz reichten und es immer mal
ruckelte.
Zudem zeigte sich ein Sicherheitsproblem
beim Prüfen der Funkkanal-Auslastung auf dem Repeater 1200 und
im Protokoll der Selfsat-Antenne.
Der TV-Stream wurde von Dritten angezapft, weil Port 554 für
RTSP der Standard ist und die Astra-Frequenzen allgemein bekannt
sind.
Also deaktivierte ich die NAT-Portweiterleitung wieder und
installierte auf einem Raspberry-Pi 3b, im Heimnetz der Selfsat, das
Programm pivpn.
Ich konfigurierte damit einen OpenVPN-Server mit TCP-Protokoll, weil
das von RTSP benutzt wird. Dann auf der FritzBox eine
Portweiterleitung zum Raspberry-Pi 3b.
Großer Vorteil ist jetzt, dass man nicht mehr von
CGNAT-Restriktionen abhängig ist, weil der Raspberry-Pi auch
IPv6 kann, welches eine eindeutige Adresse hat.
Jetzt generierte ich mir ein VPN-Profil auf dem Raspberry-Pi 3b und
importierte es mir auf dem Raspberry-Pi 4, um dann eine
OpenVPN-Verbindung aufzubauen.
./minisatip -N -s SelfsatIP -s
SelfsatIP
Wichtig ist, dass man auf IP-MASQUERADE verzichtet. D.h. es muss die
VPN-Client-IP des Raspberry-Pi 4 anklopfen an der Selfsat, weil sonst
"Kein Sender gefunden" erscheint auf dem TV.
Bevor man sich den Aufwand mit OpenVPN macht, sollte man erstmal
die Performance per Internet-Portweiterleitung über die
Internet-IP testen, weil die Variante relativ einfach geht.
Variante 2: TVheadend
Der Wunsch der Nutzung des mobilen TV schauens auf dem Tablet oder
Smartphone wird zwangsläufig irgendwann kommen.
Für meinen Geschmack sind die mir bekannten SAT>IP-Apps aber
nicht wirklich gut umgesetzt. Entweder ist die Bedienung grausam oder
es ruckelt bei HD-Kanälen.
Dafür sind die Apps mit Kopplung an einen TVheadend-Server
sehr gut. Ich selbst nutze dafür dream
Player for TVheadend für
Android. Für den TV gibt es auch Varianten.
Ich installierte also auf dem Raspberry-Pi 3b, im Heimnetz der
Selfsat, das Programm TVheadend und verband die letzten 4 Tuner der
Selfsat damit (UPnP-Discovery).
Der große Vorteil ist, dass man hier eine User-Authentifzierung
hat, d.h. ich kann wieder eine Portweiterleitung auf der FritzBox
einrichten und bin unabhängig von VPN und seinem
Overhead.
Zudem scheint TVheadend den Stream etwas zu optimieren und in der
Smartphone-App kann man eine Netzwerk-Pufferung frei konfigurieren
als Cache. D.h. es läuft recht flüssig.
Der USB-2.0 Anschluss des Raspberry-Pi 3b ist ein Flaschenhals bei
HD-Aufnahmen. Aus dem Grund ist das Betriebssystem auf einer 256 GB
SD-Card von Samsung installiert (MB-MD256SA/EU).
Damit man die TV-Aufnahmen des TVheadend ohne extra Software auf dem
Fernseher anschauen kann, installierte ich noch MiniDLNA-Server
(ReadyMedia) auf dem Raspberry-Pi 3b.
Nehmt besser einen Raspberry-Pi 4 mit 4 GB RAM, weil der USB 3.0
hat und der Netzwerk-Anschluss nicht mehr über den
USB-Controller angebunden ist.