🔥

Raspberry Pi Zero 2W + bookworm lite 64bit のヘッドレスセッティング

2024/12/13に公開

はじめに

Raspberry Pi OSがBookwormに変わり、USB SSHの設定が少し変わったようなので覚書
OSを書き込んだSDカードに設定を追加してヘッドレス環境を作ります。

zero2を使うならliteだしヘッドレスだし最近はbookwormじゃないとバージョン問題出るケースが多いのでzero2Wもbookwormへ移行進めねば。。。

参考:https://forums.raspberrypi.com/viewtopic.php?t=376578

環境

OSはRaspberry Pi OS Bookworm 64bit liteです。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm
$ getconf LONG_BIT
64

ハードはRaspberry Pi Zero2Wです。

MicroSD 書き込み設定

MicroSDはRaspberry Pi Imagerで行います。
デバイスにはRaspberry pi Zero 2 Wを選択

OSは Raspberry Pi OS(other) > Raspberry Pi OS Lite(64-bit) を選択

ここではホスト名はzero2としましたがユーザー名、パスワード共に、任意の値を使用してください。
wifi環境があるかたはここで設定しておくと楽ですが、raspi-configからも簡単に設定できます。

SSHを有効化してください。パスワード認証にて進めますが、使用方法が判る方は公開鍵認証をお勧めします。

USB SSHするための設定

config.txtにの最後に次の行を追記

dtoverlay=dwc2

commandline.txtのrootwait とquietの間に[]の中を追記
rootwait [modules-load=dwc2,g_ether] quiet

firstrun.shの「rm -f /boot/firstrun.sh」の行の上に次のテキストを追記

# Remove the rule setting gadget devices to be unmanagend
cp /usr/lib/udev/rules.d/85-nm-unmanaged.rules /etc/udev/rules.d/85-nm-unmanaged.rules
sed 's/^[^#]*gadget/#\ &/' -i /etc/udev/rules.d/85-nm-unmanaged.rules

# Create a NetworkManager connection file that tries DHCP first
CONNFILE1=/etc/NetworkManager/system-connections/usb0-dhcp.nmconnection
UUID1=$(uuid -v4)
cat <<- EOF >${CONNFILE1}
	[connection]
	id=usb0-dhcp
	uuid=${UUID1}
	type=ethernet
	interface-name=usb0
	autoconnect-priority=100
	autoconnect-retries=2
	[ethernet]
	[ipv4]
	dhcp-timeout=3
	method=auto
	[ipv6]
	addr-gen-mode=default
	method=auto
	[proxy]
	EOF

# Create a NetworkManager connection file that assigns a Link-Local address if DHCP fails
CONNFILE2=/etc/NetworkManager/system-connections/usb0-ll.nmconnection
UUID2=$(uuid -v4)
cat <<- EOF >${CONNFILE2}
	[connection]
	id=usb0-ll
	uuid=${UUID2}
	type=ethernet
	interface-name=usb0
	autoconnect-priority=50
	[ethernet]
	[ipv4]
	method=link-local
	[ipv6]
	addr-gen-mode=default
	method=auto
	[proxy]
	EOF

# NetworkManager will ignore nmconnection files with incorrect permissions so change them here
chmod 600 ${CONNFILE1}
chmod 600 ${CONNFILE2}

接続確認とログイン

PCとRaspberry Pi Zero 2Wをデータ通信可能なUSBケーブルで接続します。
Raspberry Pi Zero 2 Wにはmicro USB端子が2個付いていますが、HDMIコネクタに近い側の端子を使用します。
接続すると起動しますが、初回起動には数分かかるため、パイロットランプの点滅が終了するまでまってからpingで確認します

ping zero2.local

接続が確認できたらSSHでログイン可能です。

ssh [user]@zero2.local

Discussion