前回、 UUP dump で見掛けたarm向けの Windows 11 Insider Previewを Raspberry Pi 4 に入れて起動させている例をネットでだいぶ見掛けるようになりました。実は発売当初に4GBモデルを冷却ファンと共に買ったものの、ずっと箱に入ったままの Raspberry Pi 4 に Windows 11 を入れてみました。
ハードウェア
今回使うハードウェアはおよそこの量になります。
Raspberry Pi 4 は本来8GBモデルが今回の目的にはベストなのですが、現在ではなかなか入手困難とも聞くので、手持ちの4GB版新品を開封。
発熱が大きいので能動的な冷却が必須とも聞き、Raspberry Pi 4購入当時に併せて買った冷却ファン付ヒートシンク。これらは全て淘寶で購入していますが、このヒートシンクは日本国内でもよく見掛ける商品ですね。
付属のサーマルパッドをCPUやRAMに貼り、Raspberry Pi 4基板をヒートシンクで上下から挟み込んでネジ止めします。
と、ここまでは通常のRaspberry Piハードウェア構成です。次にWindows 11を入れる起動用M.2 SSDとそのUSB3.0エンクロージャ、いずれも中華製の安物です。
エンクロージャのアルミ筐体はそれ自身がヒートシンクを兼ねており、M.2 SSDを装着した基板を差し込むと、半導体とすれすれでに接して放熱する仕組みのようです。それでも微妙にすき間があるように見えるので、発熱具合を見ながら対策が必要であれば、薄いサーマルパッドを貼るつもりです。
エンクロージャに入ったSSDは、Raspberry Pi 4のUSB3.0ポート(真ん中の列の2つ)に挿して使うのですが、その前にUSBブートを可能とするため、SDカードに入ったRaspberryPi OSから起動して作業を進めます。
Raspberry Pi OSをSDカードにセットアップ
最近は、公式配布のRaspberry Pi ImagerからSDカードにRaspberry Pi OSを焼く手法が主流なので、試してみたかったのですが、Ubuntu 18.04ではImagerのインストール時にエラーが出てしまい、残念ながらインストール出来ませんでした。従ってこれまで通り、ダウンロードしたイメージをddコマンドで焼きます(OSはLite版)。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ unzip 2021-05-07-raspios-buster-armhf-lite.zip Archive: 2021-05-07-raspios-buster-armhf-lite.zip inflating: 2021-05-07-raspios-buster-armhf-lite.img $ ls -l ./2021-05* -rw-r--r-- 1 user user 1874853888 May 7 23:00 ./2021-05-07-raspios-buster-armhf-lite.img -rw-rw-r-- 1 user user 465662909 Jul 7 11:12 ./2021-05-07-raspios-buster-armhf-lite.zip $ sudo dd if=./2021-05-07-raspios-buster-armhf-lite.img of=/dev/sdd bs=4M conv=fsync status=progress 1870659584 bytes (1.9 GB, 1.7 GiB) copied, 128 s, 14.6 MB/s 447+0 レコード入力 447+0 レコード出力 1874853888 bytes (1.9 GB, 1.7 GiB) copied, 198.999 s, 9.4 MB/s $ sudo sync |
SDカードを焼き終えたら、母艦に挿し直し、bootパーティションの中に ssh という空ファイルを作り、起動時からsshを有効にします。さらに同じ場所に wpa_supplicant.conf を作ってWiFi接続情報も予め作っておくと、起動時にシステムが自動的に読み取って接続を試みるので便利です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ pwd /media/user/boot $ touch ssh $ ls -l ss* -rw-r--r-- 1 user user 0 Jul 7 15:01 ssh $ cat ./wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=HK network={ ssid="SSID" psk="PASSPHRASE" } |
Raspberry Pi OSを起動しUSBブート可能にする
Raspberry Pi OSの入ったSDカードのみをRaspberry Pi 4に挿して起動させ、sshコンソールよりアクセスしてまずはシステムを最新にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ sudo apt update $ sudo apt full-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following package was automatically installed and is no longer required: python-colorzero Use 'sudo apt autoremove' to remove it. The following packages will be upgraded: base-files firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek isc-dhcp-client isc-dhcp-common klibc-utils libgcrypt20 libgnutls30 libhogweed4 libklibc liblz4-1 libnettle6 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 libx11-6 libx11-data libxml2 linux-libc-dev pi-bluetooth python-gpiozero python-spidev python3-gpiozero python3-spidev raspberrypi-bootloader raspberrypi-kernel raspberrypi-sys-mods rpi-eeprom rpi-update 33 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 138 MB of archives. After this operation, 5093 kB of additional disk space will be used. Do you want to continue? [Y/n] y -略- |
5月末リリースのシステムイメージから一ヶ月半程度経ったばかりですが、鋭意更新がなされているようで、思った以上のパッケージが更新されました。続いてRaspberry Pi用Firmwareを更新します(更新後は必ず再起動)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
$ sudo rpi-update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** Performing self-update *** Relaunching after update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** We're running for the first time *** Backing up files (this will take a few minutes) *** Backing up firmware *** Backing up modules 5.10.17-v7l+ A newer bootloader EEPROM version is available. On Debian, try: sudo apt update; sudo apt install rpi-eeprom then reboot to install the new bootloader ############################################################# WARNING: This update bumps to rpi-5.10.y linux tree See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=288234 'rpi-update' should only be used if there is a specific reason to do so - for example, a request by a Raspberry Pi engineer or if you want to help the testing effort and are comfortable with restoring if there are regressions. DO NOT use 'rpi-update' as part of a regular update process. ############################################################## Would you like to proceed? (y/N) *** Downloading specific firmware revision (this will take a few minutes) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 168 100 168 0 0 593 0 --:--:-- --:--:-- --:--:-- 593 100 120M 100 120M 0 0 3982k 0 0:00:31 0:00:31 --:--:-- 4426k *** Updating firmware *** Updating kernel modules *** depmod 5.10.46+ *** depmod 5.10.46-v7l+ *** depmod 5.10.46-v8+ *** depmod 5.10.46-v7+ *** Updating VideoCore libraries *** Using HardFP libraries *** Updating SDK *** Running ldconfig *** Storing current firmware revision *** Deleting downloaded files *** Syncing changes to disk *** If no errors appeared, your firmware was successfully updated to 9dbcd6dfed16cc7de4a67b9ca445c4847f68c4c2 *** A reboot is needed to activate the new firmware $ sudo reboot |
再起動後、最新のブートローダをインストールして、また再起動。
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo rpi-eeprom-update -d -a BOOTLOADER: up to date CURRENT: Thu Apr 29 16:11:25 UTC 2021 (1619712685) LATEST: Thu Apr 29 16:11:25 UTC 2021 (1619712685) RELEASE: default (/lib/firmware/raspberrypi/bootloader/default) Use raspi-config to change the release. VL805_FW: Dedicated VL805 EEPROM VL805: up to date CURRENT: 000138a1 LATEST: 000138a1 $ sudo reboot |
再起動後、raspi-configでRaspberry PiをUSBデバイスからブート可能出来るように変更します。
1 |
$ sudo raspi-config |
メニュートップからAdvanced Optionsへ進みます。
次にBootloader Versionを選択。
Bootloader Versionでは「Latest」を選択して、最新のブートROMを使うように仕向けます。「OK」を押して確定。
設定変更の確認ウィンドウでブートROMをデフォルトにリセットするか聞かれますが、「No」を選択します。
これでブート関連の設定の一つが終わりました。尚、raspi-configのバージョンによって遷移が異なる場合もあります。この設定項目が見当たらない場合は、トップからSystem Optionsを辿ってみてください。
もう一つのBoot Orderに関する設定も、Advanced Optionsの中にあります。
Boot Orderの設定では、「USB Boot」を選び、USBデバイスからのブートを有効にします。
必要な設定は以上です。メニュートップで「Finish」を押して終了すると再起動を促されますが「No」でそのままシェルに戻り、一旦Raspberry Pi 4の電源を落とし、SDカードももう必要ないので抜いてしまいます。
USB2の最大速度は60MB/s、現実的には30MB/sくらいなので、それ超えてる時点でUSB3.0以上確定です。
なのに他のPCのUSB3より遅いことや、インストールしたWindowsが遅いのは、CPUやその周辺チップが遅いのが原因です。
USB3.0の最大速度だと処理が追いつかず減速してます。
といっても、組み込み機器として考えたらかなり優秀ですね
Coreエディション選んで、券売機や広告再生機とか作ると良さそう。