AirNav RadarBox のrbfeeder
を実行する Docker コンテナ。 sdr-enthusiasts/readsb-protobuf と連携して動作するように設計されています。 x86_64
、 arm64
およびarm32v7
上でビルドおよび実行されます。
rbfeeder
ModeS/BEAST データを提供するホストまたはコンテナから ModeS/BEAST 情報を取得し、RadarBox にデータを送信します。
rbfeeder
の詳細については、データの共有を参照してください。
latest
( main
ブランチ、 Dockerfile
)
latest_nohealthcheck
上記のlatest
バージョンと同じです。ただし、このバージョンでは docker healthcheck が削除されています。これは、ヘルスチェックを必要としない、ヘルスチェックの手動無効化をサポートしていないプラットフォーム (Nomad など) を実行しているユーザーのために行われます。
バージョンおよびアーキテクチャ固有のタグが利用可能
現在、このイメージは次のアーキテクチャでプルして実行する必要があります。
amd64
: Linux x86-64
arm32v7
、 armv7l
: ARMv7 32 ビット (Odroid HC1/HC2/XU4、RPi 2B/3B)
arm64
、 aarch64
: ARMv8 64 ビット (RPi 4 64 ビット OS)
初めてのユーザーは、RadarBox 共有キーを取得する必要があります。
RadarBox 共有キーを取得するために、コンテナーの最初の実行時に、 rbfeeder
共有キーを生成し、これをコンテナー ログに出力します。
タイムアウト 300 秒の docker run --rm -それ -e ビースト=あなたのビースト -e LAT=あなたの緯度 -e LONG=あなたの長さ -e ALT=あなたの高度 ghcr.io/sdr-enthusiasts/docker-radarbox:最新
これにより、コンテナーが 5 分間実行され、共有キーが生成されるようになります。
YOURBEASTHOST
、 YOURLATITUDE
、 YOURLONGITUDE
、およびYOURALTITUDE
適切な値に置き換える必要があるのは明らかです。
コンテナーが起動するとすぐに、次の画面が表示されます。
[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)
コンテナーを起動するときに必要になるため、共有キーをメモしておきます。
初めてのユーザーではなく、別のインストールから移行している場合は、次のいずれかの方法を使用して共有キーを取得できます。
既存のレシーバーに SSH で接続し、コマンドrbfeeder --showkey --no-start
を実行します。
既存のレシーバーに SSH で接続し、コマンドgrep key= /etc/rbfeeder.ini
を実行します。
docker run
によるアップアンドランニングドッカーラン -d --rm --name rbfeeder -e TZ="あなたのタイムゾーン" -e ビースト=あなたのビースト -e LAT=あなたの緯度 -e LONG=あなたの長さ -e ALT=あなたの高度 -e SHARING_KEY=あなたの共有キー ghcr.io/sdr-enthusiasts/docker-radarbox:最新
明らかに、 YOURBEASTHOST
、 YOURLATITUDE
、 YOURLONGITUDE
、 YOURALTITUDE
およびYOURSHARINGKEY
適切な値に置き換える必要があります。
例えば:
ドッカーラン -d --rm --name rbfeeder -e TZ="オーストラリア/パース" -e BEASTHOST=readsb -e LAT=-33.33333 -e LONG=111.11111 -e ALT=90 -e SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9 ghcr.io/sdr-enthusiasts/docker-radarbox:最新
高度の数値はメートルで示されており、単位を指定する必要はないことに注意してください。
バージョン: '2.0'サービス: RBフィーダー: 画像: ghcr.io/sdr-enthusiasts/docker-radarbox:latest tty: truecontainer_name: rbfeeder 再起動: 常に 環境: - TZ=オーストラリア/パース - BEASTHOST=readsb - LAT=-33.33333 - LONG=111.11111 - ALT=90 - SHARING_KEY=g45643ab345af3c5d5g923a99ffc0de9
コンテナーが起動して実行されたら、レシーバーを要求する必要があります。
https://www.radarbox.com/ にアクセスします。
アカウントを作成するかサインインしてください
https://www.radarbox.com/raspberry-pi/claim にアクセスし、指示に従って受信機を請求してください。
接続エラーに関する問題を提起する前に、少なくとも 10 分待ってください。 rbfeeder
バイナリは、ラウンドロビン方式でサーバーのコレクションへの接続を試みるように構成されています。一部のサーバーが接続を拒否するのは正常であるため、使用可能なサーバーを見つけて接続するまでに数分かかる場合があります。以下の例では、コンテナの起動から接続が確立されるまでに約 6 分かかりました。
このパラメータを設定することで、これを解決できます。
- RB_SERVER=true
これにより、(2023 年 11 月 22 日の時点で) 機能することがわかっているハードコーディングされた IP アドレスの使用が強制されます。東半球 (アジア/オセアニアを含む) にお住まいの場合はヨーロッパのサーバーに接続され、南北アメリカにお住まいの場合は米国ベースのサーバーに接続されます。
また、 Error authenticating Sharing-Key: Invalid sharing-key
偽のエラーが表示される場合もあります。共有キーを正しく入力した場合は、数分間無視してください。
以下は、前述の動作を示す RBFeeder バージョン 1.0.10 (ビルド 20231120150000) での出力例です。
[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
利用可能な一連の環境変数があります。
環境変数 | 目的 | デフォルト |
---|---|---|
BEASTHOST | 必須。 Mode-S/BEAST プロバイダーの IP/ホスト名 (dump1090/readsb) | readsb |
BEASTPORT | オプション。 Mode-S/BEAST プロバイダーの TCP ポート番号 (dump1090/readsb) | 30005 |
UAT_RECEIVER_HOST | オプション。外部 UAT デコードされた JSON プロバイダーの IP/ホスト名 (例: dump978-fa)。 | |
UAT_RECEIVER_PORT | オプション。外部 UAT デコードされた JSON プロバイダーの TCP ポート番号。 | 30979 |
SHARING_KEY | 必須。レーダーボックス共有キー | |
LAT | 必須。アンテナの緯度 | |
LONG | 必須。アンテナの経度 | |
ALT | 必須。メートル単位の高度 | |
TZ | オプション。あなたのローカルタイムゾーン | GMT |
STATS_INTERVAL_MINUTES | オプション。統計を印刷する頻度 (分単位)。 | 5 |
VERBOSE_LOGGING | オプション。 rbfeeder ログのフィルタリングを行わない場合はtrue に設定します。 | false |
DEBUG_LEVEL | オプション。 rbfeeder ログの冗長性を高めるには、 0 ~ 8 の任意の数値に設定します。 | 0 |
ENABLE_MLAT | オプション。 true に設定すると、コンテナー内で MLAT が有効になります。以下の MLAT ノートを参照してください | true |
MLAT_RESULTS_BEASTHOST | MLAT 結果の送信先となるホスト名または IP。 (30105 結果リッスン ポートを無効にします) | |
MLAT_RESULTS_BEASTPORT | ポート番号。MLAT 結果を送信する TCP ポート番号を指定します。 | 30104 |
RB_SERVER | オプション。 true に設定すると、コンテナーは、2023 年 11 月 22 日の時点で動作することが確認されている 2 つの Radarbox サーバーのいずれかへの接続を試行します。明示的にホスト名または IP アドレスに設定することもできます。設定されていない場合は、RadarBox のデフォルト設定が使用されます。 | 設定を解除する |
このコンテナでは次の TCP ポートが使用されます。
32088
- rbfeeder
このポートをリッスンしますが、このポートの用途が見つかりません...
30105
- mlat-client
このポートをリッスンして MLAT 結果を提供します。 (rbfeeder のバグを回避するためにMLAT_RESULTS_BEASTHOST
が設定されている場合、mlat 結果のリッスン ポートが無効になります)
コンテナ内の MLAT がログに次のようなエラーを頻繁に吐き出すことがあります。
[rbfeeder] mlat1.rb24.com から切断中:40900: 60 秒間データ (キープアライブさえも) が受信されませんでした [rbfeeder] mlat1.rb24.com:40900 のマルチラテレーション サーバーに接続、ハンドシェイク
これは、常にではありませんが、ユーザーの操作が原因ではなく、Radarbox サーバー自体が原因である可能性が高いため、修正することはできません。これを実行している間、レーダーボックスの統計には、フィーダーからの MLAT ターゲットがあったとしても、ごくわずかしか表示されません。
フィーダーによるログのスパム送信を停止するには、Radarbox の環境設定でENABLE_MLAT=false
を設定できます。これにより、MLAT サービスとログ メッセージが停止します。これを実行し、MLAT Hub を使用する場合はMLAT Hub
のREADSB_NET_CONNECTOR
から Radarbox を削除してください。
コンテナーは内部でrbfeeder
と呼ばれるバイナリを使用して、RadarBox サービスにデータを送信します。このバイナリは AirNav (RadarBox を運営する会社) によってクローズド ソースとして提供されており、4kb カーネル ページを使用する armhf (32 ビット) 形式でのみ利用可能です。これは、Raspberry Pi 3B+、4B、および 4kb カーネル ページ サイズの 32 ビットまたは 64 ビット Debian Linux を使用するその他の ARM ベースのシステムでうまく機能します。また、バイナリを実行するためにqemu
ARM エミュレータを使用する x86 Linux でもうまく動作します。
Raspberry Pi 5 用の Debian Linux はデフォルトで 16kb ページ サイズのカーネルを使用しますが、これはrbfeeder
バイナリと互換性がありません。コンテナーのログに失敗が記録されます。
コマンド getconf PAGE_SIZE を使用して、カーネルのページ サイズを確認できます。返された値が 4096 であれば、すべて問題ありません。それ以外の場合 (たとえば、16 kb ページ サイズの場合は 16384)、次の回避策を実装する必要があります。
ページ サイズが 4kb のカーネルを使用するには、/boot/firmware/config.txt (Debian 12 Bookworm 以降) または /boot/config.txt (Debian 11 Bullseye 以前) に次の行を追加します。これにより、Raspberry Pi 5 全体の CPU 使用効率が若干低下しますが、同じ問題を抱えている多くのソフトウェア パッケージの問題は解決されます。これを変更した後、それを有効にするためにシステムを再起動する必要があります。
kernel=kernel8.img
(これを追加する 1 回限りのコマンドは次のようになります:)
echo "kernel=kernel8.img" | sudo tee -a /boot/firmware/config.txt >/dev/null
すべてのプロセスはコンテナーの標準出力に記録され、 docker logs [-f] container
を使用して表示できます。
プロジェクトの GitHub に問題を記録できます。
Discord チャンネルもありますので、お気軽に参加して会話してください。
このコンテナ内で継続的にセグメンテーション違反が発生する場合は、#16 (コメント) を参照してください。