Automatic dependent surveillance – broadcast (ADS–B) 是 廣播式自動回報監視(ADS-B)[1]。航機每秒發射一次之航機位置、高度、位置完整性、航機識別、航機24 bit位址、速度及其他資料。只要準備一個簡易的 ADS-B 接收器,就可以收到這些訊息。下面介紹怎麼使用 dump1090 ,來觀察這些航機發送出來的訊息。
無論使用哪種方式啟動,都要先確定一些 driver 不會被自動載入。設定 driver blacklist 後,重開機讓設定生效。
$ cat << EOF > /tmp/blacklist-rtl-sdr.conf
blacklist dvb_usb_rtl28xxu
blacklist e4000
blacklist rtl2832
EOF
$ sudo mv /tmp/blacklist-rtl-sdr.conf /etc/modprobe.d
$ sudo reboot
接上 Realtek 2838 DVB-T usb stick。可以用 lsusb 確認己連接
$ lsusb
Bus 003 Device 014: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
接下來可以選擇使用 docker 或 snap 來啟動 dump1090
Docker
我的測試環境是 Debian 9.0 Stretch AMD64
使用 docker 來執行 docker hub 上己經包好的 dump1090
docker run --rm --it -p 8080:8080 --device=/dev/bus/usb inodes/docker-x86-rtlsdr-dump1090 --net
連接到 http://localhost:8080 就可以看到接收到的飛機訊號
Snap
我的測試環境是 Ubuntu 16.04 Xenial AMD64
安裝 adsb-box 並連接 snap interface。最後重新啟動服務
sudo snap install --beta adsb-box
sudo snap connect adsb-box:raw-usb
sudo snap connect adsb-box:process-control
sudo snap connect adsb-box:system-observe
sudo snap connect adsb-box:network-observe
sudo systemctl restart snap.adsb-box.dump1090.service
sudo systemctl restart snap.adsb-box.piaware.service
連接到 http://localhost:8080 就可以看到接收到的飛機訊號