NOXON-DAB-Media-Player unter Linux
 

von Ralf Beesner                        
Elektronik-Labor  Lernpakete  Projekte  HF    




Der Noxon-DAB-Stick wird lediglich mit einer Windows-Software ausgeliefert, obwohl das Programm mit dem plattformübergreifenden Qt Framework erstellt wurde, das eigentlich aus der Linux-Welt stammt. Fraunhofer IIS, das die DAB-Software erstellt hat, hat auch eine Linux-Version, aber die hätte Terratec wohl gesondert bezahlen müssen.

Es gibt eine alternative Software für den DAB-Stick (dabstick-radio-0.96, Website: http://www.sdr-j.tk/index.html ), die ich unter meinem Linux zwar habe kompilieren können, die aber nur sehr unzuverlässig lief und einige Macken aufwies. Auch die bereits kompilierte Windows-Version lief hier (unter Windows7) mehr schlecht als recht.

Der eigentliche NOXON-DAB-Media-Player ist durchaus unter Linux lauffähig (mittels des "Emulators" Wine) - er erwartet jedoch den Windows-Treiber für den NOXON DAB-Stick, mit dem Linux nichts anfangen kann.

Ein Hacker mit dem Nickname "steve_m" hat jedoch einen Ersatz für die Windows-DLL RTL283XACESS.dll geschrieben. Die Ersatz-DLL gaukelt "nach oben" der DAB-Software den DABstick-Treiber vor, "nach unten" verbindet sie sich mit rtl_tcp, einem lokal laufenden Webservice, der über den Port 1234 das Signal des DAB-Sticks (oder eines anderen DVB-T-Sticks mit dem RTL28XX-Chipsatz) für beliebige Anwendungen bereitstellt. rtl_tcp ist Teil des rtl-sdr-Projekts.

Die rtl-sdr-library und die Tools gibt es im Quellcode unter http://sdr.osmocom.org/trac/wiki/rtl-sdr .

Wer selbst übersetzen will, sollte beachten, dass Linux unter Umständen automatisch die DVB-Treiber für den RTL29XX-Stick lädt. Man kann dann z.B. mit dem NOXON-DAB-Stick DVB-T empfangen, aber die DVB-Treiber blockieren die Hardware und müssen erst manuell entladen werden.

Man kann das automatische Laden unterbinden, indem man im Ordner /etc/modprobe.d die Datei rtl-dvb.conf anlegt und dort die Treiber hineinschreibt, die nicht automatisch geladen werden sollen. Auch sollte man eine udev-Regel für den RTL29XX-Stick anlegen, damit der Zugriff auf die Hardware ohne root-Rechte möglich ist.

Unter Debian und Ubuntu kann man auch einfach über die Paketverwaltung die Pakete libsdr0 und rtl-sdr installieren. Die oben genannte "blacklist"-Datei und die udev-Rules werden während der Installation automatisch angelegt.
rtl_tcp muss mit einem festen Parameter für die Verstärkung aufgerufen werden, da die (an sich vorhandene) automatische Verstärkungsregelung wohl nicht funktioniert. Bei mir erwies sich der Wert 9 als günstig.
Da rtl_tcp bereits im Hintergrund laufen muss, bevor man den NOXON-DAB-Media-Player aufruft, habe ich mir im Startmenü einen Eintrag angelegt, der rtl_tcp im xterm oder in der Konsole startet. Der eigentliche Programmaufruf erfolgt mit
xterm  -e rtl_tcp -g 9
Dann kann man im Terminal sehen, was das Programm "so treibt".

Nun muss man noch den NOXON-DAB-Media-Player installieren, die DLL austauschen und ein reg-File mit Registry-Einträgen importieren.
Die drei Schritte werden automatisch durch das Skript "dab-install.sh" erledigt, das sich unter https://github.com/steve-m/rtltcpaccess herunterladen lässt.

Die Dateien kann man sich aber auch "zu Fuss" holen und installieren:
http://ftp.terratec.de/NOXON/NOXON_DAB_Stick/Updates/NOXON_DAB_Stick_DAB_MediaPlayer_Setup_4.1.0.exe
http://steve-m.de/projects/rtl-sdr/rtltcpaccess.tar.gz

Wine sollte eigentlich automatisch Starter für installierte Windows-Programme anlegen. Falls nicht, muss man sich den Starter händisch einrichten.



Einige Hinweise für Windows-Nutzer

Wer schon mal mit SDR# (SDRsharp) und Zadig unter Windows herumgespielt hat, dem müsste rtl_sdr bekannt vorkommen, denn offenbar installiert SDR# unter anderem rtl-tcp.exe, und laut der Beschreibung unter http://rtlsdr.org/softwarewindows  kann man SDR# in einem alternativen Modus betreiben, in dem es auf rtl_tcp.exe aufsetzt.

Im Prinzip sollte es daher möglich sein, den NOXON-DAB-Media-Player für beliebige DVB-T-Dongles mit RTL28XX-Chipsatz zu nutzen: den NOXON-Treiber nicht installieren, sondern stattdessen SDR# und Zadig.
rtl_tcp.exe auf der Kommandozeile starten (vermutlich mit einem passenden Gain-Parameter), dann den NOXON-DAB-Media-Player installieren, die DLL austauschen, die Registry-Einträge importieren und den Player starten.

Auch für Besitzer des originalen NOXON-DAB-Sticks könnte das nützlich sein, weil man den Treiber nicht austauschen muss, wenn man zwischen SDR# und dem DAB-Media-Player wechseln möchte.

Probiert habe ich das allerdings nicht - für einen kurzen Test möchte ich nicht mit stundenlangem Windows-Gefummel gestraft werden. Unter Windows gibt es ja keine saubere Softwareverwaltung wie unter Linux, die bei der Deinstallation wirklich hinter sich aufräumt und alle Änderungen rückgängig macht...


Noxon-DAB-Stick telefoniert nach Hause

Beim Herumprobieren unter Linux fiel mir auf, dass der NOXON-DAB-Media-Player (Version 4.1) ca. alle 10 Sekunden mit Port 80 der IP-Adresse 5.9.219.210 "telefoniert", obwohl ich das Versenden anonymer Nutzungsstatistiken in der Software abgeschaltet hatte. Unter Windows war mir das nie aufgefallen, weil Microsoft den Nutzer von allem, was sich unter der Motorhaube tut, möglichst gründlich fernhalten möchte.

Die IP 5.9.219.210 ist auf den Hersteller Terratec eingetragen. Nach einigem Herumprobieren stellte sich heraus, dass die Software sich mit der Site "data.terratec.net" zu verbinden versucht. Möglicherweise sollte der Nutzer auf diesem Wege mal mit wechselnder Werbung (Bannerbereich oben im Programmfenster) "beglückt" werden und die Sache ist zwar lästig, aber harmlos. Bei volumenabhängigen Internet-Verbindungen (z.B. per Mobilfunk) kann der Unfug aber auch Geld kosten.

Unterdrücken kann man die Telefoniererei, indem man in der HOSTS-Datei dem Namen data.terratec.net die IP 127.0.0.1 zuweist; dann fragt die Software beim lokalen loopdevice an, und die Anfrage läuft ins Leere.

Unter Linux liegt die Datei hosts im Ordner /etc .
Unter Windows (gilt auch für Windows7 und die 64-bit-Versionen) liegt die Datei hosts unter C:\Windows\System32\drivers\etc .

In die Datei trägt man ein:
127.0.0.1    data.terratec.net

Unter Windows ist es jedoch zunächst erforderlich, sich Zugang zu dem Ordner zu verschaffen, da in der Standardeinstellung Systemordner, versteckte Dateien und dergleichen vor dem Nutzer verborgen werden. Man muss sich im Explorer unter "Ordneroptionen - Ansicht - erweiterte Einstellungen - Erweiterte Einstellungen" den ganzen Krempel mühsam freischalten. Man sollte auch als Administrator angemeldet sein, um Schreibrecht zu erhalten.

Möglicherweise schlägt die Benutzerkontensteuerung auch noch Alarm (den UAC-Nervkram habe ich gleich zu Anfang abgeschaltet - ich nutze Windows aber nur selten - für wichtiges schon gar nicht - und habe allerlei verzichtbare Dienste deaktiviert, um die Angriffsfläche zu reduzieren).



Elektronik-Labor  Lernpakete  Projekte  HF