Raspberry Pi OS をヘッドレス・インストール 2021

Raspberry Pi OS のインストール方法を改めてまとめ直してみる。ヘッドレス・インストールだ。

環境:macOS Catalina Version 10.15.6(英語環境)、Raspberry Pi 4 Model B 4GB RAM、Raspberry Pi OS with desktop Kernel version 5.10(Buster)、32 GB microSD カード

(1)Raspberry Pi OS with desktop をダウンロードする。

Operating system images – Raspberry Pi
https://www.raspberrypi.org/software/operating-systems/

(2)microSD カードを SD Memory Card Formatter でフォーマット。

SD Memory Card Formatter | SD Association
https://www.sdcard.org/downloads/formatter/

(3)balenaEtcher で1を microSD カードに焼き付ける。

balenaEtcher – Flash OS images to SD cards & USB drives
https://www.balena.io/etcher/

(4)SSH 接続をするために、microSD カードのルートディレクトリに ssh という空ファイルを作成。

$ touch /Volumes/boot/ssh

(5)microSD カードのルートディレクトリに、wpa_supplicant.conf というファイル名で、以下の内容のファイルを作成する。これで WiFi の設定ができる。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
   ssid="SSID"
   psk="PASSWORD"
}

なお、パスワードは以下のサイトでハッシュ化できる。ハッシュ化した場合は psk 欄は " " でくくる必要はない。

WPA key calculation: From passphrase to hex
http://jorisvr.nl/wpapsk.html

(6)microSD カードを Raspberry Pi に入れて電源を入れる。

(7)数分待ってから Mac の Terminal で以下のコマンドで SSH 接続する。パスワードは raspberry となる。これで接続できるはずだ。

$ ssh pi@raspberrypi.local

過去に Raspberry Pi をインストールしたことがある場合、WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! などと表示されて SSH 接続できないことがある。そういう場合は以下のコマンドで、ホストキーを一旦削除した上で接続すればいい。

$ ssh-keygen -R raspberrypi.local

あるいは IP アドレスを特定できるのなら(LanScan アプリなどを使ったりして)、IP アドレスで接続すればいい。

$ ssh pi@[IPアドレス]

「LanScan」をMac App Storeで
https://apps.apple.com/jp/app/lanscan/id472226235

(8)まずホスト名を変更しよう。

/etc/hostname と /etc/hosts の両ファイル中の raspberrypi を任意のホスト名に変更。

(9)タイムゾーンを日本にする。

$ sudo raspi-config

「5 Localisation Options>L2 Timezone」

(10)CLI で起動させる。

$ sudo raspi-config

「1 System Options>S5 Boot / Auto Login>Console Autologin」

(11)再起動する。

(12)swap を無効化する。

(12-1)swap の確認。

$ free

(12-2)swap の無効化

$ sudo apt-get remove dphys-swapfile
$ sudo rm /var/swap

(12-3)swap が無効化されたことを確認する。

$ free

(13)アップデートを行う。

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt dist-upgrade

(14)locale のエラーが出る場合。

[Raspberry Pi] perl の locale 警告が出る場合2 – with a Christian Wife
https://wacw.cf/2020/06/09/locale-warning-in-perl-in-raspbian/

参考:
[Raspberry Pi] Raspbian Stretch With Desktop をヘッドレスインストール – with a Christian Wife
https://wacw.cf/2017/12/06/headless-install-of-raspbian-stretch/

[Raspberry Pi] ハッシュ化したパスフレーズを生成する – with a Christian Wife
https://wacw.cf/2019/09/01/wpa-key-calculation/

RaspberrypiでSSHができなくて試したこと – Qiita
https://qiita.com/hayate242/items/0de7a98f6fea0dabf04c