Das RTL-SDR unter Linux

Alles über Antennen, Empfänger, Zubehör, Software und vieles mehr.

Moderator: Goofy78

Gesperrt
Benutzeravatar
Lenux
Administrator
Beiträge: 116
Registriert: Sa 29. Sep 2012, 21:23
Kontaktdaten:

Das RTL-SDR unter Linux

Beitrag von Lenux »

Das RTL-SDR unter Linux

Moin!

In letzter Zeit wurde ich vermehrt auf die Thematik des RTL-SDRs unter Linux angesprochen. Im nachfolgenden möchte ich kurz die Vorgehensweise, die Installation und die Nutzung des SDRs in Verbindung mit GnuRadio vorstellen.

Was wird benötigt?

Grundlegende Kenntnisse im Umgang mit der Linux-Konsole sind hier unumgänglich! Falls man sich dies nicht zutraut können die essentiellen Grundbefehle, wie zum Beispiel "cd; mkdir; make; cmake; rm; ls; cp; etc.", mit einigen Tutorials in einer halben Stunde erlernt werden. Eine kurze Zusammenfassung ist auf der Seite von butenhoff.net (Edit - 10.1.2013: Anscheinend ist diese Seite nicht mehr zu erreichen. Eine Alternative ist hier zu finden - Danke an Goofy78!) zu finden.
Zur Ansteuerung des RTL-SDRs werden folgende Dinge benötigt

GnuRadio
UHD
osmosdr-Source
rtl_sdr
evtl. diverse PlugIn's


Falls irgendwelche Fehler während der Installation auftreten sollte man auf keinen Fall weiter machen und sich stattdessen mit der Behebung des Problems beschäftigen. Oft ist es nicht allzu schwer den Fehler zu finden und zu beheben.
Im nachfolgenden möchte ich mich auf Debian basierte Distributionen beschränken. Alle hier aufgeführten Methoden sind analog zu anderen Distributionen adaptierbar, allerdings garantiere ich nicht für eine reibungslose Installation und Funktion. Ich selber habe GnuRadio auch unter Arch Linux zum laufen gebracht, stellte aber fest, dass es für diesen Zweck mehr Sinn macht ein bereits lauffähiges System zu nutzen und GnuRadio einfach "oben auf" zu installieren.

Wo bekomme ich die Software her?
Auf keinen Fall sollte man hier aus den Distributions eigenen Repositories installieren. Es ist ein muss hier die aktuellste Version aus der Git zu installieren!

Folgende Git-Repositories sind wichtig

Osmocom RTL-SDR - git://git.osmocom.org/rtl-sdr.git
GnuRadio - git://gnuradio.org/gnuradio
libosmocore - git://git.osmocom.org/libosmocore.git
UHD - git://code.ettus.com/ettus/uhd.git


Wie installiere ich die Software?
Zunächst ist zu sagen, dass ich mich weitesgehend an die offizielle Debian Installations-Routine halten werde. Falls jemand ein anderes Derivat, wie zum Beispiel Ubuntu nutzt, müssen evtl. andere Dependecies installiert werden. Dies sollte gesondert nachgeschlagen werden.
Wer sich die Installation per Hand nicht zu traut findet hier ein Script, das das aktuellste GnuRadio aus der Git und UHD automatisch installiert. Ich persönlich habe dies nicht genutzt, da ich gerne volle Kontrolle über die Installationen habe. Allerdings hat Jannis_V schon eine erfolgreiche Installation mit diesem Script erlangt. Wie man GnuRadio jedoch installiert ist jedem selbst überlassen.
Laut Goofy78 an Allem Schuld. ;)
Benutzeravatar
Lenux
Administrator
Beiträge: 116
Registriert: Sa 29. Sep 2012, 21:23
Kontaktdaten:

Re: Das RTL-SDR unter Linux

Beitrag von Lenux »

Was gibt es bei der Installation zu beachten?
Die verschiedenen Komponenten müssen in einer bestimmten Reihenfolge installiert werden. Man kann sie zwar auch zu einem späteren Zeitpunkt nachinstallieren, aber ich hatte auf meinem System ein paar Probleme, als ich z.B. die libosmocore mit den Erweiterungen nachinstallieren wollte.
Ich werde den "hauseigenen" Paket-Manager apt verwenden. aptitude ist aber vorzuziehen, da es akribischer ist.

Wie fange ich an?
Zuerst sollte man sein System auf den neuesten Stand bringen. Dies geschieht mit

sudo apt-get upgrade

Da die Installation zum Schluss sehr groß und unübersichtlich wird empfehle ich im Home Verzeichnis einen Ordner "SDR" anzulegen.
Als erstes müssen hier noch cmake und die libusb nachinstalliert werden. Mit folgendem Befehl holt man sich diese aus der Distributions-Repository

sudo apt-get update
sudo apt-get install cmake libusb-1.0.0-dev

Danach wechselt man in das vorher angelegte Verzeichnis und holt sich die ersten Dateien aus der RTL-SDR Git. Dies geschieht folgendermaßen:

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

Man wechselt nun in das neu angelegte Verzeichnis "rtl-sdr" und erstellt sich dort einen "build" Ordner. Dies ist im Allgemeinen eine gute Strategie, um auch später den Überblick zu wahren und auch eine Referenz zu haben.
Dort baut man nun rtl-sdr mit dem Befehl

cmake ../

Danach kann man rtl-sdr installieren. Dies geschieht mit

make
sudo make install

Die weiteren Komponenten von rtl-sdr, wie zum Beispiel rtl_tcp und rtl_test, sind im Verzeichnis /rtl-sdr/src zu finden.
Ich habe mich hier bewusst an die offiziele Methode gehalten. Falls sich der Installations Mechanismus mal ändern sollte kann er auf der Osmocom-Seite direkt nachgelesen werden. Die Seite gilt im Allgemeinen als erste Anlaufstelle für Neuerungen.
Um die nun installierte Software zu testen kann man eine I/Q-Datei anlegen. Hier werden alle Informationen gespeichert. Mit folgendem Befehl lässt sich dies aufrufen

./rtl_sdr /tmp/capture.bin -s 1.8e6 -f 392e6

Man muss allerdings beachten, dass die Datei sehr schnell größer wird und man schnell überlegen muss, wo der Plattenspeicher bleibt.
Für die Syntax ist die -help Option sehr nützlich.
Laut Goofy78 an Allem Schuld. ;)
Benutzeravatar
Lenux
Administrator
Beiträge: 116
Registriert: Sa 29. Sep 2012, 21:23
Kontaktdaten:

Re: Das RTL-SDR unter Linux

Beitrag von Lenux »

Wie installiere ich UHD?
Als nächstes sollte das sogenannte UHD (Treiber für das USRP) installiert werden. Zunächst sollten wieder die Dependencies installiert werden. Auch wenn das im weiteren Verlauf der Installation automatisch passieren wird ist es doch ganz gut sich vor Augen zu führen, was man da wirklich installiert.

sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-cheetah doxygen python-docutils

Als nächstes wird die Ettus-Repository der System-Repository hinzugefügt.

sudo bash -c 'echo "deb http://files.ettus.com/binaries/uhd_uns ... sb_release -cs` `lsb_release -cs` main" > /etc/apt/sources.list.d/ettus.list'

Danach kann man mit einer Aktualisierung der Paketlisten UHD bequem per apt-get installieren.

sudo apt-get update
sudo apt-get install uhd

Damit ist die Installation von UHD abgeschlossen.

Was benötige ich für GnuRadio?
Wie bereits erwähnt sollte GnuRadio nicht aus der System-Repository installiert werden! Diese Versionen sind meist veraltet und harmonieren gegebenenfalls nicht mit dem RTL-SDR! Es macht hier wesentlich mehr Sinn etwas mehr Zeit in die Installation zu stecken und diese von Hand auszuführen, um später eine saubere und stabile Version zu haben.
GnuRadio benötigt folgende Dependencies unter Debian (für Ubuntu sind diese hier zu finden)

sudo apt-get install libaudio-dev
sudo apt-get -y install libxi-dev
sudo apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev
Laut Goofy78 an Allem Schuld. ;)
Benutzeravatar
Lenux
Administrator
Beiträge: 116
Registriert: Sa 29. Sep 2012, 21:23
Kontaktdaten:

Re: Das RTL-SDR unter Linux

Beitrag von Lenux »

Wie installiere ich GnuRadio?
Wenn alle Daten vom Git-Spiegel heruntergeladen wurden kann in das neue Verzeichnis "gnuradio" gewechselt werden. Dort sollte ebenfalls ein "build" Verzeichnis erstellt werden. Nachdem man auch in dieses gewechselt ist kann man mit folgenden Befehlen GnuRadio kompilieren

cmake ../
make

Mit folgendem Befehl wird GnuRadio nun installiert

sudo make install

Die grafische Oberfläche von GnuRadio kann nun mit folgendem Befehl aufgerufen werden

gnuradio-companion

Am besten man legt sich hier einen Shortcut in's Startmenü, damit man GnuRadio nicht immer über die Konsole starten muss.
Es kann sein, dass hier der Fehler "All OS PYTHONPATH" auftritt. Dies bedeutet, dass man die Umgebungsvariable PYTHONPATH setzen muss. Dies geschieht mit

ldconfig
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
echo 'export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"' > ~/.profile


Wie installiere ich gr-osmosdr?
Um das RTL-SDR in der Blockform von GnuRadio zu nutzen muss gr-osmosdr installiert werden. Alternativ kann hier auch das normale rtl-sdr mit einem "File-Source" oder gr-baz genutzt werden - gr-osmosdr ist meiner Meinung nach aber am komfortabelsten.
Man wechselt als erstes wieder in das Mutterverzeichnis "SDR" und holt sich die Daten vom Git-Spiegel

git clone git://git.osmocom.org/gr-osmosdr

Danach kann wiederum in das neue Verzeichnis "gr-osmosdr" gewechselt werden und mit folgenden Befehlen gr-osmosdr erstellt werden.

cmake . -DGRUEL_INCLUDE_DIRS="/usr/local/include/gruel/swig"
make

Wie gewohnt kann nun gr-osmosdr installiert werden

sudo make install

Nun muss noch der Library Pfad gesetzt werden. Dies geschieht mit

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
echo 'export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"' > ~/.profile

Damit ist die Grundinstallation schon bereits abgeschlossen. Möchte man allerdings eine der zahlreichen Erweiterungen nutzen muss noch die libosmocore installiert werden.
Laut Goofy78 an Allem Schuld. ;)
Benutzeravatar
Lenux
Administrator
Beiträge: 116
Registriert: Sa 29. Sep 2012, 21:23
Kontaktdaten:

Re: Das RTL-SDR unter Linux

Beitrag von Lenux »

Wie installiere ich die libsosmocore?
Abermals sollte nun in das Mutterverzeichnis "SDR" gewechselt werden und von dort aus die Daten aus dem Git-Spiegel bezogen werden

git clone git://git.osmocom.org/libosmocore.git

Von nun an kann man der Anleitung der offiziellen Seite folgen. Der Vollständigkeit halber führe ich sie hier allerdings noch einmal auf.
Man kann libosmocore mit den autotools installieren. Dazu setzt man folgende Befehle ab

autoreconf -i
./configure

Um nun libosmocore zu kompilieren und zu installieren nutzt man folgende Befehle

make
sudo make install

Auch hier muss wieder der LD-LIBRARY-PATH gesetzt werden

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

Nun ist man auch für die Erweiterungen gut gerüstet. Interessant ist hier sicherlich gqrx. Dies erfordert allerdings noch QT4, welches sich aber leicht nachinstallieren lässt.

Was sind gute Anlaufstellen für Informationen?
Einerseits sind die im Windows-Thread bereits erwähnten Links sehr nützlich. Speziell für Linux möchte ich aber folgende noch einmal hervorheben

GnuRadio
CCC-Mannheim Sehr gute Informationen. Möchte ich besonders hervorheben, da die Anleitung sehr einfach zu verstehen ist
libosmocore
Die allgemeine Projektseite RTL-SDR

Falls noch weitere Fragen auftreten sollten könnt ihr mich per Mail erreichen oder im Foren eigenen IRC-Channel. Ansonsten bitte den bereits bestehenden Diskussion-Thread nutzen.

Schöne Grüße,
Lenux
Laut Goofy78 an Allem Schuld. ;)
Benutzeravatar
Goofy78
Moderator
Beiträge: 8264
Registriert: Di 2. Okt 2012, 20:50
Kontaktdaten:

Re: Das RTL-SDR unter Linux

Beitrag von Goofy78 »

Grundlegende Kenntnisse im Umgang mit der Linux-Konsole sind hier unumgänglich! Falls man sich dies nicht zutraut können die essentiellen Grundbefehle, wie zum Beispiel "cd; mkdir; make; cmake; rm; ls; cp; etc.", mit einigen Tutorials in einer halben Stunde erlernt werden. Eine kurze Zusammenfassung ist auf der Seite von butenhoff.net zu finden.
Da der Link (butenhoff.net) aus dem ersten Beitrag nicht mehr funktioniert, hier mal ein anderer wo die wichtigsten Terminal-Befehle erklärt werden:

Linux über das Terminal steuern
Die jeweils aktuellen Start-/Raumfahrttermine >>>
August,
September,
Oktober,
November,
Dezember.
Gesperrt