VIP1710 als Internetradio

Erstellt am 28.09.2010

Was ist die VIP1710?

Kürzlich ebenfalls bei Pollin aufgetaucht als "Gehäuse MOTOROLA VIP1710" mit "interesseantem Innenleben" für 5 Euro entstand schnell im Mikrocontroller-Forum ein ausgedehnter Thread zu diesem Gerät.
Ursprünglich als Streamingclient für Video on Demand ausgelegt, ist die Box mit einem 300 MHz Xileon mit MPEG-Decoder sowie 128 MB-Ram und Flash ausgestattet (genaueres zur Hardware entnehmt ihr bitte dem µC-Wiki). Als Perepherie stehen ein USB- und ein Netzwerkanschluss zur Verfügung. Sound wird Analog über zwei Cinch-Buchsen und Euro-AV (Scart) ausgegeben. Zusätzlich gibt es eine SPDIF-Dose. Das Videosignal kann man außerdem noch über eine S-Video und eine Composite-Dose abgreifen. Auf der Vorderseite befindet sich ein IR-Empfänger - an der Seite ein Chipkartenleser.

Inzwischen ist es möglich auf der Box eigene Scripte und Programme von einem USB-Stick aus zu starten. Und genau um eines dieser eigenen "Programme" geht es hier. Denn ich habe das Gerät zu einem Internetradio umfunktioniert.

Das Internetradio

Aktuelles: Ich habe das Internetradio beim "Mach flott den Schrott"-Wettbewerb der c't angemeldet. Die Bewertungsphase ist zuende und ich danke allen, die ein paar Punkte vergeben haben: Internetradio aus altem VOD-Client

In den folgenden Absätzen erfahrt Ihr was das System derzeit kann, wie Ihr es auf der Box installiert und was ich zukünftig noch plane zu verwirklichen. Zunächst jedoch wie so häufig ein kleines...

DISCLAIMER:

Die Programme die in diesem Paket zusammengefasst sind stehen unter unterschiedlichen Lizenzen. Sollten diese Lizenzen es erfordern, dass der Sourcecode freigegeben wird, werde ich diese auf Anfrage zur Verfügung stellen. Programme die unverändert sind, können von den entsprechenden Entwicklerseiten bezogen werden. Die hier angebotene "Distribution" ist rein privat und verfolgt keine kommerziellen Zwecke. Die hier erwähnten Produkt- oder Markennamen sind Eigentum der jeweiligen Markeninhaber.
Ich garantiere für nichts und schließe ausdrücklich jede Haftung aus. Diese Dateien wurden nach bestem Wissen und Gewissen erstellt und beabsichtigen keinerlei Schädigung.

About:

Die Dateien in dem am Ende des Artikels verlinkten Archiv ermöglichen es, die Motorola-Box, die vor einiger Zeit von Pollin vertrieben wurde (evtl. bekommt ihr noch Boxen von Mitgliedern aus dem µC-Forum), mit Hilfe des settings2.xml-Hack von Hans-Werner Hilse zu einem Internetradio umzufunktionieren. Die Eingabe erfolgt dabei über eine Fernsteuerung - im Archiv ist eine lircd.conf für die original KPN-Fernsteuerung, die ebenfalls von Pollin vertrieben wurde. Natürlich kann auch jede andere Lirc-kompatible Fernsteuerung einprogrammiert werden.

Features:

Derzeit beherrscht das System folgende Funktionen:

  • Musik von Internetradiostreams abspielen und stoppen
  • Lautstärke verändern
  • Umschalten zwischen verschiedenen Radiosendern
  • Aktuelle Uhrzeit und Datum ansagen
  • Mute-Knopf
  • Schlummermodus: die Box lässt die Musik für 15, 20, 25 oder 30 Minuten laufen, und regelt die letzten 3 Minuten die Lautstärke langsam herunter um die Musik schließlich zu stoppen - ich wünsche süße Träume
  • Sprachausgabe zur Steuerung der Box ohne Bildschirm
  • Direkte Auswahl der Sender über die Zifferntasten
  • Autostart-Funktion - Die Wiedergabe startet gleich nach dem Hochfahren
  • Wecker-Funktion - Für jeden Wochentag kann eine Weckzeit konfiguriert werden, zu der man durch die Box geweckt wird. Dazu sind verschiedene Wecktöne wählbar und es wird die Temperatur von weather.yahoo.com angesagt.
  • Webinterface: alle Funktionen lassen sich jetzt auch über ein Webinterface bedienen!
  • Like-Button: Wird der Likebutton auf der Fernbedienung oder dem Webinterface gedrückt, werden Titel, Sender und Uhrzeit in der Likelist gespeichert. Damit kann man dann später nachsehen, wie der Titel eigentlich heißt, den man gerade hört.

Funktionen die noch geplant sind:

  • Nachrichten-Modus: zu jeder vollen Stunde wird auf einen Sender mit Nachrichten umgeschaltet
  • mal sehn...
Belegung der Fernsteuerung

Bedienung:

Die grundlegende Bedienung der Box dürfte nicht allzu schwer fallen.

  • Der Play-Knopf startet den Abspielvorgang.
  • Der Stop-Knopf beendet ihn.
  • Über die Volume-Knöpfe lässt sich die Lautstärke regeln.
  • Über den Zender-Knopf die einzelnen Streams auswählen. Außerdem können die Streams inzwischen auch über die Zifferntasten der Fernbedienung ausgewählt werden. Dazu einfach die gewünschte Nummer eingeben (Es kann vorkommen, dass bei einer zweistelligen Zahl die 2. Zahl nicht erkannt wird - einfach nochmal probieren).
  • Der menu-Knopf gibt die aktuelle Zeit und Datum an (derzeit noch etwas holprig aber man versteht es schon).
  • Der Mute-Knopf schaltet die Kiste leise.
  • Die Schlummerfunktion kann über die vier farbigen Knöpfe unter dem menu-Knopf aktiviert werden:
    rot = 15, grün = 20, gelb = 25 und blau = 30 Minuten bis das Gerät verstummt. Möchte man das ganze noch abbrechen, genügt ein Druck auf den Record-Knopf.
  • Mit dem 'tekst'-Knopf wird der aktuell abgespielte Stream angesagt.
  • Über den 'hh'-Knopf kann die Weckfunktion ein- und ausgeschaltet werden.
  • Der 'Radio'-Knopf speichert den aktuell gespielten Titel mit Sender und Uhrzeit in der Likelist.

Sender:

Derzeit sind 21 Sender installiert, die in der Datei /mnt/mediadistro/dj/streamlist hinterlegt sind (seit Version 2.0, früher waren sie in /usr/local/dj/streamlist). Dort können natürlich beliebige andere Sender eingestellt werden. Wenn ihr auch eine eigene Ansage für die entsprechenden Sender haben wollt, dann könnt ihr euch diese mit der txt2speech-Demo von der Acapela Group erstellen. Hier habe ich die deutsche Stimme Sarah und die Englische (UK) Rachel verwendet. Einfach mit einem Recorderprogramm eurer Wahl aufnehmen, zuschneiden und als MP3 speichern. Die fertigen Dateien landen in /mnt/mediadistro/dj/vobs/.

Webinterface:

Das Webinterface erreicht ihr über euren Browser sofern das DNS funktioniert ganz einfach über http://mediadistro/index.php. Ansonsten müsst ihr natürlich die IP der Box raussuchen. Es ist zunächst einfach mit dem Benutzer vip1710 und dem Passwort password geschützt. Das Passwort könnt ihr natürlich in der Datei /etc/lighttpd/.passwd ändern. Dazu bitte auch die README lesen!

Leider funktionieren derzeit die IP-Einstellungen noch nicht. Der Dateiupload ist inzwischen möglich. Außerdem möchte ich betonen, dass ich kein jQuery-Profi bin, da lässt sich sicher noch einiges optimieren und ich bin dankbar für Verbesserungsvorschläge!

Hier noch ein paar Bilder vom Webinterface:
Webplayer Weckereinstellungen Konfiguration

Bootmenu:

Inzwischen ist auch noch ein Bootmenü hinzugekommen, mit dem man per Fernbedienung oder USB-Tastatur auswählen kann, was die Box starten soll. In diesem Zuge ist auch das eigentliche Internetradio in den Unterordner 'mediadistro' gelandet, sodass man jetzt z.B. den VDR-Client in den Unterordner 'vdr' stecken kann und per Bootmenü auswählen, welche der beiden Distributionen gestartet werden soll.
An dieser Stelle mein besonderer Dank an "glotzi" aus dem open7x0.org-Forum, der das Bootmenü extra an die VIP1710 angepasst hat!

Die Konfiguration könnt ihr in den Dateien /mnt/mediadistro/etc/bootmenu.conf, sowie /mnt/plugrc in denen festgelegt wird, wie das Bootmenü erscheinen soll und welche Programme dadurch gestartet werden. Damit sei auch auf den Wiki-Eintrag zum Bootmenü verwiesen.

Installation der Distribution

Um das System zu Installieren geht zunächst auf die Seite von Hans-Werner Hilse, lest euch den Abschnitt '1. Make it boot your way' durch und installiert auf diese Weise den settings2.xml-Hack.

Zitat der Seite:

$ telnet 


BusyBox v1.01 (2007.01.11-16:43+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.


/ # wget http://hilses.de/vip1710/usb-storage-modules.tar
Connecting to hilses.de[62.75.159.166]:80
usb-storage-modules. 100% |**********************************|   187 KB    00:00 ETA
/ # wget http://hilses.de/vip1710/settings-xml--stack-overflow-exploit.bin
Connecting to hilses.de[62.75.159.166]:80
settings-xml--stack- 100% |**********************************|   128 KB    00:00 ETA
/ # wget http://hilses.de/vip1710/myrc
Connecting to hilses.de[62.75.159.166]:80
myrc                 100% |**********************************|   1059      00:00 ETA
/ # md5sum usb-storage-modules.tar
c9a1422e8b1ad4cd1ac8e8af0732f7d2  usb-storage-modules.tar
/ # md5sum settings-xml--stack-overflow-exploit.bin
84d6f170d81c4633e6e5623aa986bd3b  settings-xml--stack-overflow-exploit.bin
/ # md5sum myrc
62dbb9bf6feabe701a8c3785dcbe74bf  myrc
/ # tar -xv -f usb-storage-modules.tar -C /flash2
modules
modules/scsi_mod.o
modules/sd_mod.o
modules/usb-storage.o
/ # cp myrc /flash2/
/ # mkdir /flash2/flash-overlay
/ # cp /flash/settings2.xml /flash2/flash-overlay/settings2.xml
/ # cp settings-xml--stack-overflow-exploit.bin flash/settings2.xml
/ # sync
/ #

Gebt der Box anschließend noch eine Minute um sicher zu gehen, dass auch alle Daten in den Flash geschrieben wurden.

Anschließend entpackt das Mediadistro.tar.bz2 vom Ende des Artikels auf einen USB-Stick, der am besten mit ext2 formatiert ist, damit die Berechtigungen erhalten bleiben (Achtung die Box bietet von sich aus keine Unterstützung für ext3!). Das macht ihr am besten als root-Benutzer, damit auch die Besitzer- und Gruppenrechte der Ordner erhalten bleiben. USB-Stick ordentlich!! umounten (sicher entfernen!!) und in die Box stecken. Jetzt die Box einmal ausstecken und wieder einstecken - und Daumen drücken. Nach einer weile sollte der USB-Stick aktiviert werden und davon gelesen werden. Nach einer weiteren Weile sollte die Box sich melden mit "Das Internetradio ist hochgefahren" und es sollten weitere unverständliche Töne aus der Box kommen.

Fehlersuche:

Wenn sich mit der Fernsteuerung nichts tut, dann am besten einmal per telnet auf die Box gehen und nachsehen, ob der USB-Stick gemountet wurde. Dann könnt ihr mit dem Befehl irw nachsehen ob die Kommandos der Fernbedienung ankommen. Schließlich lassen sich alle meine Scripte auch von Hand bedienen:
Ein playscript play sollte auch auf der Konsole den Abspielvorgang starten.
Am besten ihr spielt damit einfach eine Weile rum, der Fehler lässt sich sicher einfach finden ;-)

Ansonsten gibt es auch einen IRC-Channel zu der Box. Schaut mal vorbei unter irc.einirc.de im Channel #vip1710

Download und ToDo

Schließlich also noch den Link zum Download des ganzen. Die nächste Version 2.2 ist draußen. Auch hier funktioniert die IP-Konfiguration über das Webinterface nocht nicht, da ich bisher keine Muße dazu hatte. Dafür gibt es ein nettes neues Feature:

  • mediadistro-v2.2.tar.bz2 (MD5SUM: 8bfa587b6ba52483b93ebaed5e066bec)
    * Changelog:
    • Termperaturansage auf neues Format der yahoo-Seite angepasst.
    • Abfahrtszeiten im Raum des Münchner MVV/MVG können angesagt werden (für U-/S-Bahn, Tram und Bus)
    • Händisch programmierte Weckzeiten können anschließend die für diesen Wochentag programmierte Weckzeit programmieren - so kann man schnell einen Tag etwas später einstellen, ohne den kompletten Wecker aus- und wieder einschalten zu müssen
  • mediadistro-v2.1.tar.bz2
    * Changelog:
    • Like-Button-Funktion hinzugefügt: auf Knopfdruck wird Titelname, Sender und Uhrzeit des gerade gespielten Songs gespeichert.
    • neue MPD-Version eingerichtet mit Ogg-Vorbis-Support und vielen Client-Programmen (siehe auch VIP als Jukebox)
    • neuen ntpd hinzugefügt, nachdem der alte bei mir probleme hatte, die Zeit aktuell zu halten
    • Bootmenü eingerichtet und dabei Aufräumarbeiten am Dateisystem erledigt: die mediadistro ist jetzt in einem Unterverzeichnis, sodass über das Bootmenü jetzt auch andere Distributionen auf den Stick geladen und gestartet werden können (z.B. VDR-Client)
  • mediadistro-v2.0_rc2.tar.bz2
    * Changelog:
    • Dateiupload funktionsfähig gemacht
      (Dank auch an 'Eddy' für zielführende Hinweise!)
  • mediadistro-v2.0_rc1.tar.bz2
    * Changelog:
    • Webinterface programmiert -> README lesen
    • lighttpd mit PHP-Support eingebunden
    • Config und Userdateien von /usr/local/dj nach /mnt/dj verschoben.
    • udhcpc angepasst, sodass der Hostname 'mediadistro' im DNS registriert wird.
    • Einige Stream-URLs angepasst

Alte Versionen

  • mediadistro-v1.6.tar.bz2
    * Changelog:
    • Wecker-Funktion erstellt mit Temperaturansage -> README lesen
    • saytime-Script angepasst für option noplay
    • at-Daemon für Wecker hinzugefügt
    • Copyright-Hinweise für diverse Programme in /usr/doc hinzugefügt
  • mediadistro-v1.5b.tar.bz2
    * Changelog:
    • Fehler in setvolume behoben. Es ließ sich bei 100% Lautstärke nicht mehr herunterregeln
    • Neue Stream-URL für pure.fm - electro hinzugefügt
  • mediadistro-v1.5.tar.bz2
    * Changelog:
    • Fehler in saytime behoben.
    • plugrc-System um plugrc.d-Ordner mit Scripten erweitert.
    • Anpassungen an processlist.xml, appman_config.xml sodass nicht mehr das komplette System startet.
    • Anstatt des Browsers wird jetzt Xv mit einem hübschen Bild angezeigt.
    • Autostart-Funktion (kann in /usr/local/dj/config deaktiviert werden).
    • Lautstärkeregelung auf die von MPD umgestellt.
    • Radio gibt Meldung sobald das System hochgefahren ist.
    • Es können jetzt 99 Streams eingetragen und angesagt werden.
    • Einige Stream-URLs angepasst und drei neue hinzugefügt.
  • mediadistro-v1.4.tar.bz2
    * Changelog:
    • Einlesen von Zahlen über Fernsteuerung jetzt mit C-Programm
      Dadurch hat man jetzt garantiert 1 Sekunde Zeit zwischen zwei Zahlen und die zweite Zahl wird nicht mehr verschluckt.
    • Sourcen gibt es hier - ich habe das Programm gegen die libevent-Bibliothek aus den Debian-Testing-Paketen gelinkt, da ich keine Lust hatte libevent selbst zu kompilieren (es ist Version 1.4.13 verwendet worden).
  • mediadistro-v1.3.tar.bz2
    * Changelog:
    • von madplay auf MPD umgestellt
    • streamlist aktualisiert
    • lsusb und lspci eingebunden
    • remount-Script zum togglen zwischen ro und rw beim USB-Stick
  • mediadistro-v1.2b.tar.bz2
    * Changelog:
    • saystream-Script hat bei gleich beginnenden StreamURLs alle Streamnamen angesagt
    • saytime-Script sagt jetzt "ein Uhr xy" und nicht mehr "eins Uhr xy"
    (Hinweis: die beiden Adressen für Radio Happyday und Rivendell haben sich inzwischen geändert - daher funktionieren diese Sender im Moment nicht mit dieser Version. Werde ich in der nächsten Versionen updaten).
  • mediadistro-v1.2.tar.bz2
    * Changelog:
    • Ansage des abgespielten Stream über 'tekst'-Knopf
    • StreamURL für Armin van Burren ASOT angepasst, da alter Stream nicht mehr lief.
    • Neue ntp.conf eingefügt, da alter ntp-Server down
  • mediadistro-v1.1b.tar.bz2
    * Changelog:
    • Neues Script für Zifferntasten, da altes Soundsystem aufgehängt hat.
    • StreamURL für Bayern 3 angepasst, dass vernünftiger Ton kommt
  • mediadistro-v1.1.tar.bz2
    * Changelog:
    • Script zum Einlesen der Zifferntasten erstellt
    • config-Script erstellt mit Umgebungsvariablen
    • start_stop_automatik-Script erstellt für Abspielsteuerung
    • kleinere Anpassungen an übrigen Scripten
    • lircrc für Zifferntasten angepasst
  • mediadistro-v1.0.tar.bz2

ToDo:

IP-Einstellungen aus dem Webinterface übernehmen.

Weitere Versionen:

Ich habe auch noch eine Version der Mediadistro von Uwe D. erhalten, mit einigen Anpassungen, sodass auch Sender bis 99 Ausgewählt werden können. Außerdem sind über 50 Sender eingetragen.
mediadistro-v1.2c.tar.bz2

Und nun wünsche ich viel Spaß mit dem Gerät!

Seitenanfang