ADS-Bの受信をしているが、multilateration(mlat)が正しく作動しない問題

VirtualBoxにインストールしたLinux上で、dump1090-fa と piaware を動かしてADS-Bを受信してるが、mlatによる情報が全然受信出ていないことに気が付いた。

原因を探ってみた。

現状確認(MLATの設定は有効だが、同期されない)

FlightAwareのステータス画面を確認したところ、MLATのマークはグリーンになっており設定上は有効になっていることが分かる。右側の表示では「Supported / Enabled」と表示されているので、ここでも設定上は有効になっているように見える。

しかし、本来ここには「synchronized with 43 nearby receivers」というように、いくつのFeederからのデータを同期しているかが表示される。上記の状態では同期できていない。

まず、dump1090-fa の状態を確認する。特に問題なく動いているようだ。

次に、piaware の状態を確認する。

piawareの状態を確認する方法は下記がある。

piaware -status
systemclt status piaware
cat /var/log/piaware.log
cat /run/piaware/status.json
journalctl -eu piaware

ステータス上は以上はなさそうだ。

VirtualBoxの設定見直しで治った

調べていると、VirtualBox上のLinuxでdump1090を実行していると、USBの時間同期関連の問題で時刻がずれてしまいMLATの同期ができなくなることがあるらしい。

海外の掲示板の投稿を見ると、下記の設定をすることでVirtualBoxを使っていてもMLAT同期ができたとのこと。

  1. Changed the system chipset to ICH9
  2. Unchecked the Hardware Clock in UTC Time box (probably doesn’t matter)
  3. Set the USB controller to 3.0 (xHCI)

いろいろと試したところ、私の環境では3番目のVirtualBoxのUSBコントローラの設定を変更することでMLAT同期が可能になった。

下図のように「USB 3.0 (xHCI) コントローラ」を選択するとOKであった。

↓下記のようにMLATの同期が開始された。

VMware Workstation Player ならデフォルト設定で同期成功

また、VirtualBoxの代わりにVMware Workstation Playerを使ってLinux環境を構築した場合は、USBの設定はデフォルトのままでMLAT同期に成功した。

無線

Posted by Takuma