Raspberry PI als SDR Server im Netzwerk

Der Raspberry PI kann mit einfachen Mitteln zum SDR Server im Netzwerk werden und damit Funksignale an einen Client über IP senden. Dafür reicht ein einfacher DVB-T USB-Stick mit dem RTL2832U-Chipsatz.

Für den eigentlichen Server reichen wenige Zeilen Code, die wir im Folgenden darstellen möchten. Wichtig ist beim Betrieb als Server, dass der Raspberry Pi nur das Signal empfängt und über IP bereitstellt. Die eigentliche Verarbeitung, die CPU-Last kostet, erfolgt erst auf dem Client.

Installation des SDR Server

Nachfolgend kurz die Kommandos, die auf der Shell ausgeführt werden müssen. Das erste Kommando lädt allgemein Pakete herunter, die für den weiteren Verlauf gebraucht werden:

sudo apt-get install git cmake libusb-1.0-0.dev build-essential

Eine kurze Erklärung dazu:

  • git: Versionsverwaltungssystem für Softwareprojekte, hier sind die Source-Dateien für den Server bereitgestellt
  • cmake: Tool für die Erstellung von Software. Es generiert zusätzliche Dateien, die von dem eigentlichen Compiler später genutzt werden
  • libusb-1.0-0.dev: USB-Programmierbibliothek
  • build-essentials: Wird benötigt, um Pakete zu erzeugen

Das zweite Kommando lädt den Programmcode für benötigte Software, um den DVB-T USB-Stick zu steuern. Der Befehl erstellt ein neues Verzeichnis, in diesem Fall „rtl-sdr“ und lädt die Quelldateien unter der angegebenen URL in dieses Verzeichnis.

git clone git://git.osmocom.org/rtl-sdr.git

Wir wechseln in das neue Verzeichnis, erstellen den Ordner „build“ und wechseln in diesen.

cd rtl-sdr/
mkdir build
cd build

Wir führen „cmake“ auf dem darunter liegenden Ordner aus. Das Resultat landet in dem Ordner „build“, den wir eben angelegt haben.

cmake ../

Compilieren des Codes und anschließendes Installieren der Software.

make
sudo make install

Der Befehl „ldconfig“ steuert die Verwaltung der Bibliotheken, die im System verwendet werden und mit dem nachfolgenden Befehl werden die Verweise auf diese Bibliotheken aktualisiert:

sudo ldconfig

Für die Kommunikation mit dem Stick muss noch eine Datei kopiert werden. „udev“ ist dabei ein Gerätedienst, der die Geräte im Verzeichnis /dev dynamisch verwalten kann. Wir müssen dazu zunächst in das darüber liegende Verzeichnis wechseln und anschließend die Datei kopieren:

cd ..
sudo cp rtl-sdr.rules /etc/udev/rules.d

Erster Start des SDR Server

Jetzt muss eigentlich nur noch das Programm gestartet werden. Da das Ganze über das LAN funktionieren soll, muss die IP mit angegeben werden:

sudo rtl_tcp -a 'ip'

Also zum Beispiel:

sudo rtl_tcp -a 192.168.0.42

Die Software startet und der Raspberry PI ist nun ein „SDR Server“.

Im Standard läuft der SDR Server auf dem Port „1234“. Dieser wird auch auf dem Raspberry PI beim Starten des Programms angezeigt. Wir können die Wahl des Ports auch beeinflussen, indem wir den Parameter -p verwenden:

sudo rtl_tcp -a 192.168.0.42 -p 1337

In diesem Fall würde der SDR Server jetzt auf dem Port 1337 erreichbar sein.

Manchmal startet der SDR Server nicht korrekt, da das Modul dvb_usb_rtl28xxu blockiert ist. Wenn dieses Problem auftritt, kann das Modul mit folgendem Befehl aus dem Speicher entfernt werden:

sudo rmmod dvb_usb_rtl28xxu

Client-Verbindung einrichten

Das Ganze lässt sich jetzt relativ simpel über das Programm SDR# steuern. Dazu muss in der Liste der Eintrag RTL-SDR / TCP gewählt – und unter „Configure“ die IP und der passende Port gesetzt werden.

Damit sollte die Verbindung erfolgreich aufgebaut sein.

SDR# Software

Wer das Tool zum ersten Mal nutzt, sollte etwas mit den Einstellungen spielen und darauf achten, dass die Werte „RF-Gain“ oder „Filter bandwidth“ passend zum erfassten Signal gesetzt sind.

In Teil 2 dieses Tutorials erfahren Sie, wie man mit einem derartigen software-defined-Radio (SDR) auch Tetra-Funk empfangen und auswerten kann.

Schreibe einen Kommentar