Contenedor Docker que ejecuta rbfeeder
de AirNav RadarBox. Diseñado para trabajar en conjunto con sdr-enthusiasts/readsb-protobuf. Se compila y ejecuta en x86_64
, arm64
y arm32v7
.
rbfeeder
extrae información de ModeS/BEAST de un host o contenedor que proporciona datos de ModeS/BEAST y envía datos a RadarBox.
Para obtener más información sobre qué es rbfeeder
, consulte aquí: compartir-datos.
latest
(rama main
, Dockerfile
)
latest_nohealthcheck
es la misma que la latest
versión anterior. Sin embargo, en esta versión se eliminó el control de estado de Docker. Esto se hace para personas que ejecutan plataformas (como Nomad) que no admiten la desactivación manual de controles de estado, donde no se desean controles de estado.
Etiquetas específicas de versión y arquitectura disponibles
Actualmente, esta imagen debería extraerse y ejecutarse en las siguientes arquitecturas:
amd64
: Linux x86-64
arm32v7
, armv7l
: ARMv7 de 32 bits (Odroid HC1/HC2/XU4, RPi 2B/3B)
arm64
, aarch64
: ARMv8 de 64 bits (sistemas operativos RPi 4 de 64 bits)
Los usuarios nuevos deben obtener una clave para compartir de RadarBox.
Para obtener una clave para compartir de RadarBox, en la primera ejecución del contenedor, rbfeeder
generará una clave para compartir y la imprimirá en el registro del contenedor.
tiempo de espera de ejecución de la ventana acoplable 300 s --rm -él -e ANFITRIÓN BESTIA = TU ANFITRIÓN BESTIA -e LAT=TUURLATITUD -e LARGO = TU LONGITUD -e ALT=TUALTITUD ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Esto ejecutará el contenedor durante cinco minutos, lo que permitirá generar una clave para compartir.
Obviamente deberías reemplazar YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
y YOURALTITUDE
con los valores apropiados.
Poco después del lanzamiento del contenedor, se le debería presentar:
[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)
Tome nota de la clave para compartir, ya que la necesitará al iniciar el contenedor.
Si no es un usuario nuevo y está migrando desde otra instalación, puede recuperar su clave compartida utilizando cualquiera de los siguientes métodos:
SSH en su receptor existente y ejecute el comando rbfeeder --showkey --no-start
SSH en su receptor existente y ejecute el comando grep key= /etc/rbfeeder.ini
docker run
ejecución de la ventana acoplable -d --rm --nombre rbfeeder -e TZ="TUZONAHORARIA" -e ANFITRIÓN BESTIA = TU ANFITRIÓN BESTIA -e LAT=TUURLATITUD -e LARGO = TU LONGITUD -e ALT=TUALTITUD -e SHARING_KEY=TUCLAVE COMPARTIDA ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Obviamente deberías reemplazar YOURBEASTHOST
, YOURLATITUDE
, YOURLONGITUDE
, YOURALTITUDE
y YOURSHARINGKEY
con los valores apropiados.
Por ejemplo:
ejecución de la ventana acoplable -d --rm --nombre rbfeeder -e TZ="Australia/Perth" -e BEASTHOST=leeb -e LAT=-33.33333 -e LARGO=111.11111 -e ALT=90 -e COMPARTIR_KEY=g45643ab345af3c5d5g923a99ffc0de9 ghcr.io/sdr-enthusiasts/docker-radarbox:latest
Tenga en cuenta que la cifra de altitud se proporciona en metros y no se deben especificar unidades.
versión: '2.0'servicios: alimentador rb: imagen: ghcr.io/sdr-enthusiasts/docker-radarbox:latest tty: nombre_contenedor verdadero: rbfeeder reiniciar: siempre ambiente: - TZ=Australia/Perth - BEASTHOST=leeb - LAT=-33.33333 - LARGO=111.11111 -ALT=90 - SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9
Una vez que su contenedor esté en funcionamiento, debe reclamar su receptor.
Vaya a https://www.radarbox.com/
Crea una cuenta o inicia sesión
Reclame su receptor visitando https://www.radarbox.com/raspberry-pi/claim y siguiendo las instrucciones
Antes de plantear un problema relacionado con errores de conexión, espere al menos 10 minutos. El binario rbfeeder
está configurado para intentar conectarse a una colección de servidores en un método de operación por turnos. Parece normal que algunos servidores rechacen la conexión, por lo que puede llevar varios minutos encontrar un servidor disponible y conectarse. En el siguiente ejemplo, transcurrieron aproximadamente 6 minutos desde el inicio del contenedor hasta que se estableció la conexión.
Puedes intentar resolver esto configurando este parámetro:
- RB_SERVER=verdadero
Esto exigirá el uso de una dirección IP codificada que se sabe que funciona (a partir del 22 de noviembre de 2023). Lo conectará a un servidor europeo si se encuentra en el hemisferio oriental (incluido Asia/Oceanía), o a un servidor de EE. UU. si se encuentra en América.
También puede recibir un error falso Error authenticating Sharing-Key: Invalid sharing-key
. Siempre que haya ingresado su clave para compartir correctamente, ignórelo durante varios minutos.
Aquí hay un ejemplo de salida con RBFeeder versión 1.0.10 (compilación 20231120150000) que muestra el comportamiento antes mencionado:
[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
Hay una serie de variables de entorno disponibles:
Variable de entorno | Objetivo | Por defecto |
---|---|---|
BEASTHOST | Requerido. IP/nombre de host de un proveedor Mode-S/BEAST (dump1090/readsb) | readsb |
BEASTPORT | Opcional. Número de puerto TCP del proveedor Mode-S/BEAST (dump1090/readsb) | 30005 |
UAT_RECEIVER_HOST | Opcional. IP/nombre de host de un proveedor JSON externo descodificado UAT (por ejemplo: dump978-fa). | |
UAT_RECEIVER_PORT | Opcional. Número de puerto TCP del proveedor JSON externo descodificado UAT. | 30979 |
SHARING_KEY | Requerido. Clave para compartir Radarbox | |
LAT | Requerido. Latitud de la antena | |
LONG | Requerido. Longitud de la antena | |
ALT | Requerido. Altitud en metros | |
TZ | Opcional. Tu zona horaria local | GMT |
STATS_INTERVAL_MINUTES | Opcional. Con qué frecuencia imprimir estadísticas, en minutos. | 5 |
VERBOSE_LOGGING | Opcional. Establezca en true para no filtrar los registros de rbfeeder . | false |
DEBUG_LEVEL | Opcional. Establezca cualquier número entre 0 y 8 para aumentar la detalle de los registros de rbfeeder . | 0 |
ENABLE_MLAT | Opción. Establezca en true para habilitar MLAT dentro del contenedor. Consulte la nota MLAT a continuación | true |
MLAT_RESULTS_BEASTHOST | un nombre de host o IP, donde se deben enviar los resultados de MLAT. (deshabilita el puerto de escucha de resultados 30105) | |
MLAT_RESULTS_BEASTPORT | un número de puerto, especifique el número de puerto TCP donde se deben enviar los resultados de MLAT. | 30104 |
RB_SERVER | Opcional. Si se establece en true , el contenedor intentará conectarse a uno de los dos servidores de Radarbox que se sabe que funcionan a partir del 22 de noviembre de 2023. También puede configurarlo explícitamente con un nombre de host o una dirección IP. Si no está configurado, se utilizará la configuración predeterminada de RadarBox. | Desarmado |
Este contenedor utiliza los siguientes puertos TCP:
32088
- rbfeeder
escucha en este puerto, sin embargo, no puedo encontrar el uso para este puerto...
30105
: mlat-client
escucha en este puerto para proporcionar resultados de MLAT. (El puerto de escucha de resultados de mlat está deshabilitado cuando MLAT_RESULTS_BEASTHOST
está configurado para solucionar el error de rbfeeder)
Es posible que descubra que MLAT en su contenedor a menudo arroja errores en sus registros, como
[rbfeeder] Desconexión de mlat1.rb24.com:40900: No se recibieron datos (ni siquiera keepalives) durante 60 segundos [rbfeeder] Conectado al servidor de multilateración en mlat1.rb24.com:40900, protocolo de enlace
Es probable que esto, aunque no siempre, no sea causado por nada de lo que estés haciendo, sino por el propio servidor de Radarbox y, como tal, no hay nada que puedas hacer para solucionarlo. Verá en sus estadísticas de Radarbox muy pocos objetivos MLAT, si es que hay alguno, de su alimentador mientras hace esto.
Para evitar que el alimentador envíe spam a sus registros, puede configurar ENABLE_MLAT=false
en la configuración de su entorno para Radarbox y detendrá el servicio MLAT y los mensajes de registro. Tenga en cuenta que si hace esto y utiliza MLAT Hub, elimine Radarbox de su READSB_NET_CONNECTOR
en MLAT Hub
.
El contenedor utiliza internamente un binario llamado rbfeeder
para enviar datos al servicio RadarBox. Este binario lo proporciona AirNav (la compañía que opera RadarBox) como código cerrado y solo está disponible en formato armhf (32 bits) usando páginas del kernel de 4kb. Esto funcionará bien en Raspberry Pi 3B+, 4B y otros sistemas basados en ARM que utilizan Debian Linux de 32 o 64 bits con un tamaño de página de kernel de 4 kb. También funciona bien en Linux x86 donde usamos el emulador qemu
ARM para ejecutar el binario.
Debian Linux para Raspberry Pi 5 utiliza de forma predeterminada un kernel con tamaños de página de 16 kb, y esto no es compatible con el binario rbfeeder
. Verá fallas en los registros de su contenedor.
Puede verificar el tamaño de la página de su kernel con este comando: getconf PAGE_SIZE. Si el valor devuelto es 4096, entonces todo está bien. Si es otra cosa (por ejemplo, 16384 para un tamaño de página de 16 kb), deberá implementar la siguiente solución alternativa:
Agregue lo siguiente a /boot/firmware/config.txt (Debian 12 Bookworm o posterior) o /boot/config.txt (Debian 11 Bullseye o anterior) para usar un kernel con un tamaño de página de 4kb. Esto hará que el uso de la CPU en su Raspberry Pi 5 sea un poco menos eficiente, pero resolverá el problema de muchos paquetes de software que tienen el mismo problema. Después de cambiar esto, debes reiniciar tu sistema para que surta efecto:
kernel=kernel8.img
(un comando único para agregar esto sería:)
eco "kernel=kernel8.img" | sudo tee -a /boot/firmware/config.txt >/dev/null
Todos los procesos se registran en la salida estándar del contenedor y se pueden ver con docker logs [-f] container
.
Puede registrar un problema en el GitHub del proyecto.
También tengo un canal de Discord, siéntete libre de unirte y conversar.
Si recibe fallas de segmentación continuas dentro de este contenedor, consulte: #16 (comentario)