Raspberry Pi Zero 2 Wは結構前に買えたものの全然活用できていませんでした。欲しくて買った割にやらせたいことが特にないんですよね。電源すら入れていないもの勿体無いので、とりあえず使えるようにするところまでやっていきます。
必要なもの
- Raspberry Pi Zero 2 W
- Linuxマシン
- microSDカード
セットアップ
こちらの情報を参考に進めていきます。
Raspberry Pi Zero 2 | Arch Linux ARM
パーティションの設定
MBR形式のパーティションテーブルで初期化して、パーティションを2つ作って行きます。1つ目のパーティションは1MiBから201MiBのFAT32、2つ目のパーティションは201MiBから最後までをext4で作ります。
※ SDカードをLinuxマシンに刺すと私の環境ではmmcblk0という名前でデバイスを認識したのでmmcblk0で進めます。
※ 公式のドキュメントではfdiskを使っていますが、私はpartedでパーティションをセットアップする方が慣れているのでpartedで進めます。
parted -s /dev/mmcblk0 -- mklabel msdos mkpart primary fat32 1MiB 201MiB mkpart primary ext4 201MiB 100%
以下のコマンドでパーティションを確認できます。
parted -s /dev/mmcblk0 -- print
私の環境では以下のように出力されました。
Model: SD USD (sd/mmc) Disk /dev/mmcblk0: 32.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 211MB 210MB primary fat16 lba 2 211MB 32.0GB 31.7GB primary ext4
ファイルシステムを作成
パーティション1をvfatで、パーティション2をext4で作成します。
mkfs.vfat /dev/mmblk0p1 mkfs.ext4 /dev/mmblk0p2
マウント
マウント先のディレクトリを用意します。
mkdir root boot
それぞれマウントします。
mount /dev/mmcblk0p1 boot mount /dev/mmcblk0p2 root
ファイルシステムをダウンロードして展開
展開先ディレクトリを作成します。パーティション1をbootディレクトリに、パーティション2をrootディレクトリにマウントします。
mkdir boot root
rootディレクトリにファイルシステムを展開します。
※ 公式ドキュメントではwgetを使ってファイルシステムをダウンロードしていますが、私はcurlの方が使い慣れているのでcurlで進めます。
curl -fsSL http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz | bsdtar -xpf- -C root sync
root/bootディレクトリ(mmcblk0p2)にはブートに必要なファイルが入っています。bootディレクトリ(mmcblk0p1)に移動します。
mv root/boot/* boot
ネットワーク周りの設定
wl*インターフェイスでDHCPを有効化します。
cat <<EOF > root/etc/systemd/network/wl.network [Match] Name=wl* [Network] DHCP=yes DNSSEC=no EOF
もし固定IPの方がよければ以下を実行してください。
※ 仮にIPアドレスを192.168.100.Xとしましたが、これは環境に合わせて変更してください。
cat <<EOF > root/etc/systemd/network/wl.network [Match] Name=wl* [Network] Address=192.168.100.X/24 Gateway=192.168.100.1 DNS=192.168.100.1 EOF
Wi-Fiの設定
作業しているLinuxマシンにwpa_supplicantがインストールされている場合は以下のコマンドを実行します。
<SSID>と<PASSPHRASE>は環境に合わせて変更してください。
wpa_passphrase <SSID> <PASSPHRASE> | grep -v '#psk=' > root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
wpa_supplicantがインストールされておらず、かつ、インストールしたくない場合は直接ファイルを作ることもできます。
cat <<EOF > root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
network={
ssid="<SSID>"
psk="<PASSPHRASE>"
}
ブート時にwpa_supplicantが起動するようにシムリンクを作成しておきます。
ln -s /usr/lib/systemd/system/wpa_supplicant@.service root/etc/systemd/system/multi-user.target.wants/wpa_supplicant@wlan0.service
ふぁいならいず
umount root boot
SDカードを作業マシンから抜いてSDカードの作成作業は完了です。
Zero 2 Wを起動
抜き取ったSDカードをZero 2 Wに挿して起動してみます。IPアドレスはDHCPならルーターのログなどを確認してください。用意されているユーザーはalarmとrootです。初期でSSHできるユーザーはalarmだけです。
ssh alarm@<IP-ADDRESS>
alarmユーザーの初期パスワードはalarmです。rootユーザーになる場合はsu -などでユーザーを変更してください。rootユーザーの初期パスワードはrootです。
パッケージマネージャーの初期化
Arch Linuxのパッケージマネージャーはpacmanです。初期化作業は特権ユーザーで行う必要があるのでrootになっておきます。
su -
pacmanのキーリングを初期化します。
pacman-key --init pacman-key --populate archlinuxarm
ここまで済ませるとpacmanが使えるようになるはずなので、パッケージのアップデートをしておきましょう。
pacman -Syu
ここまでくると普通にArch Linuxが使えるようになります。ユーザー名を変更したり、パスワードをロックしたりなど、ぼくの考えたさいきょうのArch Linuxに育ててみてください。
