©いらすとや.
dump1090-faとpiawareのバージョン7.1がリリースされました。7.0はラズパイ向けOSイメージファイルとしては2021年末頃にリリースされたかもしれませんが(未確認)、dump1090-faとpiawareは正式としてはアヤフヤで事実上スキップされたようです。ほぼ7.0と同じものが7.1として2022年1月12日前後にリリースされました。
dump1090-faとpiaware(piaware_builder)の7系はDebian 8.0 jessieのサポートが終了し、代わりにDebian 11.0 bullseyeがサポートされます。
dump1090-fa (6.0,6.1から7.0,7.1)の変更点
dump1090: Allow env vars (not only command line overrdies) to set CPU_FEATURES_{ARCH,UNAME}
dump1090: Treat ARCH=arm64 like ARCH=aarch64
dump1090: Try to respect CFLAGS/CPPFLAGS as far as possible; move required extra flags into a separate var
dump1090: Adaptive gain - more aggressively re-probe for higher gain after a decrease in gain due to increased noise floor
dump1090: Cleanup AVR parsing
SkyAware: Update aircraft db to 20211210
SkyAware: Cleanup unused Openlayers files
piaware (6.0,6.1から7.0,7.1)の変更点 (ほぼ無し?)
# how many seconds with no messages received from the ADS-B receiver before
# we will attempt to restart dump1090
dump1090-fa 7.1のビルドとインストール
dump1090-faを更新する場合は先に、/etc/default/dump1909-fa (設定ファイル)と /lib/systemd/system/dump1090-fa.service (systemd用サービス起動/停止用ファイル)の2つのファイルのバックアップを取る。(重要)
$ sudo systemctl stop dump1090-fa #dump1090-faサービスを停止
$ sudo systemctl disable dump1090-fa #dump1090-faサービスを無効化
$ sudo dpkg -r dump1090-fa #dump1090-faパッケージを削除
dump1090-faを停めて無効化してパッケージを削除する。パッケージを作らずにインストールした場合は3行目はできない。この辺りのやり方はそれぞれだとは思う。
dump1090-faをビルドするために必要になりそうなパッケージをインストールする。dump1090-faの4.0から6.1までのビルドが成功した環境なら追加パッケージは不要。
$ sudo apt install git lighttpd debhelper librtlsdr-dev pkg-config dh-systemd libncurses5-dev libbladerf-dev libusb-dev devscripts
$ cd ~
$ git clone https://github.com/flightaware/dump1090 dump1090-fa
$ cd dump1090-fa
$ dpkg-buildpackage -b --no-sign
またはRTL-SDR系レシーバ専用なら⬇
$ dpkg-buildpackage -b --no-sign --build-profiles=custom,rtlsdr
基本的には上でdebian用のパッケージが出来る。(dump1090-fa を参照)
$ cd ~
$ sudo dpkg -i dump1090-fa_7.1_arm64.deb
debian用パッケージを作ってインストールすればdump1090-faのサービス起動用ファイルは /lib/systemd/system/dump1090-fa.service にインストールされる。そのままでほぼ問題ないが、jsonファイルの出力先が普通のファイルシステムというのが大変気に入らない。PCサーバのようにHDDが書き込み先であれば気にしないがSBCのストレージのmicroSDカードのようなひ弱なメディアを上書きしまくると寿命が短くなる。そこで、RAMディスクである/tmp下にjsonファイルを出力するように変更する。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 # dump1090-fa service for systemd
[Unit]
Description = dump1090 ADS-B receiver (FlightAware customization)
Documentation = https://flightaware.com/adsb/piaware/
Wants = network.target
After = network.target
[Service]
User = dump1090
RuntimeDirectory = dump1090-fa
RuntimeDirectoryMode = 0755
ExecStartPre = /bin/bash -c '/bin/mkdir -p /tmp/dump1090-fa 2> /dev/null'
ExecStartPre = /bin/chmod 777 /tmp/dump1090-fa
ExecStart = /usr/share/dump1090-fa/start-dump1090-fa --write-json /tmp /dump1090-fa
SyslogIdentifier = dump1090-fa
Type = simple
Restart = on-failure
RestartSec = 30
RestartPreventExitStatus = 64
Nice = -5
[Install]
WantedBy = default.target
13,14行目は、jsonファイルの書き出し先の作成(2行挿入)
15行目の最後の方の黄色字部分がjsonファイルの書き出し先の変更箇所。
また、上のjsonファイルの出力先ほ変更した場合は合わせてlighttpdの設定ファイルを修正する。
/etc/lighttpd/conf-available/89-dump1090-fa.conf (修正)
/etc/lighttpd/conf-available/89-skyaware.conf (修正)
変更内容: /run/dump1090-fa/ → /tmp/dump1090-fa/
これを忘れるとウェブの地図上に航空機が表示されなくなる。
lighttpdの設定を変更したらlighttpdサービスを再起動する。
$ sudo systemctl restart lighttpd lighttpdサービスの再起動
この辺りは
dump1090 Prometheus ExporterでADS-B受信状況を監視する の中段に黃文字で書いてるので参照いただければ。
piaware 7.1のビルドとインストール
$ sudo apt install devscripts tcl8.6-dev python3-dev python3-venv dh-systemd libz-dev ← README.mdで必要とされているもの
$ sudo apt install libboost-system-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev ←おそらく他に足りないもの
インストールするパッケージが依存する他のパッケージもそれなりにインストールされる。
piaware 6.1までのビルドが成功していた環境であってもpiaware 7.1のビルドでは追加で必要なパッケージが1つある。
$ sudo apt install patchelf
piaware 4.0以降では、tcl-tlsの専用版が必要。piaware 4.0から6.1までのバージョンが動いている環境であればtcl-tlsはインストール済みの筈なのでビルドとインストールは不要。新規インストールであれば以下のようにtcl-tlsをビルドしてインストールする。
OSのパッケージにインストール可能なtcl-tlsがあったとしても、それは入れないよう注意 。
このtcl-tlsも扱いやすいようにパッケージとしてビルドしてインストールする。
$ sudo apt install tcl-dev chrpath
$ cd ~/ #ホームディレクトリで
$ git clone https://github.com/flightaware/tcltls-rebuild.git
$ cd tcltls-rebuild
$ ./prepare-build.sh buster #Armbian, Debianのバージョンがbusterの場合
$ cd package-buster #Armbian, Debianのバージョンがbusterの場合
$ sudo dpkg-buildpackage -b --no-sign
$ cd ../
$ sudo dpkg -i tcl-tls_1.7.16-1+fa1_arm64.deb
tcl-tlsは、piawareのビルドにはおそらく不要でインストール時に必要なものだがpiawareビルド前に作ってインストールしておく方が安心ではある。
すでにpiawareを稼働している場合(更新する場合)はディレクトリのバックアップとその下の3行を実行。
/var/cache/piawareディレクトリを念の為にバックアップする。(どこかの安全なディレクトリにコピーするだけで良いと思う)
$ sudo systemctl stop piaware #piawareサービスを停止
$ sudo systemctl disable piaware #piawareサービスを無効化
$ sudo dpkg -r piaware #piawareパッケージを削除
piawareを停めて無効化してパッケージを削除する。パッケージを作らずにインストールした場合は3行目はできない。この辺りのやり方はそれぞれだとは思う。
ここからpiawareのビルドとインストール。
$ cd ~/ (ここではホームディレクトリでビルドするということで)
$ git clone https://github.com/flightaware/piaware_builder.git
$ cd piaware_builder
$ ./sensible-build.sh buster ←Debian Buster系の場合
$ cd ~/piaware_builder/package-buster ←Debian Buster系の場合
$ dpkg-buildpackage -b --no-sign
正常にビルドできたらインストール
$ cd ..
$ sudo dpkg -i piaware_7.1~bpo10+1_arm64.deb
piawareの起動
$ sudo systemctl enable piaware #piawareの有効化
$ sudo systemctl start piaware #piawareの起動
piawareの設定は/etc/piaware.conf設定ファイルで行うことになっているが、新規でも更新でも基本的にはこのファイルは触る必要がない。(ADS-B周りの設定は設定ファイルには無い)
更新の場合は特に何もしなくてOKなので更新後のpiawareが動いている状態で、https://ja.flightaware.com/ にアクセス(要ログイン)して「マイADS-B」のページを開く。自身のフィーダー情報が表示されるので「サイト情報」のフィーダータイプを確認する。今回ならdebian用パッケージとしてビルドしたpiaware 7.1なので「PiAware (Debian Package Add-on) 7.1」のような表示になれば更新作業完了といえる。
piawareの運用が初めてという場合は、dump1090-fa + piawareを起動させた状態で、ブラウザでhttps://ja.flightaware.com/ にアクセスして会員登録する。
会員としてログインした状態でhttps://ja.flightaware.com/adsb/piaware/claim を開く。このときにpiawareの動いているPCやSBCとブラウザのPC等が同じNATのネットワークだと話はカンタン。そうでない場合はどうなるのか不明。
FlightAware.comにフィーダーとして参加することについては過去記事の「FlightAwareにフィードする 」の後半を参照してください。
dump1090-fa + piawareの4.0以降を運用してきた人にとっては7.1への更新は比較的カンタン。4.0までで運用していた人はtcl-tls(専用版)のインストールが必須。dump1090-faは6.0で設定ファイルのフォーマットが大きく変更になっているのでなるべく早めに新しいフォーマットの設定に移行 しておくのが良さそう。
dump1090-faとpiawareのビルドとインストールはこれまで幾つか記事にしたけど情報がバラケてわかりにくくなってたので今回は纏めたつもり。