Docker-Container, auf dem rbfeeder
von AirNav RadarBox ausgeführt wird. Entwickelt für die Zusammenarbeit mit sdr-enthusiasts/readsb-protobuf. Erstellt und läuft auf x86_64
, arm64
und arm32v7
.
rbfeeder
ruft ModeS/BEAST-Informationen von einem Host oder Container ab, der ModeS/BEAST-Daten bereitstellt, und sendet Daten an RadarBox.
Weitere Informationen darüber, was rbfeeder
ist, finden Sie hier: Sharing-Data.
latest
( main
, Dockerfile
)
latest_nohealthcheck
ist mit der latest
Version oben identisch. In dieser Version wurde jedoch der Docker-Healthcheck entfernt. Dies geschieht für Personen, die Plattformen (wie Nomad) betreiben, die das manuelle Deaktivieren von Gesundheitschecks nicht unterstützen, wenn Gesundheitschecks nicht erwünscht sind.
Versions- und architekturspezifische Tags verfügbar
Derzeit sollte dieses Image auf den folgenden Architekturen abgerufen und ausgeführt werden:
amd64
: Linux x86-64
arm32v7
, armv7l
: ARMv7 32-Bit (Odroid HC1/HC2/XU4, RPi 2B/3B)
arm64
, aarch64
: ARMv8 64-Bit (RPi 4 64-Bit-Betriebssysteme)
Erstbenutzer sollten sich einen RadarBox-Freigabeschlüssel besorgen.
Um einen RadarBox-Freigabeschlüssel zu erhalten, generiert rbfeeder
beim ersten Ausführen des Containers einen Freigabeschlüssel und gibt diesen im Containerprotokoll aus.
Timeout 300s Docker-Lauf --rm -Es -e BEASTHOST=DEINBEASTHOST -e LAT=DEINERLATTITUDE -e LONG=DEINE LÄNGE -e ALT=DEINEHÖHE ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Dadurch wird der Container fünf Minuten lang ausgeführt, sodass ein Freigabeschlüssel generiert werden kann.
Sie sollten natürlich YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
und YOURALTITUDE
durch entsprechende Werte ersetzen.
Kurz nach dem Start des Containers sollte Folgendes angezeigt werden:
[2020-04-02 11:36:31] Empty sharing key. We will try to create a new one for you!
[2020-04-02 11:36:32] Your new key is g45643ab345af3c5d5g923a99ffc0de9. Please save this key for future use. You will have to know this key to link this receiver to your account in RadarBox24.com. This key is also saved in configuration file (/etc/rbfeeder.ini)
Notieren Sie sich den Freigabeschlüssel, da Sie ihn beim Starten des Containers benötigen.
Wenn Sie kein Erstbenutzer sind und von einer anderen Installation migrieren, können Sie Ihren Freigabeschlüssel mit einer der folgenden Methoden abrufen:
Stellen Sie eine SSH-Verbindung zu Ihrem vorhandenen Receiver her und führen Sie den Befehl rbfeeder --showkey --no-start
aus
Stellen Sie eine SSH-Verbindung zu Ihrem vorhandenen Empfänger her und führen Sie den Befehl grep key= /etc/rbfeeder.ini
aus
docker run
Docker-Lauf -D --rm --name rbfeeder -e TZ="DEINE ZEITZONE" -e BEASTHOST=DEINBEASTHOST -e LAT=DEINERLATTITUDE -e LONG=DEINE LÄNGE -e ALT=DEINEHÖHE -e SHARING_KEY=YOURSHARINGKEY ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Sie sollten natürlich YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
, YOURALTITUDE
und YOURSHARINGKEY
durch entsprechende Werte ersetzen.
Zum Beispiel:
Docker-Lauf -D --rm --name rbfeeder -e TZ="Australien/Perth" -e BEASTHOST=readsb -e LAT=-33,33333 -e LONG=111.11111 -e ALT=90 -e SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9 ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Bitte beachten Sie, dass die Höhenangabe in Metern angegeben wird und keine Einheiten angegeben werden sollten.
Version: '2.0'Dienste: rbfeeder: Bild: ghcr.io/sdr-enthusiasts/docker-radarbox:latest tty: truecontainer_name: rbfeeder Neustart: immer Umfeld: - TZ=Australien/Perth - BEASTHOST=readsb - LAT=-33,33333 - LONG=111,11111 - ALT=90 - SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9
Sobald Ihr Container betriebsbereit ist, sollten Sie Ihren Empfänger anfordern.
Gehen Sie zu https://www.radarbox.com/
Erstellen Sie ein Konto oder melden Sie sich an
Fordern Sie Ihren Receiver an, indem Sie https://www.radarbox.com/raspberry-pi/claim besuchen und den Anweisungen folgen
Bevor Sie ein Problem bezüglich Verbindungsfehlern melden, warten Sie bitte mindestens 10 Minuten. Die rbfeeder
Binärdatei ist so konfiguriert, dass sie versucht, im Round-Robin-Verfahren eine Verbindung zu einer Sammlung von Servern herzustellen. Es scheint normal, dass einige Server die Verbindung ablehnen. Daher kann es mehrere Minuten dauern, einen verfügbaren Server zu finden und eine Verbindung herzustellen. Im folgenden Beispiel dauerte es vom Start des Containers bis zum Verbindungsaufbau etwa 6 Minuten.
Sie können versuchen, dieses Problem zu lösen, indem Sie diesen Parameter festlegen:
- RB_SERVER=true
Dadurch wird die Verwendung einer fest codierten IP-Adresse erzwungen, von der bekannt ist, dass sie funktioniert (Stand 22.11.2023). Sie werden mit einem europäischen Server verbunden, wenn Sie sich in der östlichen Hemisphäre (einschließlich Asien/Ozeanien) befinden, oder mit einem in den USA ansässigen Server, wenn Sie sich in Amerika befinden.
Möglicherweise erhalten Sie auch die falsche Fehlermeldung Error authenticating Sharing-Key: Invalid sharing-key
. Sofern Sie Ihren Freigabeschlüssel korrekt eingegeben haben, ignorieren Sie dies einfach einige Minuten lang.
Hier ist eine Beispielausgabe mit RBFeeder Version 1.0.10 (Build 20231120150000), die das oben genannte Verhalten zeigt:
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Starting RBFeeder Version 1.0.10 (build 20231120150000)
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Using configuration file: /etc/rbfeeder.ini
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Network-mode enabled.
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Remote host to fetch data: 172.20.0.11
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Remote port: 30005
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Remote protocol: BEAST
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Using GNSS (when available)
[2023-11-22 21:59:06.966][rbfeeder] [2023-11-22 21:59:06] Start date/time: 2023-11-22 21:59:06
[2023-11-22 21:59:06.972][rbfeeder] [2023-11-22 21:59:06] Socket for ANRB created. Waiting for connections on port 32088
[2023-11-22 21:59:08.039][rbfeeder] [2023-11-22 21:59:08] Connection established.
[2023-11-22 21:59:18.154][rbfeeder] [2023-11-22 21:59:18] Could not start connection. Timeout.
...
[2023-11-22 22:05:29.223][rbfeeder] [2023-11-22 22:05:29] Connection established.
[2023-11-22 22:05:29.456][rbfeeder] [2023-11-22 22:05:29] Client type: Raspberry Pi
[2023-11-22 22:05:29:29.524][rbfeeder] [2023-11-22 22:05:29] Connection with RadarBox24 server OK! Key accepted by server.
[2023-11-22 22:05:29.524][rbfeeder] [2023-11-22 22:05:29] This is your station serial number: EXTRPIxxxxxx
Es gibt eine Reihe verfügbarer Umgebungsvariablen:
Umgebungsvariable | Zweck | Standard |
---|---|---|
BEASTHOST | Erforderlich. IP/Hostname eines Mode-S/BEAST-Anbieters (dump1090/readsb) | readsb |
BEASTPORT | Optional. TCP-Portnummer des Mode-S/BEAST-Anbieters (dump1090/readsb) | 30005 |
UAT_RECEIVER_HOST | Optional. IP/Hostname eines externen UAT-dekodierten JSON-Anbieters (z. B. dump978-fa). | |
UAT_RECEIVER_PORT | Optional. TCP-Portnummer des externen UAT-dekodierten JSON-Anbieters. | 30979 |
SHARING_KEY | Erforderlich. Radarbox-Freigabeschlüssel | |
LAT | Erforderlich. Breitengrad der Antenne | |
LONG | Erforderlich. Längengrad der Antenne | |
ALT | Erforderlich. Höhe in Metern | |
TZ | Optional. Ihre lokale Zeitzone | GMT |
STATS_INTERVAL_MINUTES | Optional. Wie oft Statistiken gedruckt werden sollen, in Minuten. | 5 |
VERBOSE_LOGGING | Optional. Auf true setzen, um keine Filterung der rbfeeder -Protokolle vorzunehmen. | false |
DEBUG_LEVEL | Optional. Legen Sie eine beliebige Zahl zwischen 0 und 8 fest, um die Ausführlichkeit der rbfeeder Protokolle zu erhöhen. | 0 |
ENABLE_MLAT | Option. Auf true setzen, um MLAT innerhalb des Containers zu aktivieren. Siehe MLAT-Hinweis unten | true |
MLAT_RESULTS_BEASTHOST | ein Hostname oder eine IP, an die MLAT-Ergebnisse gesendet werden sollen. (deaktiviert den 30105-Ergebnis-Listen-Port) | |
MLAT_RESULTS_BEASTPORT | Geben Sie als Portnummer die TCP-Portnummer an, an die MLAT-Ergebnisse gesendet werden sollen. | 30104 |
RB_SERVER | Optional. Wenn auf true gesetzt, versucht der Container, eine Verbindung zu einem von zwei Radarbox-Servern herzustellen, von denen bekannt ist, dass sie ab dem 22. November 2023 funktionieren. Sie können es auch explizit auf einen Hostnamen oder eine IP-Adresse festlegen. Wenn diese Option nicht festgelegt ist, werden die Standardeinstellungen von RadarBox verwendet. | Unscharf |
Die folgenden TCP-Ports werden von diesem Container verwendet:
32088
– rbfeeder
lauscht auf diesem Port, ich kann jedoch keine Verwendung für diesen Port finden ...
30105
– mlat-client
überwacht diesen Port, um MLAT-Ergebnisse bereitzustellen. (MLAT-Ergebnis-Abhörport deaktiviert, wenn MLAT_RESULTS_BEASTHOST
zur Umgehung des rbfeeder-Fehlers eingestellt ist)
Möglicherweise stellen Sie fest, dass MLAT in Ihrem Container häufig Fehler in Ihren Protokollen ausspuckt, z
[rbfeeder] Verbindung zu mlat1.rb24.com:40900 wird getrennt: 60 Sekunden lang wurden keine Daten (nicht einmal Keepalives) empfangen [rbfeeder] Verbunden mit dem Multilaterationsserver unter mlat1.rb24.com:40900, Handshake
Dies ist wahrscheinlich, aber nicht immer, nicht auf etwas zurückzuführen, was Sie tun, sondern wird durch den Radarbox-Server selbst verursacht und Sie können daher nichts tun, um das Problem zu beheben. Sie werden in Ihren Radarbox-Statistiken, wenn überhaupt, nur sehr wenige MLAT-Ziele von Ihrem Feeder sehen, während dieser dies tut.
Um zu verhindern, dass der Feeder Ihre Protokolle spammt, können Sie ENABLE_MLAT=false
in Ihrer Umgebungskonfiguration für Radarbox festlegen. Dadurch werden der MLAT-Dienst und die Protokollnachrichten gestoppt. Bitte beachten Sie: Wenn Sie dies tun und MLAT Hub verwenden, entfernen Sie bitte Radarbox aus Ihrem READSB_NET_CONNECTOR
unter MLAT Hub
.
Der Container verwendet intern eine Binärdatei namens rbfeeder
um Daten an den RadarBox-Dienst zu senden. Diese Binärdatei wird von AirNav (dem Unternehmen, das RadarBox betreibt) als Closed-Source-Datei bereitgestellt und ist nur im ARMHF-Format (32-Bit) mit 4-KB-Kernelseiten verfügbar. Dies funktioniert gut auf Raspberry Pi 3B+, 4B und anderen ARM-basierten Systemen, die entweder 32-Bit- oder 64-Bit-Debian-Linux mit einer Kernel-Seitengröße von 4 KB verwenden. Es funktioniert auch gut unter x86-Linux, wo wir den qemu
ARM-Emulator verwenden, um die Binärdatei auszuführen.
Debian Linux für Raspberry Pi 5 verwendet standardmäßig einen Kernel mit einer Seitengröße von 16 KB, und dieser ist nicht mit der rbfeeder
Binärdatei kompatibel. In Ihren Containerprotokollen werden Fehler angezeigt.
Sie können die Größe Ihrer Kernel-Seite mit diesem Befehl überprüfen: getconf PAGE_SIZE . Wenn der zurückgegebene Wert 4096 ist, ist alles in Ordnung. Wenn es sich um etwas anderes handelt (z. B. 16384 für eine Seitengröße von 16 KB), müssen Sie die folgende Problemumgehung implementieren:
Fügen Sie Folgendes zu /boot/firmware/config.txt (Debian 12 Bookworm oder höher) oder /boot/config.txt (Debian 11 Bullseye oder früher) hinzu, um einen Kernel mit einer Seitengröße von 4 KB zu verwenden. Dadurch wird die CPU-Auslastung auf Ihrem Raspberry Pi 5 etwas weniger effizient, das Problem wird jedoch für viele Softwarepakete gelöst, bei denen das gleiche Problem auftritt. Nachdem Sie dies geändert haben, müssen Sie Ihr System neu starten, damit es wirksam wird:
kernel=kernel8.img
(Ein einmaliger Befehl zum Hinzufügen wäre:)
echo „kernel=kernel8.img“ | sudo tee -a /boot/firmware/config.txt >/dev/null
Alle Prozesse werden in der Standardausgabe des Containers protokolliert und können mit docker logs [-f] container
angezeigt werden.
Sie können ein Problem auf dem GitHub des Projekts protokollieren.
Ich habe auch einen Discord-Kanal, dem Sie gerne beitreten und sich unterhalten können.
Wenn in diesem Container ständig Segmentierungsfehler auftreten, lesen Sie: #16 (Kommentar)