- Windows 11 で、最新の WSL 2(ストア版)がインストールされていること
- Ubuntu 22.04 が WSL 2 でインストールされていること
- WSL 2 の systemd が設定済みであること https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/
- systemd-container と qemu-user-static がインストール済みであること
- Raspberry Pi 4 と USB OTG でシリアル接続可能であること
- 給電ポート(Type-C)と Windows 機を直結できる
- シリアル通信プログラムがある( SimpleCom など)
PS > GET-CimInstance -query "SELECT * from Win32_DiskDrive"
DeviceID Caption Partitions Size Model
-------- ------- ---------- ---- -----
\\.\PHYSICALDRIVE0 SanDisk SDSSDA240G 1 240054796800 SanDisk SDSSDA240G
\\.\PHYSICALDRIVE1 Generic MassStorageClass USB Device 0 Generic MassStorageClass USB Device
\\.\PHYSICALDRIVE2 External M.2 NVME SCSI Disk Device 2 128034708480 External M.2 NVME SCSI Disk Device
PS > wsl --mount \\.\PHYSICALDRIVE2 --bare
この操作を正しく終了しました。
$ lsblk
<ディスクを確認する>
Raspberry Pi OS / Ubuntu の場合
$ sudo dd if=<ISO> of=/dev/<ディスク> bs=4M status=progress
Fedora の場合
$ xz -dc <ダウンロードイメージ> | sudo dd of=/dev/<ディスク> bs=4M status=progress
Raspberry Pi OS / Ubuntu
/
を WSL 2 でマウントした状態で以下の作業を実施する
modules-load=dwc2,g_serial
$ sudo systemd-nspawn -D <Raspberry Pi の /> /bin/bash
# systemctl enable [email protected]
config.txt で dtoverlay=dwc2
が設定されている必要があるが、これは Ubuntu 22.04 ではデフォルトで有効化されている
Fedora
LVM パーティションサイズを広げてから PV、LV を最大限まで拡張する
$ sudo cfdisk /dev/sdd
$ sudo pvresize /dev/sdd3
$ sudo lvextend -l 100%FREE /dev/systemVG/LVRoot
$ sudo lvchange -ay /dev/systemVG/LVRoot
$ sudo mount /dev/systemVG/LVRoot <Raspberry Pi の />
上記のほかに /boot
もマウントする。 /boot
は UUID を確認してマウントする。
$ cat mnt/etc/fstab
< /boot の UUID を確認する >
$ sudo mount UUID=<UUID> <Raspberry Pi の />/boot
$ sudo xfs_growfs /dev/systemVG/LVRoot
<Raspberry Pi の />/etc/selinux/config
で SELINUX
を disabled
にする
$ sudo systemd-nspawn -D <Raspberry Pi の />
# systemctl enable [email protected]
# grubby --update-kernel=ALL --args="console=tty0 console=ttyGS0 modules-load=dwc2,g_serial"
なお、Ubuntu のときに設定した dtoverlay
はデフォルトの upstream-pi4
でも問題なく動いた。
PS > wsl --unmount \\.\PHYSICALDRIVE2
この操作を正しく終了しました。
Windows 機とシリアル接続して以下の作業を実施する
Ubuntu の場合
ユーザー名:ubuntu / パスワード:ubuntu
/etc/netplan/99-wifi.yaml
を以下の内容で新規作成する
network:
version: 2
wifis:
wlan0:
dhcp4: true
access-points:
<SSID>:
hidden: true
password: <パスフレーズ>
設定を反映する
$ sudo netplan apply
Fedora の場合
コンソールをつなぐとシリアルコンソールでも初期設定画面が上がっているため、root パスワードとタイムゾーンを設定する。その後、以下の設定を行う。
nmcli
経由で NetworkManager を使う設定をする
# nmcli c add type wifi con-name <接続名> ifname wlan0 ssid <SSID>
# nmcli con modify <接続名> wifi-sec.key-mgmt wpa-psk
# nmcli con mod <接続名> 802-11-wireless.mac-address-randomization 1
# nmcli con mod <接続名> 802-11-wireless.hidden TRUE
# nmcli con up <接続名> --ask
上記で再起動時にも wlan0 は up するはず。確認する場合は nmcli con edit <接続名>
で入り、 print connection.autoconnect
して yes
になっていることを確認する。
# dnf install xterm-resize