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.
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.