ラズパイのセットアップ

Debian OSは、vimがインストールされておらず nano を使用している。

Raspberry Pi Imager

Raspberry Pi OS 64bit

WiFi設定、ユーザーアカウントを事前に設定できるが、後述の通りこの設定で使えないのでやらなくてよい。

スワップサイズ変更

メモリが1GBしかないので、スワップファイルのサイズを変更する。デフォルトは100MBだった。

// スワップファイルサイズを確認
free -h

設定ファイルを開く

sudo nano /etc/dphys-swapfile
-#CONF_SWAPSIZE=2048
+CONF_SWAPSIZE=2048
sudo reboot

WiFi

あらかじめ、無線ルータ側で2.4GHzを飛ばすように設定する。

sudo chown root:netdev /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

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

rfkillによって無線通信がブロックされていたら、ブロックを解除する。

rfkill list
0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
1: phy0: Wireless LAN
        Soft blocked: yes  <- WiFiが無効化されている
        Hard blocked: no

// rfkill無効化
sudo systemctl mask systemd-rfkill.service
sudo systemctl mask systemd-rfkill.socket

// 再起動
sudo reboot

サービスファイルを登録、wlan0を起動する

sudo systemctl enable wpa_supplicant@wlan0
sudo systemctl start wpa_supplicant@wlan0

DHCP無効

ルータがDHCPでIPアドレスを配布していると、ラズパイのIPがランダムで変わってしまう。 いろいろ手間なので、IPを固定させる。

sudo vim /etc/systemd/network/wlan0.network

以下に変更

[Match]
Name=wlan0

[Network]
DHCP=no
Address=192.168.10.10/24
Gateway=192.168.1.1
DNS=192.168.1.1
sudo systemctl restart systemd-networkd
sudo reboot

Wi-FiのMACランダマイゼーション無効化

sudo vim /etc/systemd/network/wlan0.link (新規)
[Match]
MACAddressPolicy=persistent

Wi-Fi省電力機能を無効化

sudo vim /etc/systemd/system/wifi-poweroff.service(新規)
[Unit]
Description=Disable WiFi power saving on wlan0
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/iw dev wlan0 set power_save off

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable wifi-poweroff.service
sudo systemctl start wifi-poweroff.service

参考文献