Conteneur Docker exécutant rbfeeder
d'AirNav RadarBox. Conçu pour fonctionner en tandem avec les passionnés de sdr/readsb-protobuf. Construit et fonctionne sur x86_64
, arm64
et arm32v7
.
rbfeeder
extrait les informations ModeS/BEAST d'un hôte ou d'un conteneur fournissant des données ModeS/BEAST et envoie les données à RadarBox.
Pour plus d'informations sur ce qu'est rbfeeder
, voir ici : partage de données.
latest
( branche main
, Dockerfile
)
latest_nohealthcheck
est identique à la latest
version ci-dessus. Cependant, cette version a supprimé le contrôle de santé du Docker. Ceci est fait pour les personnes exécutant des plates-formes (telles que Nomad) qui ne prennent pas en charge la désactivation manuelle des contrôles de santé, lorsque les contrôles de santé ne sont pas souhaités.
Balises spécifiques à la version et à l'architecture disponibles
Actuellement, cette image doit être extraite et exécutée sur les architectures suivantes :
amd64
: Linux x86-64
arm32v7
, armv7l
: ARMv7 32 bits (Odroid HC1/HC2/XU4, RPi 2B/3B)
arm64
, aarch64
: ARMv8 64 bits (OS RPi 4 64 bits)
Les nouveaux utilisateurs doivent obtenir une clé de partage RadarBox.
Afin d'obtenir une clé de partage RadarBox, lors de la première exécution du conteneur, rbfeeder
générera une clé de partage et l'imprimera dans le journal du conteneur.
délai d'attente de 300 s pour l'exécution du docker --rm -il -e HÔTE BÊTE = VOTRE HÔTE BÊTE -e LAT=VOTREATITUDE -e LONG=VOTRE LONGITUDE -e ALT=VOTRE ALTITUDE ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Cela exécutera le conteneur pendant cinq minutes, permettant de générer une clé de partage.
Vous devez évidemment remplacer YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
et YOURALTITUDE
par les valeurs appropriées.
Peu de temps après le lancement du conteneur, vous devriez voir :
[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)
Prenez note de la clé de partage, car vous en aurez besoin lors du lancement du conteneur.
Si vous n'êtes pas un nouvel utilisateur et que vous migrez depuis une autre installation, vous pouvez récupérer votre clé de partage en utilisant l'une des méthodes suivantes :
SSH sur votre récepteur existant et exécutez la commande rbfeeder --showkey --no-start
SSH sur votre récepteur existant et exécutez la commande grep key= /etc/rbfeeder.ini
docker run
exécution du docker -d --rm --name rbfeeder -e TZ="VOTREZONE HORAIRE" -e HÔTE BÊTE = VOTRE HÔTE BÊTE -e LAT=VOTREATITUDE -e LONG=VOTRE LONGITUDE -e ALT=VOTRE ALTITUDE -e SHARING_KEY = VOTRE CLÉ DE PARTAGE ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Vous devez évidemment remplacer YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
, YOURALTITUDE
et YOURSHARINGKEY
par les valeurs appropriées.
Par exemple:
exécution du docker -d --rm --name rbfeeder -e TZ="Australie/Perth" -e BÊTE HÔTE=readsb -e LAT=-33,33333 -e LONG=111.11111 -eALT=90 -e SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9 ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Attention, l'altitude est indiquée en mètres et aucune unité ne doit être précisée.
version : '2.0'services : chargeur : image : ghcr.io/sdr-enthusiasts/docker-radarbox:latest tty : truecontainer_name : rbfeeder redémarrer : toujours environnement: - TZ=Australie/Perth - BEASTHOST = lecturesb - LAT=-33.33333 - LONG=111.11111 -ALT=90 - SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9
Une fois votre conteneur opérationnel, vous devez réclamer votre récepteur.
Allez sur https://www.radarbox.com/
Créez un compte ou connectez-vous
Réclamez votre récepteur en visitant https://www.radarbox.com/raspberry-pi/claim et en suivant les instructions
Avant de signaler un problème concernant des erreurs de connexion, veuillez attendre au moins 10 minutes. Le binaire rbfeeder
est configuré pour tenter de se connecter à un ensemble de serveurs selon une méthode circulaire. Il semble normal que certains serveurs rejettent la connexion. Cela peut donc prendre plusieurs minutes pour trouver un serveur disponible et se connecter. Dans l'exemple ci-dessous, il a fallu environ 6 minutes entre le démarrage du conteneur et l'établissement de la connexion.
Vous pouvez essayer de résoudre ce problème en définissant ce paramètre :
- RB_SERVER=vrai
Cela imposera l’utilisation d’une adresse IP codée en dur dont on sait qu’elle fonctionne (à compter du 22 novembre 2023). Il vous connectera à un serveur européen si vous êtes situé dans l'hémisphère oriental (y compris l'Asie/Océanie), ou à un serveur basé aux États-Unis si vous êtes dans les Amériques.
Vous pouvez également recevoir une fausse erreur Error authenticating Sharing-Key: Invalid sharing-key
. À condition que vous ayez correctement saisi votre clé de partage, ignorez-la pendant plusieurs minutes.
Voici un exemple de sortie avec RBFeeder version 1.0.10 (build 20231120150000) montrant le comportement susmentionné :
[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
Il existe une série de variables d'environnement disponibles :
Variable d'environnement | But | Défaut |
---|---|---|
BEASTHOST | Requis. IP/Nom d'hôte d'un fournisseur Mode-S/BEAST (dump1090/readsb) | readsb |
BEASTPORT | Facultatif. Numéro de port TCP du fournisseur Mode-S/BEAST (dump1090/readsb) | 30005 |
UAT_RECEIVER_HOST | Facultatif. IP/nom d'hôte d'un fournisseur JSON décodé UAT externe (par exemple : dump978-fa). | |
UAT_RECEIVER_PORT | Facultatif. Numéro de port TCP du fournisseur JSON décodé UAT externe. | 30979 |
SHARING_KEY | Requis. Clé de partage Radarbox | |
LAT | Requis. Latitude de l'antenne | |
LONG | Requis. Longitude de l'antenne | |
ALT | Requis. Altitude en mètres | |
TZ | Facultatif. Votre fuseau horaire local | GMT |
STATS_INTERVAL_MINUTES | Facultatif. À quelle fréquence imprimer les statistiques, en minutes. | 5 |
VERBOSE_LOGGING | Facultatif. Défini sur true pour aucun filtrage des journaux rbfeeder . | false |
DEBUG_LEVEL | Facultatif. Définissez-le sur n'importe quel nombre compris entre 0 et 8 pour augmenter la verbosité des journaux rbfeeder . | 0 |
ENABLE_MLAT | Option. Définissez sur true pour activer MLAT à l’intérieur du conteneur. Voir la note MLAT ci-dessous | true |
MLAT_RESULTS_BEASTHOST | un nom d'hôte ou une adresse IP, où les résultats MLAT doivent être envoyés. (désactive le port d'écoute des résultats 30105) | |
MLAT_RESULTS_BEASTPORT | un numéro de port, spécifiez le numéro de port TCP où les résultats MLAT doivent être envoyés. | 30104 |
RB_SERVER | Facultatif. S'il est défini sur true , le conteneur tentera de se connecter à l'un des deux serveurs Radarbox connus pour fonctionner à compter du 22 novembre 2023. Vous pouvez également le définir explicitement sur un nom d'hôte ou une adresse IP. S’il n’est pas défini, les paramètres par défaut de RadarBox seront utilisés. | Désarmé |
Les ports TCP suivants sont utilisés par ce conteneur :
32088
- rbfeeder
écoute sur ce port, cependant je ne trouve pas l'utilité de ce port...
30105
: mlat-client
écoute sur ce port pour fournir des résultats MLAT. (le port d'écoute des résultats mlat est désactivé lorsque MLAT_RESULTS_BEASTHOST
est configuré pour contourner le bogue rbfeeder)
Vous constaterez peut-être que MLAT dans votre conteneur crache souvent des erreurs dans vos journaux, telles que
[rbfeeder] Déconnexion de mlat1.rb24.com:40900 : Aucune donnée (pas même keepalives) reçue pendant 60 secondes [rbfeeder] Connecté au serveur de multilatération sur mlat1.rb24.com:40900, établissement de liaison
Ceci n'est probablement pas causé, mais pas toujours, par quoi que ce soit que vous faites, mais plutôt par le serveur Radarbox lui-même et, en tant que tel, vous ne pouvez rien faire pour y remédier. Vous verrez dans vos statistiques Radarbox très peu, voire aucune, de cibles MLAT provenant de votre chargeur pendant qu'il fait cela.
Pour empêcher le chargeur de spammer vos journaux, vous pouvez définir ENABLE_MLAT=false
dans la configuration de votre environnement pour Radarbox et cela arrêtera le service MLAT et les messages des journaux. Veuillez noter que si vous faites cela et que vous utilisez MLAT Hub, veuillez supprimer Radarbox de votre READSB_NET_CONNECTOR
sous MLAT Hub
.
Le conteneur utilise en interne un binaire appelé rbfeeder
pour envoyer des données au service RadarBox. Ce binaire est fourni en source fermée par AirNav (la société qui exploite RadarBox) et n'est disponible qu'au format armhf (32 bits) en utilisant des pages de noyau de 4 Ko. Cela fonctionnera bien sur Raspberry Pi 3B+, 4B et d'autres systèmes basés sur ARM qui utilisent Debian Linux 32 bits ou 64 bits avec une taille de page de noyau de 4 Ko. Cela fonctionne également bien sur Linux x86 où nous utilisons l'émulateur qemu
ARM pour exécuter le binaire.
Debian Linux pour Raspberry Pi 5 utilise par défaut un noyau avec une taille de page de 16 Ko, ce qui n'est pas compatible avec le binaire rbfeeder
. Vous verrez des échecs dans les journaux de votre conteneur.
Vous pouvez vérifier la taille de la page de votre noyau avec cette commande : getconf PAGE_SIZE . Si la valeur renvoyée est 4096, alors tout va bien. S'il s'agit d'autre chose (par exemple 16384 pour une taille de page de 16 Ko), vous devrez implémenter la solution suivante :
Ajoutez ce qui suit à /boot/firmware/config.txt (Debian 12 Bookworm ou version ultérieure) ou /boot/config.txt (Debian 11 Bullseye ou version antérieure) pour utiliser un noyau avec une taille de page de 4 Ko. Cela rendra l'utilisation du processeur sur votre Raspberry Pi 5 légèrement moins efficace, mais cela résoudra le problème pour de nombreux progiciels qui ont le même problème. Après avoir modifié cela, vous devez redémarrer votre système pour que cela prenne effet :
kernel=kernel8.img
(une commande unique pour ajouter ceci serait :)
echo "noyau = noyau8.img" | sudo tee -a /boot/firmware/config.txt >/dev/null
Tous les processus sont enregistrés sur la sortie standard du conteneur et peuvent être visualisés avec docker logs [-f] container
.
Vous pouvez enregistrer un problème sur le GitHub du projet.
J'ai également une chaîne Discord, n'hésitez pas à la rejoindre et à discuter.
Si vous obtenez des erreurs de segmentation continuelles à l'intérieur de ce conteneur, voir : #16 (commentaire)