Beruflich Dokumente
Kultur Dokumente
Titelthema
Wellenreiten
Software Defined Radio
30
www.linux-magazin.de
Mit 20-Euro-Hardware und freier Software-Defined-Radio-Software beginnt für Konstantin Agouros die Jagd
auf die per Funk übertragenen Daten einer Wetterstation. Konstantin Agouros
Die Hardware
Vor der Analyse der digitalen Daten
musste ich zunächst die passende Hard-
ware für den Empfang finden. Während
speziell dafür entwickelte Hardware recht
kostspielig ist, bieten DVB-T-Sticks für
rund 20 Euro eine sehr günstige Ein-
stiegsmöglichkeit in SDR, sofern sie be-
© epicstockmedia, 123RF.com
www.linux-magazin.de
rtl_test ‑t
book mit Mint 15, bei der Analyse der
per Funk empfangenen Signale half das auslesen, um etwa herauszufinden, wel-
Gnu-Radio-Framework [3]. Das ist eine chen Frequenzbereich der DVB-T-Stick
Art Baukasten, der sogar einen grafischen abdeckt. Ein handfester Test ist auch der
Editor enthält und die Signalverarbeitung Empfang eines örtlichen Radiosenders:
von Rohdaten (gegebenenfalls auch in
rtl_fm ‑f 98.5M ‑W ‑s 200000 ‑r 48000 ‑ |
Echtzeit) mit Hilfe diverser Filter bis hin aplay ‑r 48k ‑f S16_LE
zu einem Zielformat ermöglicht. Die Soft-
ware erzeugt dabei automatisch Python- Der Demodulator »rtl_fm« nimmt 200 000
Code, der die Daten verarbeitet. Samples pro Sekunde auf der Frequenz
Um den DVB-T-Stick als Empfänger ein- 98,5 MHz (die Frequenz eines Radiosen-
zusetzen, benötige ich zunächst das RTL- ders) auf. Aplay spielt den Datenstrom
SDR-Paket, das mit einer Rate von 48 kHz auf Stdout
ab. Da die Roh-Audiodatei keine Header-
git clone git://git.osmocom.org/rtl‑sdr.git
Informationen enthält, liest Aplay die Da-
auf den Rechner holt. Gentoo und Arch ten mit dieser Rate ein und kodiert sie mit
Linux bringen bereits fertige Pakete mit, 16 Bit im Little-Endian-Format.
unter Ubuntu lässt sich die Software über
ein PPA installieren (siehe Kasten „Gnu Die Analyse
Radio aus dem PPA“).
Das Bauen der Software aus den Quel- Um interessante Signale im Äther zu
len funktioniert über Cmake, aber es finden, ist Zuhören angesagt. Das Kom-
gibt einen Haken: RTL-SDR verwendet
die Bibliothek Libusb, um mit dem Stick Gnu Radio aus dem PPA
zu kommunizieren. Werden jedoch be- Vor dem Anstecken der Hardware muss der
stimmte Treiber geladen, kann die Soft- Ubuntu-Nutzer eine Udev-Datei anlegen.
ware nicht mehr korrekt mit dem Stick Dazu liest er per »lsusb« die Vendor- und die
reden. Mein Mint-System hat die Module Product-ID seines DVB-T-Sticks aus und setzt
aus Listing 1 geladen. Listing 2 zeigt eine als Root den folgenden Befehl ab:
Anleitung von der Webseite [1] für das echo 'SUBSYSTEM=="usb",U
Bauen der Software aus den Quellen. ATTRS{idVendor}=="Vendor ID",U
ATTRS{idProduct}=="Product ID",U
gnetische Wellen quasi direkt an der Antenne Die Debian-Pakete von Gnu Radio und Gqrx
ab und bearbeitet sie mit Hilfe von Software. installieren Ubuntu-Nutzer aus einem PPA:
Im einfachsten Fall besteht ein SDR-Empfän-
ger aus einer Antenne und einem Analog- sudo add‑apt‑repository ppa:gqrx/U
snapshots
Digital-Wandler plus Software. Abhängig
sudo apt‑get update
vom Gerät lässt sich damit ein recht großer
sudo apt‑get install gqrx gnuradio
Frequenzbereich scannen. Anwendungen, mit
deren Hilfe sich SDR umsetzen lässt, heißen Über den Aufruf von »gqrx« lässt sich das
Gnu Radio, Gnu Radio Companion oder Gqrx. SDR-GUI anschließend starten.
01/2014
Titelthema
06
Bitrate: 9600, synclen: 24, framelen: 80 19 F
rame: size 98 bits, contents 1010101010101 000110001001001001011001010000000000000000,
07
Using frame duration 1600.0 samples 0101010101000111101110101000000000000000000 framelen=80
08
Squelch at 2200, should be slightly greater 000000000000000000000000000000000000000000,
27
Frame hex contents: AA AA AA 2D D4 91 C4 62
than usual max; use ‑‑squelch to change framelen=80
49 65
09
Oversampling input by: 7x. 20 F
rame hex contents: AA AA AA 3D D4 00 00 00
28
CRC: calculated=65, received=65
10
Oversampling output by: 1x. 00 00
11
Buffer size: 7.31ms 21 C
RC: calculated=00, received=00 29
Temperature: 6.2 C ‑‑ Humidity: 73 %
12
Tuned to 868679999 Hz. 22 T
emperature: ‑40.0 C ‑‑ Humidity: 0 % 30
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
01/2014
Titelthema
Software Defined Radio
33
www.linux-magazin.de
Abbildung 5: So sieht schließlich das richtig demodulierte Signal aus.
n Meine Samples waren mit der falschen Daten von Christophe: Sein Radio-Emp-
Modulationsmethode entstanden. Der fangssystem, ein Funcube-Dongle, lieferte
Sender moduliert mit der Amplitude, die Daten im Big-Endian-Format, der im
nicht mit der Frequenz. Daher muss Test eingesetzte DVB-T-Stick verwendete
»rtl_fm« den Parameter »‑M« mit auf hingegen das Little-Endian-Format. Dies
den Weg bekommen. musste Christophe im Code an der Stelle
n Mein Sender schickte die Daten mit anpassen, welche die Rohformat-Samples
9600 statt mit 17 200 Baud. in Zahlen zum Weiterverarbeiten ver-
n Die Datenpräambel lautete zudem wandelt.
nicht 1010101010101010, sondern Die Kodierung der Temperatur blieb in
101010101010101010101010, es waren beiden Szenarien identisch. Drei Nibbles
also tatsächlich 24 statt 16 Bit. (4 Bit), die eine Stelle der Temperatur in
Es gab noch einen weiteren Unterschied BCD (Binary Coded Decimal) kodierten,
zwischen meinem Testsystem und den wobei die dritte Stelle die Zehntel-Grad
Rechtslage um SDR
Christian Solmecke [4] ist Anwalt in der 4. Konstellation: Der Empfang ist für einen
Kanzlei Wilde Beuger Solmecke und erklärt, unbestimmten Personenkreis bestimmt, was
was SDR-Nutzer beim Abhören der Frequenzen der Fall ist bei Wetterinformationen für die
beachten sollten. See- und Luftfahrt.
Linux-Magazin: Welche Gesetzestexte sollten Außerhalb dieser vier Konstellationen bleibt
SDR-Nutzer genauer in Augenschein nehmen? der Empfang der Funkkommunikation verboten.
Christian Solmecke: Die wichtigsten Regelun- Das Abhören des Polizei- und Rettungsfunks
gen finden sich im Telekommunikationsgesetz. ist somit nicht erlaubt. Für den unabsichtli-
Insbesondere die Paragrafen 89 und 148 sind chen Empfang der Funkkommunikation gilt
hier entscheidend. nichts anderes: Wer aus Versehen auf eine
Linux-Magazin: Wie sieht es mit dem ab- der Frequenzen des Polizeifunks kommt und
sichtlichen oder unabsichtlichen Empfang von diese nach dem Erkennen weiterhört oder das
unverschlüsselter Kommunikation zwischen dort Gehörte verbreitet, macht sich genauso
Personen aus, zu denen etwa der Polizei- und strafbar, wie derjenige, der mit Absicht diese
Rettungsfunk, aber auch der Amateurfunk ge- Frequenzen abgehört hat. Die Strafbarkeit ist
hören? in Paragraf 148 des TKG geregelt, bis zu zwei
Christian Solmecke: Der absichtliche Empfang Jahren Freiheitsstrafe sind möglich.
unverschlüsselter Kommunikation ist nur in vier Linux-Magazin: Darf man, wie es einige Web-
Konstellationen erlaubt. Das regelt Paragraf 89 seiten tun, die unverschlüsselten Positionssi-
des Telekommunikationsgesetzes „Abhörver- gnale von Flugzeugen (ADS-B) oder Schiffen
bot, Geheimhaltungspflicht der Betreiber von (AIS) empfangen und online grafisch aufbe-
Empfangsanlagen“. reiten?
1. Konstellation: Die Nachricht ist für den Funk- Christian Solmecke: Bei der grafischen Auf-
betreiber bestimmt: Nachrichten, die nur für bereitung der Daten kommt es auf die Darstel-
den Empfänger bestimmt sind, darf auch nur lung im konkreten Fall an. Entscheidend ist, ob
dieser abhören – das ist zum Beispiel der Fall diese Daten eine Identifizierung ermöglichen.
bei Handys oder privaten WLAN-Netzen. Dies kann datenschutzrechtlich problematisch
2. Konstellation: Der Empfang ist für die Allge- sein – etwa bei Privatflugzeugen. Bei der Ver-
meinheit bestimmt (TV, Radio). öffentlichung personenbezogener Daten kann
3. Konstellation: Der Empfang ist für Funkama- zudem eine Persönlichkeitsrechtsverletzung
teure bestimmt. vorliegen.
01/2014
Titelthema
anzeigt. Darauf addiert mein Tempera- der SDR-Nutzer den Wert mit dem Para-
Software Defined Radio
tursensor 40, vermutlich um Minusgrade meter »‑g Wert« fest oder zieht den Stick
abzubilden. Die nächsten 8 Bit kodieren und steckt ihn erneut an der Rechner.
dann die Luftfeuchtigkeit.
Die erste Version des Skripts ging außer- Eitel Sonnenschein
dem davon aus, dass sie eine WAV-Datei
vorgesetzt bekommt, die genau die Bits Mit wenig finanziellem Aufwand und
34 mit den Informationen und keinerlei Rau- am Ende auch sehr wenig Software lässt
www.linux-magazin.de
schen enthält. Das nun von Christophe sich die Aufgabe lösen, die Daten der
maßgeblich überarbeitete und auf andere Wetterstation auszulesen und in eine di-
Fälle erweiterte Skript bringt einige neue gital auswertbare Form zu bekommen.
Eigenschaften mit, die unter anderem Die Basisstation des Testgeräts empfängt
Folgendes ermöglichen: auch Daten mit Wetter- sowie Pollen-
n Es erkennt die Spitze der Daten daran, flug-Vorhersagen. Diese kommen nicht
dass der numerische Wert des Sample vom Außensensor, sondern über das alte
einen Grenzwert überschreitet. Der Pager-Netz. Auch dessen Daten lassen
liegt bei 4000, lässt sich aber – je nach sich empfangen und mit dem Tool »mul-
Sendeleistung – ändern. timode‑ng« dekodieren. Die Pager-Daten
n Die Daten können auch im Rohmodus gehen im Klartext über den Äther, aber
vorliegen, also ohne WAV-Header, aber die Kodierung im String ist noch undoku-
im Moment muss dies mit einer Rate mentiert. Ein großes Dankeschön geht an
von 160 000 pro Sekunde geschehen. Christophe Jacquet für die Anpassungen
n Die Länge der Präambel regelt ein ei- seines Skripts, die Echtzeit-Streaming er-
gener Parameter. möglichten. (kki) n
n Die Baudrate der Datenübertragung
lässt sich variabel einstellen.
Daher erzeugt nun folgender Aufruf ei- Infos
nen Strom von Temperaturmessungen: [1] RTL-SDR-Projekt:
[http://sdr.osmocom.org/trac/wiki/rtl‑sdr]
rtl_fm ‑M ‑f 868.4M ‑s 160k ‑ | python U
decode_tfa.py ‑‑raw ‑ ‑‑bitrate 9600 U
[2] Reddit-Thread mit SDR-Hardware-Empfeh-
‑‑synclen 24 lungen: [http://www.reddit.com/r/RTLSDR/
comments/s6ddo/rtlsdr_compatibility_list_
Die Ausgabe des Befehls zeigt Listing 3. v2_work_in_progress/]
Ab und zu sind die Messdaten fehlerhaft. [3] Gnu Radio:
Dies lässt sich an zwei Dingen erkennen: [http://gnuradio.org]
Zum einen ist eine Checksumme ent- [4] RA Christian Solmecke: [http://www.
halten, deren erwarteter und ermittelter wbs‑law.de/anwalt/christian‑solmecke/]
Wert ausgegeben wird. Weichen diese [5] Gqrx-GUI zur Spektrumanalyse:
voneinander ab, liegt ein Messfehler vor. [http://sourceforge.net/projects/gqrx/]
Auch sind extreme Temperatursprünge [6] Blog von Christophe Jacquet mit der Pro-
eigentlich unmöglich, dennoch weichen tokollanalyse (französisch):
zwei Messungen um mehr als 1 Grad [http://www.jacquet80.eu/blog/post/2011/
Celsius voneinander ab. 10/Decodage‑capteur‑thermo‑hygro‑TFA]
In der Praxis zeigte sich, dass die An- [7] Erste Analyse des Protokolls von Fred Bos-
tenne nicht zu weit vom Empfänger ent- sard: [http://fredboboss.free.fr/tx29/]
fernt sein sollte. Schon bei 5 Metern Ent- [8] Pydemod-Paket:
fernung sank bei mir der Wert der Spitze [http://code.google.com/p/pydemod/]
deutlich ab. Liegt der Wert zu nahe am [9] Code von »decode_tfa.py«:
Rauschen, kann das Skript den Anfang [http://code.google.com/p/pydemod/
der Daten nicht mehr erkennen. source/browse/trunk/src/decode_tfa.py]
Das Python-Skript gibt während des
Durchlaufs Minimal-, Maximal- und Der Autor
Durchschnittswerte aus. Im Praxistest Konstantin Agouros arbeitet bei der N.runs Pro-
kam es jedoch immer wieder vor, dass fessionals GmbH als Berater für Netzwerksicher-
der Ausschlag des Sticks zu schwach war. heit. Dabei liegt sein Schwerpunkt im Bereich der
Das kann an der automatischen Verstär- Mobilfunknetze. Sein Buch „DNS/DHCP“ ist bei
kung des Signals liegen. Entweder nagelt Open Source Press erschienen.