2017年に購入したRaspberry Pi 3 Model Bがあったのだが、途中でRaspberry Pi Zero Wに置き換えたことにより、ずっと使わずに放置していた。ふと使いたくなって久しぶりに起動させようとしたら、Kernel Panicで起動しなくなっていたのでRaspbianをインストールしなおすことにした。
前回のインストール手順は2017年に記事としてまとめていたので、そちらを参考にしつつ、今回も同様にNOOBSを使ってインストールをしようとしたのだが、調べてみるとNOOBSではなく「Raspberry Pi Imager」を使う手順に推奨手順が変わっているらしい。
それどころかRaspbianも名前が変わって「Raspberry Pi OS」に名称が変更されているらしい。
RaspbianではなくてRaspberry Pi OSって名前変わったらしい。インストール手順もNOOBSではなく、Raspberry Pi Imagerを使う手順に変わっているらしく、直接SDカードにOSイメージを書き込む手順に変わった模様。
— tech-mmmm (@tech_mmmm) July 26, 2020
と、いろいろ数年の間に変化があったので、再度インストール手順をまとめてみた。
Raspberry Pi ImagerにてSDカードにRaspberry Pi OSを書き込む
1. Raspberry Pi Imagerをダウンロード
以下からダウンロードする。私のダウンロードしたタイミングでは「imager_1.4.exe」というバージョンとなっていた。
2. SDカードに書き込みを行うPCにRaspberry Pi Imagerをインストール
Raspberry Pi Imagerはexe形式になっているので、実行してPCにインストールすればよい。
3. Raspberry Pi Imagerを起動し書き込み前の設定を行う
Raspberry Pi Imagerを起動するとOSとSDカードの指定を行うシンプルな画面が表示されるので、以下の通り設定する。
- Operating System : Raspberry Pi OS (32-bit)
- SD Card : 書き込み先のSDカードを指定
なお、SDカードは書き込み時にフォーマットされるので、未フォーマットの状態であっても問題ない。今回は、過去にインストールしたRaspbianが書き込まれた状態のまま書き込みをしたが、問題なく成功している。
4. 書き込み開始
SDカードの内容はすべて消去される旨のメッセージが表示されるので、「Yes」を選択して書き込みを開始する。
インターネット経由でデータをダウンロードしながら書き込みするので環境に依存するが、おおよそ1時間で書き込みは完了する。気長に待とう。
5. 書き込み完了
書き込みが完了すると、SDカードを自動でアンマウントしてくれるので、そのままPCから抜いて、Raspberry Piに刺せばよい。
Raspberry Piを起動&初期設定
1. 初期設定ウィザードにて設定
Raspberry Pi OS初回起動時には「Welcome to Raspberry Pi」という名前の初期設定ウィザードが表示されるので、以下の通り設定していく。
- Set Country :
- Country : Japan
- Language : Japanese
- Timezone : Asia/Tokyo
- Change Password : 適切に設定
- Set Up Screen : そのまま次へ
- Set Wireless Network : しばらく待つとWi-FiのSSIDが一覧表示されるので、接続対象のSSIDを選択
- Enter Wireless Network Password : 適切に設定
- Update Software : そのまま次へ。アップデートは30分程要するので気長に待つ
ウィザードの最後で再起動を要求されるので、「Restart」を選択し再起動を行う。
2. SSHを有効化
Raspberry Pi OSはデフォルトではSSHが無効となっている。リモート操作ができず不便なので有効とする。端末を開き、以下を実行して「Raspberry Pi Software Configuration Tool (raspi-config)」を開く。
$ sudo raspi-config
raspi-configの画面が表示されるので、「5 Interfacing Options」を選択する。
「P2 SSH」を選択する。
「Would you like the SSH server to be enabled?」と表示される。
この画面で「はい」を選ぶとSSHが有効に、「いいえ」を選ぶとSSHが無効になる。「いいえ」が設定変更をキャンセルする意味ではなく、SSHが無効化されてしまうので注意。
ESCキーでraspi-configを抜けて、sshdのステータスを確認し問題なく起動していればOKとなる。
$ systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-07-29 13:26:11 JST; 3s ago
~(以下略)~
3. 時刻同期設定
Raspberry Pi OSではDebianベースとなるので、時刻同期はntpdやChronyではなく「systemd-timesyncd」が利用されている。
時刻同期の状態を確認すると、「x.debian.pool.ntp.org」に対して時刻同期はされているようだ。
$ timedatectl timesync-status
Server: 2001:470:1f07:9fe::f00d (2.debian.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 1
Reference: GPS
Precision: 1us (-24)
Root distance: 0 (max: 5s)
Offset: +6.899ms
Delay: 196.933ms
Jitter: 12.925ms
Packet count: 9
Frequency: -4.487ppm
私の環境の場合は、NTPサーバが存在することから、以下の折設定を変更する。
$ cat /etc/systemd/timesyncd.conf
~(中略)~
[Time]
NTP=192.168.33.23 ←★追記
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
設定を変更後、設定反映を行う。
$ sudo systemctl restart systemd-timesyncd
Warning: The unit file, source configuration file or drop-ins of systemd-timesyncd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
$ sudo systemctl daemon-reload
反映後の時刻同期のステータスを確認する。「System clock synchronized」がYesであれば問題なく時刻同期が成功している。
$ timedatectl status
Local time: 水 2020-07-29 13:45:55 JST
Universal time: 水 2020-07-29 04:45:55 UTC
RTC time: n/a
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
同期先のサーバが変更されていればOKとなる。
$ timedatectl timesync-status
Server: 192.168.33.23 (192.168.33.23)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 2
Reference: 85F3EEA4
Precision: 1us (-26)
Root distance: 2.532ms (max: 5s)
Offset: -1.112ms
Delay: 5.927ms
Jitter: 1.709ms
Packet count: 117
Frequency: -4.424ppm
4. 固定IP設定
DHCPによるIPアドレス設定の場合は、特にデフォルトから変更する必要はないが、固定IPアドレス設定を行う場合は「/etc/dhcpcd.conf」にてIPアドレス等の指定を行う。
$ sudo vi /etc/dhcpcd.conf
~(中略)~
interface eth0 # 有線はeth0を指定
static ip_address=192.168.11.15/24 # IPアドレスとサブネットマスクを設定
static routers=192.168.11.31 # デフォルトゲートウェイを設定
static domain_name_servers=192.168.11.61 192.168.11.62 # DNSを設定
interface wlan0 # 無線 (Wi-Fi) はwlan0を指定
static ip_address=192.168.33.15/24 # IPアドレスとサブネットマスクを設定
上記設定後OS再起動を行い、IPアドレスの状態を確認してみた。以下の通り、eth0とwlan0に指定した固定IPアドレスが設定されている。
$ ip a | grep -e eth0 -e wlan0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.11.15/24 brd 192.168.11.255 scope global noprefixroute eth0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.33.15/24 brd 192.168.33.255 scope global noprefixroute wlan0
5. スタティックルート設定
Raspberry Pi OSでルーティングを追加する場合は、以前以下の記事にて説明をしている。
再掲とはなるが、ルーティング追加のコマンドを「/etc/network/if-up.d/static-routes」に記載することで、OS起動時にルーティング追加できる。
$ sudo vi /etc/network/if-up.d/static-routes
#!/bin/sh
# Add Static Route
sleep 10
route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.33.31 metric 1 wlan0
$ sudo chmod +x /etc/network/if-up.d/static-routes
まとめ
以上でRaspberry Pi OSのインストールと初期設定手順は完了となる。
最後に、Raspberry Pi OSのバージョンを確認してみたところ、バージョンは10.4となっていた。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
$ cat /etc/debian_version
10.4
0 件のコメント:
コメントを投稿