今までパッケージ版 PiAware を入れていたRaspbianシステムが不調につき、SDイメージ版 PiAware 8.2へ入れ替えて fr24feed を入れようとすると、Raspberry Pi 1Bが勝手に 再起動 する現象に遭遇しました。
PiAware 8.2 SDカードのセットアップ
公式ページでPiAwareイメージのZipファイルをダウンロードしたら、その中からイメージファイルのみを取り出します。
1 2 3 |
$ ls -l Downloads/piaware-sd-card-8.2.* -rw-r--r-- 1 user user 2353004544 Dec 15 07:30 Downloads/piaware-sd-card-8.2.img -rw-rw-r-- 1 user user 681916860 Jan 20 16:08 Downloads/piaware-sd-card-8.2.img.zip |
これを手持ちの16GB SDカードへ書き込みます。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo fdisk -l /dev/sdd ディスク /dev/sdd: 15 GiB, 16039018496 バイト, 31326208 セクタ 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト $ sudo dd if=Downloads/piaware-sd-card-8.2.img of=/dev/sdd bs=1M status=progress 2348810240 bytes (2.3 GB, 2.2 GiB) copied, 108 s, 21.7 MB/s 2244+0 レコード入力 2244+0 レコード出力 2353004544 bytes (2.4 GB, 2.2 GiB) copied, 710.797 s, 3.3 MB/s $ sudo sync |
Raspberry Piで起動させる前に、別のUbuntuマシンにマウントしてその中身を確認。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ sudo fdisk -l /dev/sdd ディスク /dev/sdd: 15 GiB, 16039018496 バイト, 31326208 セクタ 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0x17079073 デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ /dev/sdd1 8192 532479 524288 256M c W95 FAT32 (LBA) /dev/sdd2 532480 4595711 4063232 2G 83 Linux $ lsblk /dev/sdd NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdd 8:48 1 15G 0 disk ├─sdd1 8:49 1 256M 0 part /media/user/boot └─sdd2 8:50 1 2G 0 part /media/user/rootfs $ sudo blkid /dev/sdd* /dev/sdd: PTUUID="17079073" PTTYPE="dos" /dev/sdd1: LABEL="boot" UUID="C488-3837" TYPE="vfat" PARTUUID="17079073-01" /dev/sdd2: LABEL="rootfs" UUID="af0ee345-fed0-4369-8966-cd960c2df162" TYPE="ext4" PARTUUID="17079073-02" |
初回起動前準備
boot パーティションにある piaware_config.txt を次の通り編集して、初回起動時に静的IPでのネットワーク疎通を図るのと、FlightAwareに登録済みデバイスのfeeder-idを引き継ぐことでセットアップを簡略化することができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
wired-network yes wired-type static wired-address 192.168.51.210 wired-netmask 255.255.255.0 wired-broadcast 192.168.51.255 wired-gateway 192.168.51.1 wired-nameservers 192.168.51.1 wireless-network no feeder-id ########-####-####-####-############ adaptive-dynamic-range no |
また、このRaspberry PiにはBME280環境センサを繋いでいるので、同じく boot パーティションにある、 config.txt を編集してI2Cを有効にしたり、少しだけオーバークロックしてみます。
1 2 |
dtparam=i2c_arm=on arm_freq=800 |
最後にお約束の ssh と言う空ファイルを boot 下に生成して、初回起動以降のsshアクセスを有効にします。
1 2 3 |
$ touch /media/user/boot/ssh $ ls -l /media/user/boot/ssh -rw-r--r-- 1 user user 0 1月 22 22:13 ssh |
Raspberry Pi 1Bでの初回起動
SDカードをRaspberry Pi 1Bへ挿して起動して数分後、別のPCからブラウザで設定しておいたIPアドレスへアクセスすると、既にPiAwareサービスは稼働しており、FlightAwareへのデータ提供始めていました。
SkyAware Mapも問題無く受信データがプロットされます。
なお、PiAware公式ページではRaspberry Pi 3以降が推奨されていますが、非力な初代Raspberry Piでも問題無く動くことは周知の事実です。
そのままSSHでアクセスして(ユーザー名 pi 、パスワード flightaware )、パスワードやホスト名を変更、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ passwd Changing password for pi. Current password: New password: Retype new password: passwd: password updated successfully $ sudo hostnamectl set-hostname piaware2 $ sudo nano /etc/hosts $ cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 piaware2 |
さらにIPv6を無効化します。
1 2 3 4 5 |
$ sudo nano /etc/sysctl.conf $ sudo sysctl -p net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 |
PiAwareの稼働状況は、 piaware-status コマンドでも確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ sudo piaware-status PiAware master process (piaware) is running with pid 393. PiAware ADS-B client (faup1090) is running with pid 588. PiAware ADS-B UAT client (faup978) is not running (disabled by configuration settings) PiAware mlat client (fa-mlat-client) is running with pid 615. Local ADS-B receiver (dump1090-fa) is running with pid 550. dump1090-fa (pid 550) 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 ########-####-####-####-############ (configured at /boot/piaware-config.txt:89) |
北米以外の地域では必要のない、dump978系のサービス( dump978-fa と skyaware978 )を念押しで完全に無効化します。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo systemctl stop dump978-fa $ sudo systemctl disable dump978-fa Removed /etc/systemd/system/default.target.wants/dump978-fa.service. $ sudo systemctl mask dump978-fa Created symlink /etc/systemd/system/dump978-fa.service → /dev/null. $ systemctl status dump978-fa ● dump978-fa.service Loaded: masked (Reason: Unit dump978-fa.service is masked.) Active: failed (Result: exit-code) since Fri 2022-03-11 14:05:14 HKT; 10 months 19 days ago Main PID: 377 (code=exited, status=64) CPU: 31ms |
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo systemctl stop skyaware978 $ sudo systemctl disable skyaware978 Removed /etc/systemd/system/dump978-fa.service.wants/skyaware978.service. $ sudo systemctl mask skyaware978 Created symlink /etc/systemd/system/skyaware978.service → /dev/null. $ systemctl status skyaware978 ● skyaware978.service Loaded: masked (Reason: Unit skyaware978.service is masked.) Active: failed (Result: exit-code) since Fri 2022-03-11 14:05:15 HKT; 10 months 19 days ago Main PID: 398 (code=exited, status=64) CPU: 32ms |
FlightRadar24 fr24feedの導入
続いて前回の記事に沿って、FlightRadar24へデータ提供するためのfr24feedをインストールします。
1 |
$ sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)" |
このインストールスクリプトの構成はおおよそ以下の通りで、
- 依存パッケージインストール
- fr24feedレポジトリのキーインストール
- レポジトリ追加
- fr24feedインストール
- サインアップウィザード立ち上げ
となっているのですが、この4番目で何故か必ずRaspberry Piが再起動してしまいます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y fr24feedReading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: fr24feed 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 3569 kB of archives. After this operation, 5120 kB of additional disk space will be used. Get:1 http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf fr24feed armhf 1.0.34-0 [3569 kB] Fetched 3569 kB in 6s (553 kB/s) apt-listchanges: Can't set locale; make sure $LC_* and $LANG are correct! perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_GB.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory Selecting previously unselected package fr24feed. (Reading database ... 50264 files and directories currently installed.) Preparing to unpack .../fr24feed_1.0.34-0_armhf.deb ... Unpacking fr24feed (1.0.34-0) ... Setting up fr24feed (1.0.34-0) ... 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. (ここで勝手に機器再起動) |
SDメディア不良を疑い別のメディアで試したり、電源不良を疑ってアダプタを変えてみても、必ずこの現象に当たります。
再起動後、 fr24feed サービスは動いているので、
1 2 3 4 5 6 7 8 9 10 11 12 |
$ systemctl status fr24feed ● fr24feed.service - Flightradar24 Decoder & Feeder Loaded: loaded (/etc/systemd/system/fr24feed.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-01-26 22:46:17 HKT; 43min ago Process: 1997 ExecStartPre=/usr/lib/fr24/install_dump1090.sh (code=exited, status=0/SUCCESS) Process: 2001 ExecStartPre=/usr/lib/fr24/unregister_kernel_modules.sh (code=exited, status=0/SUCCESS) Process: 2005 ExecStartPre=/usr/lib/fr24/create_missing_directories.sh (code=exited, status=0/SUCCESS) Main PID: 2008 (fr24feed) Tasks: 17 (limit: 876) CPU: 16.322s CGroup: /system.slice/fr24feed.service └─2008 /usr/bin/fr24feed |
サインアップウィザードで設定を済ませれば、FlightRadar24へのデータ提供も始まります。
但し、パッケージマネージャによるインストールは正常に終了していないので、 apt で何かしようとすると、まず異常終了を完走させなさいと怒られます。
1 2 |
$ sudo apt install vnstat E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. |
そして促されたコマンドを実行してポストインストールを進めると、またあの再起動が発生する無限ループ。
1 2 3 4 5 |
$ sudo dpkg --configure -a Setting up fr24feed (1.0.34-0) ... You don't seem to have any dump1090 installed. On the fr24feed start it will automatically install dump1090-mutability. useradd: user 'fr24' already exists (ここでまた勝手に機器再起動) |
PiAware 7.2ではどうだろう
そこで、前記事では問題の無かったPiAware 7.2をベースにしてみます。
ただ、PiAware公式ページに過去のリリースページは用意されていないので、現行版のダウンロードリンクから類推して、PiAware 7.2のSDイメージをダウンロード、初回起動まで滞りなく進みました。
1 |
https://piaware.flightcdn.com/piaware-sd-card-7.2.img.zip |
PiAware 8.2も7.2もDebian bullseyeベースですが、カーネルバージョンが前者は5.15、後者は5.10です。
1 2 3 4 5 6 7 |
$ uname -aLinux piaware 5.10.92+ #1514 Mon Jan 17 17:35:21 GMT 2022 armv6l GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye |
続く fr24feed のインストールでは、インストールスクリプトを一気には実行せず、その内容を一つ一つ進めましたが、問題なく fr24feed インストールも完走しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ sudo apt install fr24feed Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: fr24feed 0 upgraded, 1 newly installed, 0 to remove and 134 not upgraded. Need to get 3,569 kB of archives. After this operation, 5,120 kB of additional disk space will be used. Get:1 http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf fr24feed armhf 1.0.34-0 [3,569 kB] Fetched 3,569 kB in 4s (934 kB/s) Selecting previously unselected package fr24feed. (Reading database ... 47336 files and directories currently installed.) Preparing to unpack .../fr24feed_1.0.34-0_armhf.deb ... Unpacking fr24feed (1.0.34-0) ... Setting up fr24feed (1.0.34-0) ... 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. |
fr24feed のサインアップ設定や、以降の apt パッケージマネージャの使用も、もちろん問題ありません。
PiAware 8.2へのアップグレードは完走するか
ここまで来たら、次はPiAware 8.2へアップグレードに問題はないか、試してみましょう。
まず、 apt upgrade でPiAware以外のパッケージ(カーネルを含む)を更新します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ sudo apt update $ sudo apt upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following NEW packages will be installed: dos2unix python3-toml userconf-pi The following packages have been kept back: beast-splitter dump1090-fa dump978-fa piaware piaware-ble-connect piaware-configurator piaware-release piaware-support piaware-web piaware-wifi-scan skyaware978 The following packages will be upgraded: avahi-daemon base-files bash bind9-host bind9-libs bluez bluez-firmware cifs-utils console-setup console-setup-linux curl dbus dhcpcd5 distro-info-data dphys-swapfile dpkg dpkg-dev firmware-amd-graphics firmware-atheros firmware-brcm80211 firmware-intelwimax firmware-iwlwifi firmware-libertas firmware-linux firmware-linux-nonfree firmware-misc-nonfree firmware-realtek firmware-ti-connectivity gzip isc-dhcp-client isc-dhcp-common keyboard-configuration libavahi-common-data libavahi-common3 libavahi-core7 libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dbg libc6-dev libcamera-apps-lite libcamera0 libcurl3-gnutls libcurl4 libdbus-1-3 libdpkg-perl libfreetype-dev libfreetype6 libfreetype6-dev libfribidi0 libgnutls30 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 libksba8 libldap-2.4-2 liblzma5 libnftables1 libntfs-3g883 libpam-chksshpwd libpam-modules libpam-modules-bin libpam-runtime libpam-systemd libpam0g libpcre2-8-0 libpcre2-posix2 libpixman-1-0 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 libssl1.1 libsystemd0 libtasn1-6 libtiff5 libtirpc-common libtirpc-dev libtirpc3 libudev1 libuv1 libwbclient0 libxml2 lighttpd linux-libc-dev locales logrotate nano nftables ntfs-3g openssh-client openssh-server openssh-sftp-server openssl pi-bluetooth publicsuffix raspberrypi-bootloader raspberrypi-kernel raspberrypi-net-mods raspberrypi-sys-mods raspi-config raspinfo rpi-eeprom rsyslog ssh sudo systemd systemd-sysv sysvinit-utils tasksel tasksel-data tzdata udev unzip vcdbg wireless-regdb xz-utils zlib1g zlib1g-dev 122 upgraded, 3 newly installed, 0 to remove and 11 not upgraded. Need to get 261 MB of archives. After this operation, 55.8 MB disk space will be freed. Do you want to continue? [Y/n] y -略- |
100Mイーサポートの初代Raspberry Piということもあり、1時間以上掛かってアップグレードが終わり、新しいカーネルへ更新されました。
1 2 3 4 5 6 7 8 |
$ uname -a Linux piaware2 5.15.84+ #1613 Thu Jan 5 11:58:09 GMT 2023 armv6l GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye |
続いて apt upgrade では更新されなかった、PiAware関連パッケージを apt dit-upgrade で更新します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ sudo apt dist-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages will be REMOVED: piaware-repository The following NEW packages will be installed: flightaware-apt-repository The following packages will be upgraded: beast-splitter dump1090-fa dump978-fa piaware piaware-ble-connect piaware-configurator piaware-release piaware-support piaware-web piaware-wifi-scan skyaware978 11 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Need to get 8,837 kB of archives. After this operation, 74.8 kB of additional disk space will be used. Do you want to continue? [Y/n] y -略- |
更新中、PiAwareサービスが一時中断されますが、ほどなく8.2版が立ち上がります。
更新後もSkyAwareが7.2のままだったので、 lighttpd を再起動してみるも古いまま。
1 |
$ sudo systemctl restart lighttpd |
結局、機器を再起動してようやく8.2になりました。
今回のような現象はネットでも見受けられなかったので、もしかすると初代Raspberry Piに特化した話なのかもしれません。