Ubuntu Server 22.04 LTSのシステムアップデートと時刻同期設定

2022年5月21日土曜日

Linux Rasberry Pi

t f B! P L
Ubuntu Server 22.04 LTSのシステムアップデートと時刻同期設定

Ubuntuのシステムアップデート

まずはパッケージを最新にアップデートする。

/etc/apt/sources.listにUbuntu公式のリポジトリが登録されており、そのリポジトリを基にパッケージ一覧を最新化する。

username@ubuntu:~$ sudo apt update

パッケージ一覧を最新化したら、アップデートする。

username@ubuntu:~$ sudo apt upgrade -y

カーネルが更新されても、OSを再起動するまでは古いカーネルのまま動く旨通知が出ます。

apt upgradeでアップデート後、アップデートされたライブラリやバイナリを反映させるために再起動が必要な場合、そのサービスに*マークが付いて教えてくれます
これはUbuntuだとneedrestartというパッケージで実現していて、RHEL6,7,8でいうyum-utilsに含まれているneeds-restartingです。
デフォルトで*マークが付いているものはそのままで、OKを選択してサービスを再起動します。

前述した通り、新しいカーネルで動かすためにはOS再起動が必要のため、OSを再起動します。

username@ubuntu:~$ sudo reboot

Raspberry PiのEEPROM

Raspberry Pi 4のBootloaderはEEPROMに書き込まれています。
Bootloaderは、不定期に機能向上やバグフィックスなどが行われており、Raspberry Pi専用のコマンドを用いてバージョンアップが可能です。
Raspberry Pi OSは文字通りRaspberry Pi 専用OSなので、管理するためのコマンド類が入っていますが、Ubuntu Server 22.04 LTSにも同様に管理できるパッケージrpi-eepromがデフォルトで入ってくれています。

このパッケージに入っているコマンドを使えば、Bootloaderのバージョン確認や更新が可能です。

Bootloaderのバージョン確認

username@ubuntu:~$ cat /etc/default/rpi-eeprom-update FIRMWARE_RELEASE_STATUS="default" BOOTFS=/boot/firmware username@ubuntu:~$ username@ubuntu:~$ sudo rpi-eeprom-update [sudo] password for username: BOOTLOADER: up to date CURRENT: Tue Apr 26 10:24:28 UTC 2022 (1650968668) LATEST: Tue Jan 25 14:30:41 UTC 2022 (1643121041) RELEASE: default (/lib/firmware/raspberrypi/bootloader/default) Use raspi-config to change the release. VL805_FW: Using bootloader EEPROM VL805: up to date CURRENT: 000138a1 LATEST: 000138a1 username@ubuntu:~$

この例だと、CURRENTの方が新しくなってしまっていますが、それはUbuntuのインストール前にRasberry Pi OSで最新版の2022年04月26日版に更新してしまっているためです。
Ubuntu Server 22.04 LTSに入っているrpi-eepromパッケージは2022年05月21日時点では、Rasberry Pi OSのものより古いようで、2022年01月25日版が最新として表示されていました。

適用するバージョンとして、3種類(default、latest、beta)の指定が可能です。

/etc/default/rpi-eeprom-updateのFIRMWARE_RELEASE_STATUSがdefaultが/lib/firmware/raspberrypi/bootloader/criticalフォルダへのシンボリックリンク、latestだと/lib/firmware/raspberrypi/bootloader/stableフォルダへのシンボリックリンクとなっています。

FIRMWARE_RELEASE_STATUS ディレトリ 用途
default /lib/firmware/raspberrypi/bootloader/critical 最新の製品リリース、重要なセキュリティまたはハードウェアの互換性のバグ修正が含まれる。
latest /lib/firmware/raspberrypi/bootloader/stable ベータテストを受けた新機能が含まれる。製品リリースの候補。
beta /lib/firmware/raspberrypi/bootloader/beta その名の通り、ベータテストのバージョン。

/lib/firmware/raspberrypi/bootloader配下はrpi-eepromパッケージに依存します。
Ubuntu 22.04 LTSに入っているrpi-eepromパッケージをみてみたところ13.12-1ubuntu1のように、公式Raspberry Pi OSのものとは少し異なるため、https://github.com/raspberrypi/rpi-eeprom/tree/master/firmware にある最新版のBootloaderに常にアップデートできるわけではないようです。

/etc/default/rpi-eeprom-updateは好みに応じて、defaultから変更して下さい。
私はlatestにしています。
/lib/firmware/raspberrypi/bootloader/release-notes.mdや、https://github.com/raspberrypi/rpi-eeprom/tree/master/firmwareをみれば、各バージョンの修正内容が分かるので参考になります。

Bootloaderの更新

/etc/default/rpi-eeprom-updateのFIRMWARE_RELEASE_STATUSをdefaultからlatestに変更しアップデートしています。rpi-eeprom-update -aでキューに入れてOSを再起動する事で適用されます。

username@ubuntu:~$ sudo rpi-eeprom-update [sudo] password for username: *** UPDATE AVAILABLE *** BOOTLOADER: update available CURRENT: 2021年 4月 29日 木曜日 16:11:25 UTC (1619712685) LATEST: 2022年 1月 25日 火曜日 14:30:41 UTC (1643121041) RELEASE: default (/lib/firmware/raspberrypi/bootloader/default) Use raspi-config to change the release. VL805_FW: Using bootloader EEPROM VL805: up to date CURRENT: 000138a1 LATEST: 000138a1 username@ubuntu:~$ username@ubuntu:~$ cat /etc/default/rpi-eeprom-update FIRMWARE_RELEASE_STATUS="default" BOOTFS=/boot/firmware username@ubuntu:~$ username@ubuntu:~$ sudo vi /etc/default/rpi-eeprom-update ~~~ FIRMWARE_RELEASE_STATUS="default" ↓ FIRMWARE_RELEASE_STATUS="latest" ~~~ username@ubuntu:~$ cat /etc/default/rpi-eeprom-update FIRMWARE_RELEASE_STATUS="latest" BOOTFS=/boot/firmware username@ubuntu:~$ username@ubuntu:~$ sudo rpi-eeprom-update -a *** INSTALLING EEPROM UPDATES *** BOOTLOADER: update available CURRENT: 2021年 4月 29日 木曜日 16:11:25 UTC (1619712685) LATEST: 2022年 4月 26日 火曜日 10:24:28 UTC (1650968668) RELEASE: latest (/lib/firmware/raspberrypi/bootloader/latest) Use raspi-config to change the release. VL805_FW: Using bootloader EEPROM VL805: up to date CURRENT: 000138a1 LATEST: 000138a1 CURRENT: 2021年 4月 29日 木曜日 16:11:25 UTC (1619712685) UPDATE: 2022年 4月 26日 火曜日 10:24:28 UTC (1650968668) BOOTFS: /boot EEPROM updates pending. Please reboot to apply the update. To cancel a pending update run "sudo rpi-eeprom-update -r". username@ubuntu:~$ sudo reboot username@ubuntu:~$ username@ubuntu:~$ sudo rpi-eeprom-update [sudo] password for username: BOOTLOADER: up to date CURRENT: 2022年 4月 26日 火曜日 10:24:28 UTC (1650968668) LATEST: 2022年 4月 26日 火曜日 10:24:28 UTC (1650968668) RELEASE: latest (/lib/firmware/raspberrypi/bootloader/latest) Use raspi-config to change the release. VL805_FW: Using bootloader EEPROM VL805: up to date CURRENT: 000138a1 LATEST: 000138a1 username@ubuntu:~$

時刻同期設定

時刻同期先として、日本国内でStratum2でNTPサービスを提供しているインターネットマルチフィード(MFEED) を指定します。

https://www.mfeed.ad.jp/ntp/usage.html

username@ubuntu:~$ sudo vi /etc/systemd/timesyncd.conf ~~~ #NTP= ↓ NTP=ntp.jst.mfeed.ad.jp ~~~ username@ubuntu:~$ sudo systemctl restart systemd-timesyncd.service username@ubuntu:~$ sudo systemctl status systemd-timesyncd.service ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; ve> Active: active (running) since Sat 2022-05-21 16:25:47 JST; 4s ago Docs: man:systemd-timesyncd.service(8) Main PID: 5854 (systemd-timesyn) Status: "Initial synchronization to time server 210.173.160.27:123 (ntp.js> Tasks: 2 (limit: 9238) Memory: 1.2M CPU: 170ms CGroup: /system.slice/systemd-timesyncd.service mq5854 /lib/systemd/systemd-timesyncd May 21 16:25:47 ubuntu systemd[1]: Starting Network Time Synchronization... May 21 16:25:47 ubuntu systemd[1]: Started Network Time Synchronization. May 21 16:25:47 ubuntu systemd-timesyncd[5854]: Initial synchronization to time> username@ubuntu:~$

QooQ