Flight radar24の設定移行作業  〜Flight radar24のあっためなおし〜

# はじめに
当初、Raspberry Pi 4 Model B 4GB(以下、Raspberry Pi 4)でFlight radar24のFeederを建てたのですが、Raspberry Pi zero W(以下zero)が余っているのに、Raspberry Pi 4を使うのはもったいないので(って思いました)、zeroへの載せ換えを行いました。
同じラズパイなんだから、OSが入ってるSDカードを差し替えるだけでイケるだろう、と当初は考えていましたが…そんなに甘くはありませんでした…
SDカードを差し替えても、zeroが起動してくれません。。。

普段ヘッドレス運用しているので、ディスプレイを繋いで見たところ、最初のスプラッシュ画面が出て、一応起動が始まるのですが、途中で止まってしまっている模様。
それならば、とzeroで新たにセットアップすると、また新しいSharing Keyが発行されて、今までのデータが引き継げないんですよね。
Feederを設置してからまだ数日なのですが、このように再セットアップするたびに違うSharging Keyに変わってしまうと、今までのデータが引き継げずちょっと残念。
「Flightradar24 再インストール」とかで検索しても、ラズパイ載せ換えの手順がなかったので、ちょっとだけ試行錯誤した結果です。

結論から言うと、新しいSharing Keyが発行されるのは避けられないようです。
ただ、あまり気にしなくて良くて、再セットアップ後、設定ファイルの書き換えで前のSharing Keyを引き継げます。
新しく生成されたSharing Keyも特に何もしなくても良いです(理由は後ほど)。

今回の作業ですが、Raspberry Piへの接続は、ほとんどがOS Xからssh接続、ときどきVNCでデスクトップを開いて接続で行っています(この作業の前、Languageの設定でコケて、ssh接続で文字化けさせる失態をやらかしたりしてので。。。)。

インストール・再インストールの際は、こちらを参照させていただきました。
Raspberry Piを使ってFlightradar24にADS-Bデータをフィードする方法
https://bitstar.jp/blog/2021/06/02/34570/

# 入れ替え前のFlight radar24の設定を確認
まず、今使っている「SHARING KEY」を確認します。
確認方法は、２つ。
まず、Flightradar24のサイトの、自分の設定画面から確認できます。
https://www.flightradar24.com/account/data-sharing
Flight radar24のサイト>アカウントアイコン＞My data sharing
![001_myaccount.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/3ad33312-026e-05f7-b62a-3a656e3404cc.png)
「SHARING KEY」と記載されているところを参照。
※こちらはすでに再セットアップ後の画面となりますので、作業途中で作成されたOfflineのSharing Keyが2つあります。

また、ラズパイの設定ファイル(iniファイル)では、このファイルを参照。
```
$ cat /etc/fr24feed.ini 
receiver="dvbt"
fr24key="自分のSharing Key"
bs="yes"
raw="yes"
logmode="0"
logpath="/var/log/fr24feed"
mlat="yes"
mlat-without-gps="yes"
```
後ほど、移行先のこのファイルを書き換えます。

# Raspberry Piのインストール
新しいzero側へのセットアップは、Raspberry Pi Imagerを使いました。
OSは「Raspberry Pi OS(32bit) A port of Debian Bullseye with the Raspberry Pi Desktop (Recommended)」を選択しました。
![003_Imager.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/79253a80-20c2-3b67-dbb7-546f2e1c2c4a.png)

今回ラズパイではGUIを使う予定は無いのですが、念の為GUIも入れておきました。
このSDカードへのセットアップの時、歯車アイコンの「詳細の設定」でネットワークの設定やSSHを有効にしておけば、ディスプレイを接続することなく、Mac/PCからssh接続だけで設定が可能となります。いわゆるヘッドレスですね。
![004_imager_setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/300a4a83-3fb6-09b5-61bc-44ae0b05d9a8.png)

# Raspberry Piの下ごしらえ
SDカードへのインストールが終わったら、SDカードをzeroに差し込んで、Power側(右側のMicroUSB)にUSBケーブルを差し込んで起動。
Rasberry Pi OSが問題無くインストールされて起動するか確認します。
うまくいかないときは、諦めてディスプレイとキーボード・マウスを接続してください。

OS起動し終わった頃(3分くらい?)、sshで接続します。
Imagerを使った場合は、StaticなIPアドレスの設定はできず、IPアドレスなんだろ？ってことになるので、ルーターのログとか見て、DHCPで振り出されたIPアドレスを確認します。
で、エディタは使い慣れたVimが無かったのでインストールしておきます(最近はVimはデフォルトで入ってないんですね。。。)

ラズパイ側の下ごしらえが済んだ頃、ADS-Bのチューナーをつなぐ準備をします。
このあたりで移行元のRaspberry Pi 4はshutdown -h nowで停止して、USBチューナーを引っこ抜いておいてください。

今回使用したADS-Bのチューナはこちらです。
[TKS TV/ラジオチューナー 受信機 USB2.0 デジタル SDR+DAB+FM （RTL2832U+R820T2） DVB-T TVスティック USBチューナー リモコン付き](https://www.amazon.co.jp/gp/product/B07HJWJX2J/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1)

2021年に買っていたのですが、2年ほど放置していたものを流用。Flight radar24ではおなじみの水色のドングルのやつです。
これはAmazonでの取り扱いは終わってますが、同じような機種で「RTL2832」って書いてあるものなら大丈夫です。
何でも、この水色のタイプは、熱くなっても動作が安定する温度保証型(TCXO)というタイプとのこと。実際使い始めたチューナーを触ってみると案外温かいので、こちらがお勧め。

アンテナも周波数に合ったものを用意したほうがいいのですが、このドングルのアンテナ差込口はMCXという小さなタイプで、普通の(？)アンテナを接続する際には、アンテナ側に合わせてSMAとかBNCとかに変換するアダプタを購入する必要があります。
航空機から発信されるADS-Bの周波数は1090Mhzですが、付属のアンテナでもそこそこ受信しています。本気で受信する場合は別途購入したほうが良いですね。

また、zeroのUSBポートはMicro USB、ドングルは普通のUSB(Type A)なので変換アダプターをアマゾンで購入。
[バッファロー iBUFFALO USB(microB to A)変換アダプター タブレット用 ブラック BSMPC11C01BK](https://www.amazon.co.jp/gp/product/B005WNBLN0/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1)

# Flightradar 24 feederの再インストール。
USBポートにチューナーをつなぎ、念の為、zeroを再起動しておきます。

再起動したら、Flight radar24の再セットアップを開始。
セットアップ手順は、先ほど紹介したサイトとか、「Flightradar24 raspberry pi セットアップ」とかで検索して、手順が紹介されているサイトを参照してください。
あらかじめ、Raspberry Pi 4から持ってきた記載済みの/etc/fr24feed.iniを置いていても、上書きされてしまうので気にせず進めてください。

あらかじめ国土地理院のホームページで設置場所の緯度・経度・標高を確認しておいてください。
https://maps.gsi.go.jp/
調べたい場所を地図の中央の十字似合わせると、URLに緯度と経度、ウインドウ左下に標高が表示されます。
![setting_point.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/a0a52db3-f424-b80e-ae8d-5a2d34373938.png)
東京駅、意外と標高が低い。

そして、このコマンドを実行。
```
$ sudo bash -c "$(wget -O - https://repo-feed.Flightradar24.com/install_fr24_rpi.sh)"
```

インストールが始まります。
```
--2023-09-18 20:41:16--  https://repo-feed.flightradar24.com/install_fr24_rpi.sh
repo-feed.flightradar24.com (repo-feed.flightradar24.com) をDNSに問いあわせています... 2606:4700::6810:39b5, 2606:4700::6810:38b5, 2606:4700::6810:3cb5, ...
repo-feed.flightradar24.com (repo-feed.flightradar24.com)|2606:4700::6810:39b5|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1349 (1.3K) [application/x-sh]
`STDOUT' に保存中

**途中略**

______  _  _         _      _                    _              _____    ___ 
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |                                                         
              |___/                                                          
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.37-0/generic
[main][i]Built on Feb 23 2023 15:29:12 (decoder-v1.0.37-0-4f2fd91.git/Linux/static_armel)
[main][i]Running on: raspbian="11"
[main][i]Local IP(s): 192.168.0.50,240b:11:5841:ef00:3e49:73c5:1c16:ea90,fe80::b153:bb6:a213:d29b
[main][i]Copyright 2012-2023 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)
$: **アカウント作成時に使用したメールアドレス入力**

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.
$:　　**何も入力せずにEnter**

Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:yes **「yes」と入力してEnter**

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

Step 3.A - Enter antenna's latitude (DD.DDDD)
$:　　**設置場所の緯度を入力**

Step 3.B - Enter antenna's longitude (DDD.DDDD)
$:　　**設置場所の経度を入力**

Step 3.C - Enter antenna's altitude above the sea level (in feet)
$:　　**設置場所の標高を入力**

Using latitude: xx.xxxxx, longitude: yyy.yyyyy, altitude: zzzft above sea level
** ここに緯度・経度・高度が表示されます **

Validating email/location information...OK

The closest airport found is ICAO:RJTA IATA:NJA near Kanagawa.
** 一番近い空港が表示されます。ウチは厚木基地なのですが、Flightrader24上には表示されていません

Latitude: xx.xxxxxx
Longitude: yyy.yyyyyy
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 **続けますか？と聞かれるので「yes」と入力してEnter**

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)

Enter your receiver type (1-7)$:1 **どれでもいい説と、今回のUSBチューナーだと1を選択する説があります。今回は1を選択してEnter**
Checking for dump1090...NOT FOUND

Step 4.3 - Enter your additional dump1090 arguments or leave empty
$: **そのままEnter**

Step 5.1 - Would you like to enable RAW data feed on port 30002 (yes/no)$:yes **「yes」と入力してEnter**

Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:yes　**「yes」と入力してEnter**

Submitting form data...OK

Congratulations! You are now registered and ready to share ADS-B data with Flightradar24.
+ Your sharing key (**ここに発行されたsharing keyが表示されます**) has been configured and emailed to you for backup purposes.
+ Your radar id is T-RJ(**ここに発行されたレーダー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!
```

インストールの最後に
```
Saving settings to /etc/fr24feed.ini...OK
Job for fr24feed.service failed because a timeout was exceeded.
See "systemctl status fr24feed.service" and "journalctl -xe" for details.
```
と初期設定ファイルが生成されたら完了です。

が、よく見ると、
```
Job for fr24feed.service failed because a timeout was exceeded.
```
と出ているので、サービスが上がってないと言われてます。

ステータスを確認するコマンドを実行しても、
```
$ fr24feed-status
FR24 Feeder/Decoder Process: running.
FR24 Stats Timestamp: 2023-09-24 07:49:54.
FR24 Link: connected [UDP].
FR24 Radar: T-RJTA547.
FR24 Tracked AC: 0.
Receiver: down ... failed!
FR24 MLAT: not running ... failed!
```
と「failed」が2つも出ています。
設定の引き継ぎとともに、zeroで発生したこのエラーにも対応します

# 設定の引き継ぎ
まずは設定の引継ぎのための変更を行います。
これはFlightradar24の初期設定を書き換えで対応。今回はVimで編集しましたが、エディタは何でもいいです。。。ちなみに私はEmacsではなくVim派です。
「fr24key」が新たに生成されたSharing keyになっているので、以前のSharing keyに書き換えます。
```
$ vim /etc/fr24feed.ini 
receiver="dvbt"
fr24key="ここを以前のSharing Keyに書き換え"
bs="yes"
raw="yes"
logmode="0"
logpath="/var/log/fr24feed"
mlat="yes"
mlat-without-gps="yes"
```
※追記
先ほどFlightrader24のインストールスクリプトの出力を見直していたら、Step1.2で以前のSharing Keyを入れれば大丈夫なような記載がありましたね。見落としてました。
以下の、補足の補足をご参照。

# Receiver downとMLAT not runnningの対応。
Raspberry Pi 4では、このエラーが出なかったのですが、zeroでは発生しました。
同じラズパイといえども、ハードウェア構成が違うので、読み込むライブラリとかに影響が出ているのかも、しれません。

これはこちらのサイトを参照して対応したした。
ADS-BをFlightradar24にフィードしてみた【Raspberry Pi 2】
https://ameblo.jp/tubutappuri-san/entry-12810838954.html

まずは、dpkgの再設定を実施。
```
$ sudo dpkg --configure -a
Setting up lighttpd (1.4.59-1+deb11u2) ...
Created symlink /etc/systemd/system/multi-user.target.wants/lighttpd.service → /lib/systemd/system/lighttpd.service.
Setting up libpython2.7-stdlib:armhf (2.7.18-8) ...
Setting up python2.7-minimal (2.7.18-8) ...
※以下略
```
以前から、debianは使っていましたが、パッケージ管理はaptやaptitudeとかにまかせていたので、この--configureオプションって何？と調べてみたら、パッケージの整合性とかを直してくれるオプションのようですね。
https://ja.linux-console.net/?p=15776#gsc.tab=0

最後に
```
dump1090-mutability is installed. You can always override it in /etc/fr24feed.ini with any other supported driver.
Web server (aircraft map) at http://YOUR_DEVICE_IP/dump1090 is enabled by default.
```
と出てきたので、ADS-Bの情報をデコードしてくれるdump1090がインストールされて(多分再インストール)、直してくれたみたいです。

fr24feedを再起動します。
```
$ sudo systemctl restart fr24feed.service
$ sudo systemctl start fr24feed
```
稼働状況を確認すると…
```
$ fr24feed-status
FR24 Feeder/Decoder Process: running.
FR24 Stats Timestamp: 2023-09-24 07:57:44.
FR24 Link: connected [UDP].
FR24 Radar: T-RJTA547.
FR24 Tracked AC:.
Receiver: connected (55 MSGS/0 SYNC).
FR24 MLAT: ok [UDP].
FR24 MLAT AC seen: 0.
```
faildとなっていたReceiverも「connected」となり、MLATもokとなりました。
これでzeroでもFlight radar24のfeedができるようになりました。

# 複数できたSharing keyの取り扱い
インストール作業を行う時に実行するこのスクリプト
```
sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"
```
これを実行すると、その都度、Sharing keyが生成されてしまいます
先ほどと同じ画像ですが、一番上が一番最初に設定して、zeroに引き継いだSharing key。
次はこの前に設定した時に生成されたSharing Key。
3番目が、先ほどzeroで設定した際に生成されたSharing key。
![001_myaccount.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/4d4c4193-de1f-c419-2872-ed78a39e6d60.png)

で、どうするのかというと、**放置**で大丈夫です。
というのも、Flight rader24のサポートサイトにこんな記載がありました。
>How do I remove unused feeds from my account?
https://support.fr24.com/support/solutions/articles/3000115541-how-do-i-remove-unused-feeds-from-my-account-?utm_source=pocket_saves

こちらを参照すると、使っていない登録済みfeedを削除するときは、support@fr24.comにメールをするようにと書いてありますが、その下にこんなことも書いてあります。
>Unused feeds are deleted automatically after 6 months. We do inform you a month before this deletion happens though.

google先生の翻訳
`「未使用のフィードは 6 か月後に自動的に削除されます。 ただし、この削除が行われる 1 か月前に通知します。」
なので、5ヶ月後に通知メールが来て、6ヶ月後には削除されます。`
ただ、このままだと稼働していないので「止まってますよ」メールが届いてしまいます。使ってないSharing keyの「OFFLINE EMAIL」はオフにしておきます。
![002_statistics_emailoff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/9707582c-ec2d-54e9-3442-143513f0f2ff.png)

ということで、Raspberry Pi 4から始めた時の稼働結果を引き継ぎつつ、zeroにfeederの運用を無事引き継ぐことができました。

STATUSがOnlineだけど「No data」となっているのは、周りに飛行機が無くてデータを受信していないからです。
Daily availabilityで、ところどころとぎれとぎれになっているのは、設定を引き継ぐために色々試行錯誤したところです。
![005_running.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/fffd070d-93fc-10a7-3551-617bb5e31089.png)

Raspberry Pi 4 Model BからRaspberry Pi zeroへ設定を引き継ぐ、なんて事例はあまり紹介されていないようなので、何かの、誰かのお役になれば。

補足
Raspberry Pi zero WにSharing Keyを載せ替えて1週間ほど経過しました。
WiFi接続が悪くて時々切れる、なんて情報もありましたが、途切れることもなく問動いております。
途中とぎれとぎれになっているのは、入れ替えでいろいろ試したところです。
![running.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/9338d9ae-f6ad-b15a-283d-7008da746526.png)

全然関係ないんですが、米軍関係だと「NINJA」とかそんな感じのコールサインを見かけます。あとオスプレイって、ヘリコプターのアイコンなんですね。
![IMG_6279.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56853/94bfa74b-2e83-f9c0-6d2f-b3d46252053f.jpeg)

**補足の補足**
今、アップロード前に出力を見直していたら、インストール時にこんな記載がありました。
```
Step 1.2 - If you used to feed FR24 with ADS-B data before, enter your sharing key.
```
このStep 1.2で以前のSharing Keyを入力すれば、多分、上記で説明したインストール後にiniファイルの書き換えとか、新しいSharing Key発行無しで移行ができるのでは？と思います。アップロード前に気づいてよかった。。。てか、出力をきちんと見ましょうね。私。