FlightRadar24にフィードする

今回のキモはdump1090-faを使ってFlightAwareとFlightRadar24の両方にフィードするというもの。

前回はFlightAwareにフィードするようにした。今回はFlightRadar24にフィードさせたい。もちろん、FlightAwareへのフィードはそのまま継続するのでFlightRadar24へのフィードを追加するだけとなる。
FlightAwareはフィード用のソフトウエアのソースを公開しているのでバイナリが用意されていないプラットフォームではビルドすれば良いというのに対し、FlightRadar24ではソースを見つけられなかったのでパッケージ等が用意されていないプラットフォームではツライ?(探し方が悪いだけかもしれない)
今回もarm64のOrange Pi Zero Plusを使用するのだが、arm64用パッケージ等は用意されていないっぽい。RaspberryPi用の用(armel, armhf)なら一応動く筈なのでそれで我慢するしかない。
Raspberry Pi向けにはFlightRadar24向けフィード用クライアントのインストール用のスクリプトが用意されているのでそれを実行する。要するにRaspberry Piでのインストール方法そのまま。もちろんそれだけでは済まないんだけど。

2025年1月16日追記:
しばらくFlightRadar24から離れていたため提供開始時期は知らないのですが、arm64系コンピュータで動くarm64用パッケージが提供されるようになっていました。この記事の以下の手順のままで自動でアーキテクチャに応じて適切なパッケージがインストールされます。

fr24feedのインストール

もしもFlightRadar24のアカウントを所有していなければ1つ取得する。すでにアカウントを持っているならそのアカウントで登録したメールアドレスが判っていること。そのアカウントで登録したメールアドレスが必要。

2025年9月22日追記:
インストールコマンドは以下のようになったようです。

$ wget -qO- https://fr24.com/install.sh | sudo bash -s​

このコマンドでは以下のような内容が実行されているようです。(主要部分)

$ sudo apt install dirmngr gnupg
$ gpg --keyserver keyserver.ubuntu.com --recv-keys C969F07840C430F5
$ gpg --export --armor C969F07840C430F5 | sudo gpg --dearmor -o /etc/apt/keyrings/flightradar24.gpg
$ echo "deb [signed-by=/etc/apt/keyrings/flightradar24.gpg] https://repo-feed.flightradar24.com flightradar24 raspberrypi-stable" | sudo tee /etc/apt/sources.list.d/fr24feed.list
$ sudo apt update 
$ sudo apt install fr24feed
$ fr24feed --signup  ここで設定を行います
$ sudo systemctl enable fr24feed  
$ sudo systemctl restart fr24feed

追記ここまで

以下はFlightRadar24にフィードを行うホストで実行する。(古いコマンドです)

$ sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"
--2020-03-08 22:17:31--  https://repo-feed.flightradar24.com/install_fr24_rpi.sh
Resolving repo-feed.flightradar24.com (repo-feed.flightradar24.com)... 104.17.45.52, 104.17.43.52, 104.17.46.52, ...
Connecting to repo-feed.flightradar24.com (repo-feed.flightradar24.com)|104.17.45.52|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1281 (1.3K) [application/x-sh]
Saving to: ‘STDOUT’

-                             100%[==============================================>]   1.25K  --.-KB/s    in 0s      

2020-03-08 22:17:32 (8.52 MB/s) - written to stdout [1281/1281]

Hit:1 http://httpredir.debian.org/debian buster InRelease
Get:2 http://security.debian.org buster/updates InRelease [65.4 kB]
Get:3 http://httpredir.debian.org/debian buster-updates InRelease [49.3 kB]    
Get:4 http://httpredir.debian.org/debian buster-backports InRelease [46.7 kB]          
Hit:5 https://apt.armbian.com buster InRelease       
Get:6 http://httpredir.debian.org/debian buster-backports/main armhf Packages.diff/Index [27.8 kB]
Get:7 http://httpredir.debian.org/debian buster-backports/main arm64 Packages.diff/Index [27.8 kB]
Get:8 http://httpredir.debian.org/debian buster-backports/main arm64 Contents (deb).diff/Index [27.9 kB]
Get:9 http://httpredir.debian.org/debian buster-backports/main armhf Contents (deb).diff/Index [27.9 kB]
Get:10 http://httpredir.debian.org/debian buster-backports/main armhf Packages 2020-03-07-2013.52.pdiff [582 B]
Get:10 http://httpredir.debian.org/debian buster-backports/main armhf Packages 2020-03-07-2013.52.pdiff [582 B]
Get:11 http://httpredir.debian.org/debian buster-backports/main arm64 Packages 2020-03-07-2013.52.pdiff [583 B]
Get:11 http://httpredir.debian.org/debian buster-backports/main arm64 Packages 2020-03-07-2013.52.pdiff [583 B]
Get:12 http://httpredir.debian.org/debian buster-backports/main arm64 Contents (deb) 2020-03-07-2013.52.pdiff [415 B]
Get:12 http://httpredir.debian.org/debian buster-backports/main arm64 Contents (deb) 2020-03-07-2013.52.pdiff [415 B]
Get:13 http://httpredir.debian.org/debian buster-backports/main armhf Contents (deb) 2020-03-07-2013.52.pdiff [416 B]
Get:13 http://httpredir.debian.org/debian buster-backports/main armhf Contents (deb) 2020-03-07-2013.52.pdiff [416 B]
Fetched 275 kB in 7s (39.6 kB/s)                                                                                    
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
dirmngr is already the newest version (2.2.12-1+deb10u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Executing: /tmp/apt-key-gpghome.3uIyDpFGem/gpg.1.sh --recv-key --keyserver pool.sks-keyservers.net 40C430F5
gpg: key C969F07840C430F5: public key "Flightradar24 <support@fr24.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
Hit:1 http://security.debian.org buster/updates InRelease
Hit:2 http://httpredir.debian.org/debian buster InRelease                                                           
Get:3 http://repo.feed.flightradar24.com flightradar24 InRelease [13.0 kB]                                          
Hit:5 http://httpredir.debian.org/debian buster-updates InRelease                            
Hit:6 http://httpredir.debian.org/debian buster-backports InRelease
Get:7 http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf Packages [475 B]
Hit:4 https://apt.armbian.com buster InRelease        
Fetched 13.5 kB in 3s (4,304 B/s)
Reading package lists... Done
N: Skipping acquire of configured file 'raspberrypi-stable/binary-arm64/Packages' as repository 'http://repo.feed.flightradar24.com flightradar24 InRelease' doesn't support architecture 'arm64'
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  gcc-8-base:armhf libc6:armhf libgcc1:armhf libstdc++6:armhf
Suggested packages:
  glibc-doc:armhf locales:armhf
Recommended packages:
  libidn2-0:armhf
The following NEW packages will be installed:
  fr24feed:armhf gcc-8-base:armhf libc6:armhf libgcc1:armhf libstdc++6:armhf
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,402 kB of archives.
After this operation, 15.6 MB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian buster/main armhf gcc-8-base armhf 8.3.0-6 [191 kB]
Get:2 http://httpredir.debian.org/debian buster/main armhf libgcc1 armhf 1:8.3.0-6 [37.2 kB]     
Get:3 http://httpredir.debian.org/debian buster/main armhf libc6 armhf 2.28-10 [2,390 kB]          
Get:4 http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf fr24feed armhf 1.0.24-7 [3,446 kB]
Get:5 http://httpredir.debian.org/debian buster/main armhf libstdc++6 armhf 8.3.0-6 [338 kB]
Fetched 6,402 kB in 8s (840 kB/s)                                                                                   
Preconfiguring packages ...
Selecting previously unselected package gcc-8-base:armhf.
(Reading database ... 55491 files and directories currently installed.)
Preparing to unpack .../gcc-8-base_8.3.0-6_armhf.deb ...
Unpacking gcc-8-base:armhf (8.3.0-6) ...
Selecting previously unselected package libgcc1:armhf.
Preparing to unpack .../libgcc1_1%3a8.3.0-6_armhf.deb ...
Unpacking libgcc1:armhf (1:8.3.0-6) ...
Selecting previously unselected package libc6:armhf.
Preparing to unpack .../libc6_2.28-10_armhf.deb ...
Unpacking libc6:armhf (2.28-10) ...
Selecting previously unselected package libstdc++6:armhf.
Preparing to unpack .../libstdc++6_8.3.0-6_armhf.deb ...
Unpacking libstdc++6:armhf (8.3.0-6) ...
Selecting previously unselected package fr24feed:armhf.
Preparing to unpack .../fr24feed_1.0.24-7_armhf.deb ...
Unpacking fr24feed:armhf (1.0.24-7) ...
Setting up gcc-8-base:armhf (8.3.0-6) ...
Setting up libc6:armhf (2.28-10) ...
Setting up libgcc1:armhf (1:8.3.0-6) ...
Setting up libstdc++6:armhf (8.3.0-6) ...
Setting up fr24feed:armhf (1.0.24-7) ...
You don't seem to have any dump1090 installed. On the fr24feed start it will automatically install dump1090-mutability.
Created symlink /etc/systemd/system/multi-user.target.wants/fr24feed.service → /etc/systemd/system/fr24feed.service.
Processing triggers for libc-bin (2.28-10) ...
20-03-08 22:21:07.179 [E] Local time: 2020-03-08 22:21:07 +0900
error | GMT+0 time: 2020-03-08 13:21:07 +0900
error | Your machine should be set as GMT+0 time zone!
warning | Time zone is not set to GMT+0
______  _  _         _      _                    _              _____    ___ 
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |                                                         
              |___/                                                          
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.24-7/generic
[main][i]Built on Nov  7 2019 11:23:04 (HEAD-be32703.git/Linux/static_armel)
[main][i]Running on: debian10
[main][i]Local IP(s): 192.168.***.*** fdc1:****:****::****
[main][i]Copyright 2012-2019 Flightradar24 AB
[main][i]https://www.flightradar24.com
[main][i]DNS mode: PING

Welcome to the FR24 Decoder/Feeder sign up wizard!

Before you continue please make sure that:

 1 - Your ADS-B receiver is connected to this computer or is accessible over network
 2 - You know your antenna's latitude/longitude up to 4 decimal points and the altitude in feet
 3 - You have a working email address that will be used to contact you
 4 - fr24feed service is stopped. If not, please run: sudo systemctl stop fr24feed

To terminate - press Ctrl+C at any point


Step 1.1 - Enter your email address (username@domain.tld)
$:hoge@example.com  ←FlightRadar24アカウントで登録したメールアドレス

Step 1.2 - If you used to feed FR24 with ADS-B data before, enter your sharing key.
If you don't remember your sharing key, you can find it in your account on the website under "My data sharing".
https://www.flightradar24.com/account/data-sharing

Otherwise leave this field empty and continue.
$:

Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:yes

IMPORTANT: For MLAT calculations the antenna's location should be entered very precise!

Step 3.A - Enter antenna's latitude (DD.DDDD)
$:35.****   ←アンテナ設置場所の緯度

Step 3.B - Enter antenna's longitude (DDD.DDDD)
$:136.****  ←アンテナ設置場所の経度

Step 3.C - Enter antenna's altitude above the sea level (in feet)
$:400  ←アンテナ設置場所の海抜(デタラメでなく)

Using latitude: 35.xxxx, longitude: 136.xxxx, altitude: 400ft above sea level

Validating email/location information...OK

The closest airport found is ICAO:RJNG IATA:*** near ****.  ←直近の空港(勝手に表示される)

Latitude: 3x.xxxxxx   ←直近の空港の緯度(勝手に表示される)
Longitude: 13x.xxxxxx  ←直近の空港の経度(勝手に表示される)
Country: Japan

Flightradar24 may, if needed, use your email address to contact you regarding your data feed.

Would you like to continue using these settings?

Enter your choice (yes/no)$:yes

We have detected that you already have a dump1090 instance running. We can therefore automatically configure the FR24 feeder to use existing receiver configuration, or you can manually configure all the parameters.

Would you like to use autoconfig (*yes*/no)$:yes

Step 6 - Please select desired logfile mode:
 0 -  Disabled
 1 -  48 hour, 24h rotation
 2 -  72 hour, 24h rotation
Select logfile mode (0-2)$:1  ←普通は0で良い筈

Submitting form data...OK

Congratulations! You are now registered and ready to share ADS-B data with Flightradar24.
+ Your sharing key (**共有鍵**) has been configured and emailed to you for backup purposes.
+ Your radar id is *-**レーダーID**, please include it in all email communication with us.
+ Please make sure to start sharing data within one month from now as otherwise your ID/KEY will be deleted.

Thank you for supporting Flightradar24! We hope that you will enjoy our Premium services that will be available to you when you become an active feeder.

To start sending data now please execute:
sudo systemctl start fr24feed

Saving settings to /etc/fr24feed.ini...OK
Installation and configuration completed!

設定は、やり直しができるし結局は設定ファイルの/etc/fr24feed.ini(他に/var/cache/piawareのファイルなども)が書き換わるというものなのでそれを編集しても良いので間違って登録しても大丈夫。ただし、大切なフィード用の共有鍵がここで発行されていることに注意。発行された共有鍵はFlightRadar24からメールでも届くし、FlightRadar24のウェブサイト上でも表示されるのでコンソールログを失っても設定ファイルを消してしまっても大丈夫ではあるけど。あと、レーダーIDも発行される。

動作ステータスの確認

$ sudo service fr24feed status
● fr24feed.service - Flightradar24 Decoder & Feeder
   Loaded: loaded (/etc/systemd/system/fr24feed.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-03-08 22:47:11 JST; 3min 56s ago
  Process: 6620 ExecStartPre=/usr/lib/fr24/install_dump1090.sh (code=exited, status=0/SUCCESS)
  Process: 6624 ExecStartPre=/usr/lib/fr24/unregister_kernel_modules.sh (code=exited, status=0/SUCCESS)
  Process: 6628 ExecStartPre=/usr/lib/fr24/create_missing_directories.sh (code=exited, status=0/SUCCESS)
 Main PID: 6631 (fr24feed)
    Tasks: 18 (limit: 410)
   Memory: 9.5M
   CGroup: /system.slice/fr24feed.service
           └─6631 /usr/bin/fr24feed

Mar 08 22:47:11 orangepizeroplus systemd[1]: Starting Flightradar24 Decoder & Feeder...
Mar 08 22:47:11 orangepizeroplus systemd[1]: Started Flightradar24 Decoder & Feeder.
動作はしているかな程度。まぁエラーでなさそうならOK.

FlightRadar24にフィードする 1
ブラウザでfr24feedが動いているホストのポート8754を開く。(http://IPアドレス:8754)
ステータスが正常風に表示されることもあるようだが、しばらく見ているとステータスが頻繁に変わり接続切れやエラーなど滅茶苦茶。

もう一つのステータスを見てみる。
$ fr24feed --status
20-03-09 09:34:21.803 [E] Local time: 2020-03-09 09:34:21 +0900
error | GMT+0 time: 2020-03-09 00:34:21 +0900
error | Your machine should be set as GMT+0 time zone!
warning | Time zone is not set to GMT+0
2020-03-09 09:34:21 | ______  _  _         _      _                    _              _____    ___ 
2020-03-09 09:34:21 | |  ___|| |(_)       | |    | |                  | |            / __  \  /   |
2020-03-09 09:34:21 | | |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
2020-03-09 09:34:21 | |  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
2020-03-09 09:34:21 | | |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
2020-03-09 09:34:21 | \_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
2020-03-09 09:34:21 |                __/ |                                                         
2020-03-09 09:34:21 |               |___/                                                          
2020-03-09 09:34:21 | [main][i]FR24 Feeder/Decoder
2020-03-09 09:34:21 | [main][i]Version: 1.0.24-7/generic
2020-03-09 09:34:21 | [main][i]Built on Nov  7 2019 11:23:04 (HEAD-be32703.git/Linux/static_armel)
2020-03-09 09:34:21 | [main][i]Running on: debian10
2020-03-09 09:34:21 | [main][i]Local IP(s): 192.168.***.*** fdc1:****:****:****::****
2020-03-09 09:34:21 | [main][i]Copyright 2012-2019 Flightradar24 AB
2020-03-09 09:34:21 | [main][i]https://www.flightradar24.com
2020-03-09 09:34:21 | [main][i]DNS mode: PING
2020-03-09 09:34:21 | [main][i]Automatic updates are ENABLED
2020-03-09 09:34:21 | [httpd][e]bind function failed, errno: 98
2020-03-09 09:34:23 | [i]PacketSenderConfiguration::fetch_config(): Yoda configuration for this receiver is disabled
2020-03-09 09:34:23 | [d]TLSConnection::ctor(): Enable verify_peer in production code!
2020-03-09 09:34:23 | [master][i]Starting processing thread
2020-03-09 09:34:23 | [main][i]Reader thread started
2020-03-09 09:34:23 | [main][i]MLAT data feed started
2020-03-09 09:34:23 | [reader][i]Initializing reader
2020-03-09 09:34:23 | [mlat][i]Waiting for MLAT configuration
2020-03-09 09:34:23 | [reader][i]Connecting to DVBT-TCP-BEAST-RAW receiver via (tcp://localhost:30005)
2020-03-09 09:34:23 | [reader][i]Connected to the receiver, configuring
2020-03-09 09:34:23 | [reader][i]Configured, processing messages
2020-03-09 09:34:23 | [reader][i]Timestamp source changed from UNKNOWN to SYSTEM-UNCERTAIN
2020-03-09 09:34:24 | [time][i]Synchronizing time via NTP
Bus error

ステータスと書いたけど、ログファイルにも同じものが記録されている。ステータスが変わる度に上と同じものがログファイルに記録される。ログファイルが無駄に肥大するので意味がわからない。
目立つところではタイムゾーンがGMT+0になっていないというところかな。ローカルのタイムゾーンを認識した上でエラーというのは酷い造りかも。最後に唐突に表示されるBus errorはなんだろう。

もう一つ
$ fr24feed-status
[ ok ] FR24 Feeder/Decoder Process: running.
[ ok ] FR24 Stats Timestamp:.
[FAIL] FR24 Link: unknown ... failed!
[FAIL] Receiver: down ... failed!
[FAIL] FR24 MLAT: not running ... failed!

何がエラーになっているかは、意外にもこれが一番わかり易い。

FlightRadar24にフィードする 2
https://www.flightradar24.com/でMY DATA SHARINGのページを開いた。
レーダーIDと共有鍵はここでも表示される。一番右のShow statisticsをクリックする。

FlightRadar24にフィードする 3
ゼロではないにしても殆どフィード出来ていない。

問題を解決しようと足掻く

インストールされているパッケージのリスト見た。dump1090-faの他にもう一つdump1090-mutabilityが勝手にインストールされちゃってる???
dump1090-mutabilityは要らないのでサクッと消すことに。

$ sudo service dump1090-mutability stop   サービス停止
$ sudo systemctl disable dump1090-mutability  サービス無効化
$ sudo apt purge dump1090-mutability  パッケージ削除
こうなるとfr24feedのサービス起動用ファイルも確認しないといけない。
/etc/systemd/system/fr24feed.serviceを見る。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Flightradar24 Decoder & Feeder
After=network-online.target

[Service]
Type=simple
Restart=always
LimitCORE=infinity
ExecStartPre=-/usr/lib/fr24/install_dump1090.sh
ExecStartPre=-/usr/lib/fr24/unregister_kernel_modules.sh
ExecStartPre=-/usr/lib/fr24/create_missing_directories.sh
ExecStart=/usr/bin/fr24feed
User=fr24
Group=fr24
PermissionsStartOnly=true
StandardOutput=null

[Install]
WantedBy=multi-user.target
9行目、実行前に/usr/lib/fr24/install_dump1090.shを走らせるとなっている。その install_dump1090.sh では、 /etc/fr24feed.ini の中でreceiver行が*dvbtの場合に /usr/lib/fr24/dump1090 が存在しなければ dump1090-mutability をインストールすることになっている。これのせいで dump1090-mutability がインストールされたのかしら?条件に当てはまる指定なんかしてないんだけどなぁ。
10行目、/usr/lib/fr24/unregister_kernel_modules.shも内容的にArmbianの現在のバージョンでは要らないかと。
なので9行目と10行目は不要ということで行頭に # を追加してコメントにした。
11行目、/usr/lib/fr24/create_missing_directories.shは、ファイル内のcreate_dir_if_not_exists "/run/dump1090-mutability" "a+rwx"の行が要らない。これもその行頭に # を追加。
と、いうことだけど、サービス有効中にはいきなりこのファイルは編集しない。(次へ)

$ sudo service fr24feed stop     サービス停止
$ sudo systemctl disable fr24feed   サービス無効化
これをした上で/etc/systemd/systemにfr24feed.serviceを編集
$ sudo systemctl enable fr24feed   サービス有効化
$ sudo service fr24feed start    サービス開始
または上の代わりに/etc/systemd/systemにfr24feed.service編集後に
$ sudo systemctl daemon-reload

残念ながらdump1090-mutabilityを消してfr24feedの起動周りの変更をしただけでは接続エラー等は直らなかった。
RTL-SDRデバイスがdump1090-faに取られているのでfr24feedがdump1090-mutabilityからデータを貰おうとしても貰えないとか、ポートが正常に使えないとかかなと思ったけど違うみたい。

問題解決のための設定変更

2020年3月19日追記(青字部分):
ポート設定の前提条件である接続先のdump1090-faの設定を書き忘れていた。
dump1090-faのポート設定は多くの人が使っていると思われるサンプル設定(デフォルト設定)と同じ。

--net-ro-port 30002   (TCP raw output listen ports)
--net-sbs-port 30003   (TCP BaseStation output listen ports)
--net-bi-port 30004,30104   (TCP Beast input listen ports)
--net-bo-port 30005   (TCP Beast output listen ports)

dump1090-faの使用ポート
どうもレシーバとポートが怪しいなということでfr24feedの設定を変更する。(/etc/fr24feed.iniの変更でも可)

$ sudo fr24feed --reconfigure
______  _  _         _      _                    _              _____    ___ 
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |                                                         
              |___/                                                          
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.24-7/generic
[main][i]Built on Nov  7 2019 11:23:04 (HEAD-be32703.git/Linux/static_armel)
[main][i]Running on: debian10
[main][i]Local IP(s): 192.168.***.*** fdc1:****:****::****
[main][i]Copyright 2012-2019 Flightradar24 AB
[main][i]https://www.flightradar24.com
[main][i]DNS mode: PING

Welcome to the FR24 Decoder/Feeder sign up wizard!

Before you continue please make sure that:

 1 - Your ADS-B receiver is connected to this computer or is accessible over network
 2 - You know your antenna's latitude/longitude up to 4 decimal points and the altitude in feet
 3 - You have a working email address that will be used to contact you
 4 - fr24feed service is stopped. If not, please run: sudo systemctl stop fr24feed

To terminate - press Ctrl+C at any point

Step 4.1 - Receiver selection (in order to run MLAT please use DVB-T stick with dump1090 utility bundled with fr24feed):

 1 - DVBT Stick (USB)
 -----------------------------------------------------
 2 - SBS1/SBS1er (USB/Network)
 3 - SBS3 (USB/Network)
 4 - ModeS Beast (USB/Network)
 5 - AVR Compatible (DVBT over network, etc)
 6 - microADSB (USB/Network)
 7 - SBSx via Basestation (localhost:30006)


Enter your receiver type (1-7)$:5  ←重要

Step 4.2 - Please select connection type:

 1 - Network connection
 2 - USB directly to this computer

Enter your connection type (1-2)$:1

Step 4.3A - Please enter your receiver's IP address/hostname
$:127.0.0.1

Step 4.3B - Please enter your receiver's data port number
$:30003  ←重要

Step 5.1 - Would you like to enable RAW data feed on port 30334 (yes/no)$:no

Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:no

Step 6 - Please select desired logfile mode:
 0 -  Disabled
 1 -  48 hour, 24h rotation
 2 -  72 hour, 24h rotation
Select logfile mode (0-2)$:0

Saving settings to /etc/fr24feed.ini...OK
Settings saved, please run "sudo systemctl restart fr24feed" to use new configuration.

ググると、レシーバ:avr-tcp+ポート:30002 または レシーバ:beast-tcp+ポート:30005を指定する記事しか見かけなかったが、dump1090-faとfr24feedの組み合わせではレシーバ:beast-tcp+ポート30105 (30005ではない)(30105はMLATっぽいので修正) avr-tcp+ポート30003を指定しないとダメだった。

おそらく、これがキモなんだと思うけど、本当にこれで正しいのかは不明。

/etc/fr24feed.ini (変更後)
1
2
3
4
5
6
7
8
9
receiver="avr-tcp"
fr24key="hagehoge12345678"  #共有鍵は自身のものに変えて
host="127.0.0.1:30003"
bs="no"
raw="no"
logmode="0"
logpath="/var/log/fr24feed"
mlat="yes"
mlat-without-gps="yes"

設定ファイルはこんな風になった。(初稿はbeast-tcp + port 30105だったがMLATっぽいのでavr-tcp + 30003に変更)

$ sudo service fr24feed restart

サービス再起動から30秒ほど待ってからステータスを確認。確認が早すぎるとFAILが出てるかもしれないので異常が継続していると勘違いする。

$ fr24feed-status
[ ok ] FR24 Feeder/Decoder Process: running.
[ ok ] FR24 Stats Timestamp: 2020-03-09 06:15:47.
[ ok ] FR24 Link: connected [UDP].
[ ok ] FR24 Radar: X-XXXXX.
[ ok ] FR24 Tracked AC: 13.
[ ok ] Receiver: connected (129890 MSGS/0 SYNC).
[ ok ] FR24 MLAT: ok [UDP].
[ ok ] FR24 MLAT AC seen: 11.

うん、良い感じ。

FlightRadar24にフィードする 4
再びブラウザでfr24feedが動いているホストのポート8754を開く。(http://IPアドレス:8754)
今度は正常そう。(それが完璧な動作なのかは不明)

FlightRadar24にフィードする 5
昨日に不安定な送信がごく僅かと、今日は設定を直してすぐこの統計ページを開いたので送信したデータはまだ少ないけど、とりあえずデータが流れている感じなので一応正常そう。MLATがどうなのか不安だけど。

簡単そうで意外と苦労した。
あと、動くと判っていてもarmel, armhf用は気持ち悪いので、できればfr24feedをarm64用にビルドしたい。

FlightRadar24にフィードする 6
フィードとは関係ないけど、FlightRadar24の方がFlightAwareより使いやすい気がする。表示も「がとらぼ」の中の人のようなド素人受けしそうな感じだし。

関連記事:

FlightAwareにフィードする

週の前半に見た週間天気予報ではせっかくの週末が天気悪いということだったが、土曜日は夕方まで雨が降らずむしろ晴れていたくらいで、これ幸いにアンテナを屋根の高さに上げた。

コリニアアンテナを屋根に上げた
事情があって、前回とは屋根自体が違う。倉庫の鉄筋から単管をドーンと外に突き出した形。⌀48.6ミリのありふれた単管と⌀32ミリの細めの単管を直交クランプで交差し、そこに「なんちゃってコリニアアンテナ」を留めた。パイプの太さが違う用の筋交金具は見つけられなかったので支え無し。直交クランプだけだとちょっと強度が心配ではある。単管はそれぞれキャップを付けた。(上下の単管の下端は無し)
アンテナを屋根に上げるまでは、アンテナの入ったJ管の上端を自己融着テープで防水してビニールテープで保護して地上に置いたアンテナポールに建てていたのだが、親からの報告によると、鳥が留っていたのと、野良猫の子供がアンテナにじゃれていたとのことで、短期間であったにも関わらずビニールテープの保護部がみごとに破壊されていた。そこで、融着テープとビニールテープの保護をやりなおした上で、鳥の足で破壊されないようパイプキャップを被せてさらにビニールテープを巻きつけて固定した。(キャップの耐候性が心配だった)

カバレッジ
アンテナを上げてからフィードの準備のためにdump1090-faを停めるまで数時間ほど取得したカバレッジ。このカバレッジはアンテナを上げてから新規に取得し直したものなので北西方向はアンテナが地上にあったときよりも50kmほど狭くなっている。カバレッジを見るなら少なくとも24時間は取得した方が良さそう。で、東北東側は長野県まで到達し、南西側も和歌山・奈良に突入した。しかし、期待される見晴らしよりもまだだいぶ狭い。まぁ、想定されるカバレッジの内側ぎりぎりを航空機が飛んでくれないとカバレッジとして描かれないので、取得開始から僅か数時間では無理というものではある。

フィードしたい

dump1090-faと受信データをマップにプロットするアプリで航空機の飛行状況をPCで見て薄気味悪くニヤニヤできるようになったわけだが、せっかくなのでデータを共有することにしたい。フィード先は大手だとFlightradar24、FlightAware、planetfinder、RadarBox (RadarBox24)、ADS-B Exchangeとか? dump1090-faを使っているからというわけではないが、今回はFlightAwareに参加することにした。
Raspberry Piを使っていたら、それ用に提供されているイメージファイルをMicroSDカードに焼くだけとかパッケージをインストールするだけとかとにかく簡単なのだろうが、arm64のOrange Pi Zero Plusなので少しだけ手間がかかる。

FlightAwareにデータをフィードするにはクライアントのアプリケーションとしてPiAwareが必要。受信用のdump1090-faは前回そのまま。 そのPiAwareがOrange Pi Zero Plus + Armbian (Debian Buster)ではそこら辺からダウンロードしてインストールして終わりとはいかない部分。 まぁ、ビルドするだけなんだけど。

PiAwareのビルド

必要なパッケージをインストールする。dump1090-faをビルドしたときにインストールしたパッケージが残っているものとする。

$ sudo apt install tcl8.6-dev python3-venv      ← README.mdで必要とされているもの
$ sudo apt install libboost-system-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev devscripts python3-dev     ←おそらく他に足りないもの

インストールするパッケージが依存する他のパッケージもそれなりにインストールされる。

$ git clone https://github.com/flightaware/piaware_builder.git
$ cd piaware_builder
$ ./sensible-build.sh buster   ←重要
使用中のOS(ArmbianのDebian)のバージョンを引数として指定。今回は buster を付けた。
暫く進行して以下の表示で終われば正常。 Ok, package is ready to be built in ./package-buster
run 'dpkg-buildpackage -b' there (or move it to a Pi and do so there, or use pbuilder, etc)

flightaware_builderディレクトリの下にpackage-busterディレクトリが作成されている。

$ cd ~/piaware_builder/package-buster   ←最後のbusterは自身の使用中のOSに合うものを(というか上のメッセージに書かれているのに従う)。
ここまでがビルドの準備。
ビルド
$ dpkg-buildpackage -b --no-sign

中略

make[2]: Entering directory '/home/hoge/piaware_builder/package-buster/dump978'
g++ -g -O2 -fdebug-prefix-map=/home/hoge/piaware_builder/package-buster=. -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -Wdate-time -D_FORTIFY_SOURCE=2 -DVERSION=\"3.8.0\"  -c -o faup978_main.o faup978_main.cc
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [: faup978_main.o] Error 1
make[2]: Leaving directory '/home/hoge/piaware_builder/package-buster/dump978'
make[1]: *** [debian/rules:54: build_dump978] Error 2
make[1]: Leaving directory '/home/hoge/piaware_builder/package-buster'
make: *** [debian/rules:95: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

ビルド失敗。メモリが足りてなくて停まったっぽい。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          479Mi       101Mi       260Mi       2.0Mi       117Mi       366Mi
Swap:         239Mi          0B       239Mi

うわっ少なっ! まぁ登載メモリが512MBでストレージがMicroSDカードなシングルボードコンピュータだからこんなもんだよね。こりゃ「空きメモリ使い切り+スワップ使い果たし」も仕方ない。

Linuxの作法はよく知らないけどスワップを一時的に拡張することにした。
現在のスワップを停止。

$ sudo swapoff -a
$ free -h
              total        used        free      shared  buff/cache   available
Mem:          479Mi       101Mi       259Mi       2.0Mi       118Mi       366Mi
Swap:            0B          0B          0B

スワップをオフにしたので当然0バイトになった。
臨時スワップ用のイメージファイルを1GBで作成する。

$ sudo dd if=/dev/zero of=/swap.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 55.3854 s, 19.4 MB/s

ファイル作成にはちょっと時間がかかるかも。

$ sudo chmod 600 /swap.img  おそらくパーミッションを変更しないと次がNG
$ sudo mkswap /swap.img 作成したファイルをスワップファイルに指定。
$ sudo swapon /swap.img  作成したスワップをオンにする。
$ free -h
              total        used        free      shared  buff/cache   available
Mem:          479Mi       102Mi        59Mi       2.0Mi       316Mi       364Mi
Swap:         1.0Gi          0B       1.0Gi

これで1GBのスワップが有効になった。
これは設定ファイルを書き込んではいないのでシステム再起動で変更前に戻る。ただし、1GBの/swap.imgは残るので不要になったら消す。

2020年5月21日追記:
大物ビルド時ではなく通常時のためのスワップ設定について。
システム負荷が低いときでも遠慮せずにガンガンSwapするのが最近のArmbainの初期値みたい。昔のSLCならともかく最近のTLCのようなアホみたいに耐久性の低いmicroSDカードでスワップしまくると早々に壊れる可能性がある。そこで、本当のメモリ不足(非常時)のためのスワップは活かしたまま、普段はなるべくスワップさせない設定。
変更するファイル /etc/sysctl.conf (追記または修正 1行)
vm.swappiness=1
Armbianだと何故か初期値100で書かれているかもしれないので1にする。0にはしない。
$ sudo sysctl vm.swappiness=1 (システム起動後に手動でただちに設定を反映させたい場合)

再ビルドする。

$ cd ~/piaware_builder/package-buster
$ dpkg-buildpackage -b
今度は正常にビルドできた。

1階層上の~/piaware_builderに戻るとpiawareのパッケージが出来ているのでそれをインストールする。
今回はpiaware_3.8.0_arm64.deb

$ sudo dpkg -i piaware_3.8.0_arm64.deb
Selecting previously unselected package piaware.
(Reading database ... 53203 files and directories currently installed.)
Preparing to unpack piaware_3.8.0_arm64.deb ...
Unpacking piaware (3.8.0) ...
dpkg: dependency problems prevent configuration of piaware:
 piaware depends on tclx8.4; however:
  Package tclx8.4 is not installed.
 piaware depends on tcllib; however:
  Package tcllib is not installed.
 piaware depends on tcl-tls; however:
  Package tcl-tls is not installed.
 piaware depends on itcl3; however:
  Package itcl3 is not installed.

dpkg: error processing package piaware (--install):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.28-10) ...
Processing triggers for systemd (241-7~deb10u3) ...
Processing triggers for rsyslog (8.1901.0-1) ...
Processing triggers for man-db (2.8.5-2) ...
Errors were encountered while processing:
 piaware

まだパッケージが足りないとかいってる。しかも、古いバージョンを要求してる。面倒ねぇ。

$ apt install tclx8.4 tcllib tcl-tls itcl3
$ apt install --fix-broken

$ sudo dpkg -i piaware_3.8.0_arm64.deb
(Reading database ... 55491 files and directories currently installed.)
Preparing to unpack piaware_3.8.0_arm64.deb ...
Unpacking piaware (3.8.0) over (3.8.0) ...
Setting up piaware (3.8.0) ...
Processing triggers for libc-bin (2.28-10) ...
Processing triggers for systemd (241-7~deb10u3) ...
Processing triggers for rsyslog (8.1901.0-1) ...
Processing triggers for man-db (2.8.5-2) ...
今度は大丈夫。

「今度は大丈夫」なのはPiAware3.8の場合で、4.0ではtcl-tlsが専用版が要るみたい。そのビルドについてはdump1090-faとPiAwareをVersion 4.0に更新に書いている。

$ sudo piaware-config allow-auto-updates yes
$ sudo piaware-config allow-manual-updates yes

これで設定ファイルの/etc/piaware.confに設定が2行追加される。
flightaware.com側からの操作が受け付けられる。(後のMLATの設定で使われる)
その他の設定はPiAware 3 Advanced Configurationを参照。特に何か無ければ追加指定する必要はなさそうだけど。

起動中のPiAwareの未指定値含めて全オプション状態を表示するなら piaware-config -showall (これはこの記事では省略)

$ piaware-status
PiAware master process (piaware) is running with pid 1321.
PiAware ADS-B client (faup1090) is running with pid 1352.
PiAware ADS-B UAT client (faup978) is not running (disabled by configuration settings)
PiAware mlat client (fa-mlat-client) is running with pid 15669.
Local ADS-B receiver (dump1090-fa) is running with pid 1117.

dump1090-fa (pid 1117) is listening for ES connections on port 30005.
faup1090 is connected to the ADS-B receiver.
piaware is connected to FlightAware.

dump1090 is producing data on localhost:30005.

Your feeder ID is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (from /var/cache/piaware/feeder_id)
稼働中のステータス表示はこんなの。動いているべきもの停まってるべきものを確認する。

システムを再起動してpiawareが自動起動することを確認する。

FlightAware.com参加

ブラウザでhttps://ja.flightaware.com/にアクセスして会員登録する。
会員としてログインした状態でhttps://ja.flightaware.com/adsb/piaware/claimを開く。

FlightAware.com参加 1
グローバルIPアドレスを見てるのかな?シングルボードコンピュータのpiawareと同じNATにいるPCでアクセスしたら特に何もせずに自動的にアカウントとPiAwareが紐付けられた。(っていうことはPiAwareはそれまで勝手にflightaware.comに接続してたってこと? ヨクナイゾ)

LAN側のファイアウォールで外部との通信をブロックしているとかがなければ、これでフィードが始まっている。なお、他のアプリなどでdump1090-faからデータを引いているとフィードが停まることがあるようなので、そういう場合は要対策。

FlightAware.com参加 2
flightaware.comの最上部にある「My ADS-B」で自身のフィード状況のページを開き、サイト情報のすぐ上にあるサイト番号のかかれたバー(オレンジ?)の右にあるギアアイコンを開き、「MLATが有効です」が選択されていることを確認。そして、「場所設定」と「高さを設定して下さい」でアンテナの場所と高さを入力。[Save]で保存。これで「MLAT」が有効になり緑になる筈。(piaware-configでallow-mlatをno指定していないこと)

FlightAware.com参加 3
で、FlightAwareのフィーダーになったわけだけど、これでFlightAwareの会員クラスが普通の無料会員であるBasicからEnterpriseに自動的に変わって、月々$89.95の会費が無料ということなんだけど、会員のクラスが上がったところで、そもそもFlightAwareで見れる情報って何故かあまり楽しくないように思う。特にフィーダーの楽しみがない。(FlightRadar24はFlightAwareよりもさらにフィーダー向け情報が楽しくなかったことを追記しておきます。FR24の方は自分の順位付近のランキング見るのも大変だし)
もう少し見せ方があるんじゃないかしら?

FlightAware.com参加 4
フィードしたデータとは関係なく、FlightAwareで特定の航空機のフライト情報の例。緑〜黄色のモニャモニャしたのは雨雲。

関連記事:
Up