Inhaltsverzeichnis
Vortrag vom 20.07.2013 durch Tobias Wensing · Siehe auch: rtl-sdr
Selbstbau Flugzeugradar
Einleitung
Haben Sie schonmal etwas vonADS-B (Automatic Dependent Surveillance - Broadcast) gehört? Nein, aber vielleicht kennen Sie eine der folgenden Seiten:
Wenn Sie sich bisher gefragt haben, woher diese Webseiten (bzw. deren APPs) die aktuellen Daten der Flugzeuge haben, dann ist dieses HowTo das richtige für Sie!
Wir zeigen Ihnen nämlich nicht nur woher die Daten kommen, sondern auch wie Sie selbst ein solches Flugradar betreiben können. Dieses sogar relativ günstig mit einen Hardwareaufwand von ca. 25 €uro.
Grundlagen
ADS-B wurde in Europa und Nordamerika zur Steigerung der Flugsicherheit und der Verkehrsdichte eingeführt. Vereinfacht gesagt, sendet dabei jedes Flugzeug auf einer Frequenz von 1,09 GHz einmal pro Sekunde seine Position, Höhe, Geschwindigkeit sowie einige weitere Daten. Dies können dann neben den anderen Flugzeugen auch Bodenstationen empfangen und auswerten. Deren theoretische Reichweite beträgt ~370,4 km.
Da das Funksignal unverschlüsselt gesendet wird, kann jedermann mit einen entsprechenden SDR-Empfänger die Daten empfangen und dekodieren. Auch wir werden uns das zu nutze machen.
ADS-B Radar als Kochrezept
Für ein solches „Radar“ benötigt man also Hardware zum Empfang von Daten auf einer Frequenz von 1090 MHz und entsprechende Software zum dekodieren des Signals. Als Anhänger von freier Software haben wir auch hier wieder alle Freiheiten, weil die notwendige Software bereits verfügbar ist. Aber auch bei der Hardware haben wir Glück, weil es günstige DAB/DAB+/FM -USB-Sticks gibt welche die gew. Frequenz empfangen können.
Voraussetzungen
Zur Realisierung dieses Projektes habe ich mich als Systemgrundlage für ein GNUBLIN-Board entschieden. Da dieses genügend Rechenkapazität bietet bei einem geringen Stromverbrauch von ~1Watt. Ausserdem ist es im Gegensatz zum viel gehypten RasPi wirklich OpenSource.
Als Betriebssystem verwende ich die Gnublin-Debian-Variante. Zusätzlich habe ich das GNUBLIN-Board mit einem WLAN-USB-Stick zur Netzwerkkommunikation ausgestattet. Beim DAB-Empfänger habe ich mich für den „ezCAP RTL2832/R820T“ entschieden. Aber es sollte Grundsätzlich mit allen Geräten dieser Liste funktionen.
Diese Anleitung kann natürlich auch mit jedem anderen GNU/Linux-System um gesetzt werden. Es wird ein USB-Host-Port und eine Netzwerkschnittstelle benötigt.
Zutatenliste
Hardware:
GNUBLIN-Board (bzw. GNU/Linux-PC)
WLAN-Stick (für das GNUBLIN-Board)
USB-Stick mit RTL2832U-Chip
aktiver USB-Hub
Software:
GNU/Linux*
GCC*
LIBUSB-1.0*
LIBTOOL*
AUTOCONF*
PKG-CONFIG*
GIT*
RTL-SDR
DUMP1090
(Die mit *-Sternchen versehenen Programme sollten Ihrer Distribution beiliegen)
Vorbereitungen
(Wenn Sie eine andere Plattform statt dem GNUBLIN-Board verweden, können Sie diesen Abschnitt überspringen)
Da das GNUBLIN-Board weder über Tastatur noch Bildschirm verfügt, muss es über eine serielle Konsole konfiguriert werden.
Als ersten Schritt sollte der WLan-Zugriff konfiguriert werden.
Zuerst wird da GNUBLIN wiehier beschrieben mit einem Computer zu konfiguration verbunden.
Als nächster Schritt sollte gemäß dieser Anleitung das Netzwerk konfiguriert werden.
Alternativ können auch diese Dateien auf die SD-Karte kopiert werden. Wobei vorallem die wlan.key-Konfigurationsdatei angepasst werden muss(der Dateiname muss dem des Netzwerknamens entsprechen und das WLan-Passwort muss korrekt eingetragen werden). Bei der wpa2connect sollten ggf. die IP-Adressen angepasst werden
Dateiname | Zielort (im GNUBLIN) | Bemerkung zur Datei |
---|---|---|
funknetzname | /etc/wlan.keys/funknetzname | WPA2-Schlüssel (ANPASSEN!) |
wpa2connect | /bin/wpa2connect | Ausführbares WLan-Script (chmod 700 + Anpassen) |
wlan | /etc/init.d/wlan | Init-Script (chmod 700) |
radar.sh | /root/radar.sh | ausführbares Script zum Starten des „Radars“ (chmod 700) |
Wenn die Dateien an den entsprechenden Orten abgelegt wurden, fügt folgender Befehl den WLan zum Systemstart hinzu:
rc-update wlan defaults
Kochen und Backen
Folgende Befehle sollten in der Root-Konsole auf dem Zielsystem ausgeführt werden. Der Installationsvorgang dauerte nativ auf dem GNUBLIN ca. 2 Std., da hier teilweise die Software erst kompiliert werden muss. Daher bietet es sich für erfahrene Anweder Crosscompiling der betreffenden Pakete an.
(Aus Sicherheitsgründen sollte man das Radar nicht auf dauer als Root betreiben, aber dazu vlt. in einem späteren Tutorial mehr)
#System updaten apt-get update && apt-get upgrade #Benötigte Software installieren (die mit den *-Sternchen) apt-get install git libusb-1.0-0-dev libtool pkg-config autoconf #Arbeitsverzeichnis erstellen/ mkdir ads-b && cd ads-b #RTL-SDR laden, kompilieren und installieren #GIT-Clonen git clone git://git.osmocom.org/rtl-sdr.git cd rtl-sdr #Kompilieren aclocal && autoreconf -i ./configure make #installieren make install cd .. #Dump1090 laden und kompilieren # download wget https://github.com/antirez/dump1090/archive/master.zip #entpacken unzip master.zip cd dump1090-master # kompilieren make ##fertig :-)
Testen
Wenn Sie jetzt den DAB/DAB+ -USB-Stick angeschlossen haben, wird mit
./dump1090 –-net
die Software zur Auswertung gestartet, welche auch gleich einem Webserver (-–net)
auf Port 8080 startet. Wenn Sie mit einem Browser http:< IP_GNUBLIN>:8080 (z.B.http://192.168.178.5:8080
) eingeben sollte Ihnen auf einem GoogleMaps-Hintergrund einige Flugzeuge (als gelbe Pfeile) angezeigt werden.
Es kann jedoch eine Minute dauern, bis Sie die ersten Flugzeuge angezeigt werden. Überprüfen Sie ggf. auch mal Ihre Antennenausrichtung. Für die recht hohe Frequenz sind bereits Fensterscheiben eine Abschirmung. Deshalb sollten Sie zumindest die Antenne im Freien „mit Sichtverbindung zum Flugraum“ positionieren.
Betrieb
Sie können die Webseite über die Datei „gmaps.html
“ anpassen.
Für den Dauerbetrieb sollten Sie die Konsolenausgabe von dump1090 nach /dev/null umleiten:
./dump1090 –net –aggressive –net-http-port 80 > /dev/null
Rechtliches
Hinweise
Je nach System muss das Kernel-Modul „dvb_usb_rtl28xxu“ per rmmod oder Kernel-Konfiguration entfernt werden bevor rtl_sdr verwendet werden kann
Ggf. müssen die rtl_sdr libraries von src/.libs per hand nach /usr/lib bzw. /usr/lib64 kopiert werden