DNT IPdio mini Internetradio | Sharpfin
Das DNT Internetradio meines Bruders funktionierte nach Abschaltung der Server, über welches die Radiosender usw. veröffentlicht wurden, nicht mehr. Lösung seitens Hersteller? Kauf dir ein neues! Äh... ja gut... danke für nichts.
Nach Zerlegen des Radios, um herauszufinden, ob es vielleicht möglich wäre, eigene Firmware zu installieren oder die bestehende bspw. via UART zu modifizieren und etwas Recherche stellte sich heraus, dass es für dieses Radio eine "Homebrew Firmware" gibt, genannt "Sharpfin".
Im Wiki von Sharpfin konnte die benötigte Firmware gefunden werden, nach vorigem Backup wurde schließlich Sharpfin installiert. Nach ein paar Modifikationen und anlegen einer eigenen Senderliste durch ätzendes Stream URL aus Streamseite herauspicken funktionierte letzlich das Radio wieder, wenn auch nicht mehr mit dem gewohnten Funktionsumfang / Bedienung.
Was zeigt uns dieser Vorfall mal wieder? Gesetze für Recht auf Reparatur sind dringend notwendig!
But wait, there is more!
Da anscheinend die Reciva Gatewayabfrage hardcoded in einer Binary ist, kam es beim Start immer zu "DNS Server ungültig" oder nach Blockieren von DNS Abfragen auf Reciva Domains zu "Port 80 Verbindungsfehler" Fehlermeldungen. Zwar konnte der Stream dann durch Kurzwahl gestartet werden, allerdings verhinderte das die Nutzung als Wecker, wofür das Radio primär genutzt wurde.
Hierfür fand ein User einen (in meinen Augen ziemlich hässlichen aber funktionierenden) Workaround via Shellscript. Dies prüft den Zustand des Radios anhand von laufenden Prozessen und CPU Last, auf Basis dessen "bedient" es das Radio dann via Shell und startet den Stream aus der Kurzwahl 1.
Auf Tipp eines anderen Users im Thread habe ich das Script noch so angepasst, dass die temporären Daten, welche für das Script notwendig sind, nicht auf den Flash sondern in den RAM gespeichert werden.
Dazu muss wie folgt vorgegangen werden:
LetsPlayP1.install
inLetsPlayP1.install.bz2
umbenennen und entpacken- Die entpackte
LetsPlayP1.install
entpacken - Im Script
start_listening_pos1.sh
die Zeilen anpassen, wo in Dateien geschrieben wird bzw. diese gelesen werden- Zeile 23 von
> top_report.txt
zu neu> /tmp/top_report.txt
- Zeile 28 von
< top_report.txt
zu neu< /tmp/top_report.txt
- usw. (außer natürlich ab Zeile 58, wo nach
/dev/null
geschrieben wird)
- Zeile 23 von
LetsPlayP1.install
wieder als "tar" packenLetsPlayP1.install
als "bz2" packen (Dateiname muss so bleiben)- Die Datei auf dem Webserver der Wahl hochladen
- auf Webinterface vom Radio "Addon installiern" auswählen, Patch angeben und Patchvorgang starten
Weitere Infos / Quellen hierzu
- Übersicht unterstützer Radios
- Firmware upgrade not working for dnt IPdio mini · Issue #2 · jisotalo/reciva-radio-patching · GitHub
- Reciva -- Some findings [update: traffic decryption]
- Reciva sources
- Making a backup - Sharpfin
- GitHub - philsmd/sharpfin: Sharpfin: update, patch, modify the firmware of your internet radio
- Index of /sharpfin
- [Workaround] Make your Presets modifiable (do it quickly before Reciva closes)
- Releases - Sharpfin
- Config.txt File - Sharpfin
- Config.txt File - Sharpfin
- IPdio Webradio upcycling | Roland Alton
- Quickstart - Sharpfin
- Update zum Reciva-Radioportal - Thomas bloggedThomas blogged
- germanradio/playlist at master · abpolym/germanradio · GitHub
- Sharpfin Enhance Pack - Sharpfin
- GitHub - jisotalo/reciva-radio-patching: Notes how to patch the Reciva radios (Tangent Quattro etc.) to work without Reciva
- GitHub - jisotalo/reciva-radio-stations-sqlite: SQLite database of Reciva radio stations
- Sharpfin media server for Reciva radios
- Gateway not responding / invalid DNS
To be continued...
Leider funktionierte trotz des Scripts der Alarm nicht zuverlässig. Damit ist das Radio zum Hardwarebasteln freigegeben - ESP32 und I2S Modul sind bereits bestellt... ;)
- Dom