Spaß mit RTL-SDR auf OpenBSD: Von Flugzeugen, Funk-Thermometern und Radio
Pakete schnappen direkt aus der Luft – auf OpenBSD.

Nach meinem letzten Post über Modernes Kismet auf OpenBSD wird es Zeit, dass wir uns die Hardware anschauen, die den ganzen Funk-Spaß erst möglich macht. Wenn du noch einen USB-Port frei hast und dir für rund 50€ einen RTL-SDR-Dongle besorgst, verwandelst du deine OpenBSD-Kiste in einen fähigen Radio-Scanner.
Was ist eigentlich SDR?
Software Defined Radio (SDR) verlagert den Prozess der Signalverarbeitung von spezialisierten Hardwareschaltkreisen direkt in die Software. Früher war es so: Wolltest du eine neue Frequenz hören oder ein neues Protokoll knacken, musstest du ein komplett neues Funkgerät kaufen. Bei SDR ist die Hardware eigentlich nur ein “dummes” Bauteil, das ein Stück des Frequenzspektrums digitalisiert – dein Prozessor übernimmt dann das eigentliche Rechnen, Filtern und Dekodieren.
Der RTL-SDR ist dabei quasi die Einstiegsdroge. Eigentlich waren das mal billige USB-Sticks für digitales Fernsehen (DVB-T), aber findige Hacker haben gemerkt, dass man den Realtek RTL2832U-Chip in einen Rohdaten-Modus versetzen kann. Damit kann man so ziemlich alles zwischen 500 kHz und 1,7 GHz empfangen.
Die Klassiker wie den RTL-SDR Blog V3 (oder den neuen V4) sowie passende Antennen bekommt man problemlos auf eBay.
Für diesen Artikel habe ich meinen treuen RTL-SDR Blog V3 benutzt.

Das Arbeitstier: RTL-SDR Blog V3
Das OpenBSD-Setup
Unter OpenBSD werfen wir zuerst einen Blick in die Ausgabe von dmesg, um zu sehen, ob das Teil als USB-Gerät erkannt wird:
ugen2 at uhub5 port 4 "Realtek RTL2838UHIDIR" rev 2.00/1.00 addr 4Das sieht gut aus. Wenn das Paket comms/rtl-sdr installiert ist, können wir mit rtl_test kurz die Lage checken:
sudo rtl_test
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
...
Reading samples in async mode...
lost at least 76 bytes
...Ein Wort zum “Async USB”
Wenn du rtl_test laufen lässt, siehst du wahrscheinlich diese Meldungen:
lost at least 76 bytes, lost at least 68 bytes…
Keine Panik! Das liegt daran, dass OpenBSD das asynchrone USB-Protokoll, das die Treiber auf anderen Systemen nutzen, nicht nativ unterstützt. “Async” wird hier quasi über das normale synchrone USB-Protokoll getunnelt. Das führt bei hohen Abtastraten zu winzigen Datenverlusten, aber für normales Monitoring oder digitale Pakete ist das nicht weiter tragisch.
Spielereien auf der Konsole
1. Ganz klassisch: UKW-Radio
Lust auf Musik? Du kannst die Rohdaten von rtl_fm direkt in ffplay pipen, um deinen Lieblingssender zu hören:
rtl_fm -f 91.9M -M wfm -s 170k -r 44.1k | ffplay -nodisp -f s16le -ar 44.1k -2. Sensoren überwachen mit rtl_433
Das Tool rtl_433 ist das Schweizer Taschenmesser für das 433,92 MHz Band. Damit dekodiert man Signale von Außenthermetern, Reifendrucksensoren oder sogar manchen Stromzählern, und ähnlichem.
sudo rtl_433 -s 1024ksudo rtl_433 -s 1024k
rtl_433 version 25.12 (2025-12-12) inputs file rtl_tcp RTL-SDR with TLS
Reading conf from "/etc/rtl_433/rtl_433.conf".
Found Rafael Micro R820T tuner
[SDR] Using device 0: Realtek, RTL2838UHIDIR, SN: 00000001, "Generic RTL2832U OEM"
[R82XX] PLL not locked!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2026-04-14 20:59:35
model : Nexus-TH House Code: 196
Channel : 2 Battery : 1 Temperature: 11.60 C Humidity : 62 %
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2026-04-14 20:59:39
model : Oregon-THGR810 House Code: 203
Channel : 0 Battery : 0 Celsius : 8.70 C Humidity : 72 %
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _In meinem Test hab ich sofort Sensoren aus der Nachbarschaft beobachten können:
- Nexus-TH: Temperatur 11,6 °C, 62 % Feuchtigkeit.
- Oregon-THGR810: 8,7 °C, 72 % Feuchtigkeit.
Schon witzig zu sehen, wie viele “smarte” Geräte in der eigenen Straße so rumfunken.
3. Flugzeug-Tracking mit dump1090
Flugzeuge senden ihre Position und Höhe via ADS-B auf 1090 MHz. Mit dump1090 wird dein Terminal zum Radarschirm:
sudo dump1090
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001 (currently selected)
Found Rafael Micro R820T tuner
Max available gain is: 49.60
Setting gain to: 49.60
Exact sample rate is: 2000000.052982 Hz
Gain reported by device: 49.60
*5d4cadbbcf5037;
CRC: cf5037 (ok)
DF 11: All Call Reply.
Capability : Level 2+3+4 (DF0,4,5,11,20,21,24,code7 - is on airborne)
ICAO Address: 4cadbb
*8d4cadbb586f963f3468ea17a936;
CRC: 17a936 (ok)
DF 17: ADS-B message.
Capability : 5 (Level 2+3+4 (DF0,4,5,11,20,21,24,code7 - is on airborne))
ICAO Address : 4cadbb
Extended Squitter Type: 11
Extended Squitter Sub : 0
Extended Squitter Name: Airborne Position (Baro Altitude)
F flag : odd
T flag : non-UTC
Altitude : 21225 feet
Latitude : 73626 (not decoded)
Longitude: 26858 (not decoded)
*20000db9733fa9;
CRC: 733fa9 (ok)
DF 4: Surveillance, Altitude Reply.
Flight Status : Normal, Airborne
DR : 0
UM : 0
Altitude : 21225 feet
ICAO Address : 4cadbb
...Deep Dive: Was bedeuten die “DF”-Codes?
Wenn du dich fragst, was dieser Buchstabensalat wie DF 17 oder die ICAO-Adresse bedeutet: Willkommen in der Welt der Transponder-Technik!
Das Downlink Format (DF) sind die ersten 5 Bits einer Nachricht. Sie verraten dem Empfänger, wie er den Rest lesen muss:
- DF 11: Der “All Call”-Ruf. Hier meldet sich ein Flieger mit seiner eindeutigen 24-Bit-Kennung.
- DF 17: Der “Extended Squitter” – das ist das Goldstück von ADS-B mit GPS-Position, Höhe und Speed.
Wer tiefer in die Bit-Ebene einsteigen will (etwa warum man zwei Pakete braucht, um die Position korrekt zu berechnen), sollte sich diese Seiten mal anschauen:
- The 1090 Megahertz Riddle: Ein freies Buch von Junzi Sun, das Mode S and ADS-B Dekodierung sehr gut erklärt.
- The Radar Tutorial: Alles über Radar und Mode-S-Formate.
- RTL-SDR.com: Der definitive Blog mit News zu neuer Hardwae (wie dem V4 Dongle) und sonstigen Community Projekten.
Mit dem Parameter --net kannst du sogar http://localhost:8080/ im Browser öffnen und siehst die Flieger live auf einer Karte.
dump1090 --interactive --net
Live-Radar im Browser via dump1090
Grafische Tools und Fortgeschrittenes
Kismet-Integration
Wie schon erwähnt, kann Kismet den RTL-SDR als Datenquelle für alles Mögliche nutzen, was kein WLAN ist.
- Für IoT/Sensoren:
kismet -c source=rtl433-0:type=rtl433

Temperatursensoren aufgespürt mit rtl433 Datasource
- Für Flugzeuge:
kismet -c source=rtladsb-0:type=rtladsb

Flugzeuge aufgespürt mit ADSB datasource
Demnächst: SDRpp und Gqrx
Konsole ist cool, aber manchmal braucht man einfach ein ordentliches Wasserfall-Diagramm, um zu sehen, “wo” gerade was los ist.
Ich bastel gerade daran, SDRpp (eine moderne, richtig fixe SDR-Software) ordentlich auf OpenBSD zum Laufen zu bringen. Es ist noch “Work in Progress”, sieht aber schon sehr gut aus. Auch den Gqrx-Port schaue ich mir gerade an. Die Updates dazu landen regelmäßig in meinem mystuff Repo auf GitHub.
Fazit & Ausblick
Wie ist der Stand der Dinge für Funker auf OpenBSD?
- Läuft super: Die CLI-Tools wie
rtl-sdr,rtl_433unddump1090sind grundsolide. - Kismet: Funktioniert top für ADS-B und Wettersensoren.
- Der “GNURadio”-Elefant: GNURadio gibt’s zwar in den Ports, aber die Abhängigkeiten sind riesig und die Performance unter OpenBSD ist wegen des komplexen Threadings manchmal etwas zickig.
- Zukunft: Behaltet SDRpp im Auge. Ich arbeite hart daran, dass wir auf OpenBSD bald eine moderne, schicke GUI für den Funk-Alltag haben.

SDR++ auf OpenBSD
OpenBSD zeigt mal wieder: Es ist eine großartige Plattform für Hardware-Basteleien, solange man bereit ist, tief in die Materie einzutauchen und über den einen oder anderen verlorenen Datenpunkt hinwegzusehen!