こんにちは。七宮さん(@Shichinomiya_s)です。
私の以前のサイトで「Lumia 950 XLにARM版Windows 10を導入してみよう!」という内容の記事を投稿しましたが、今回はそれのRaspberry Pi 4版です。
Raspberry Pi 3ではARM版Windows 10が動作する話が出ていましたが、Pi 4でも一工夫加えれば動作可能です。
前提条件として『Raspberry Pi 3』を持っている人限定になります。持ってない人はAmazonでポチるか友人に借りましょう。
一応、導入編の最後の最後に、Pi 3を所有していなくても試せる方法を記載しておきます。(おススメはできません。)
なお、この手法を公開して下さったMarcin氏(@Marcinoo97)にはこの場を借りて御礼申し上げます。
あ、Microsoft Lumia 950 XLで動作させるお話は下記URLから見てください。
【準備編】Lumia 950 XLでARM版Windows 10を動作させるお話。
【導入編】Lumia 950 XLでARM版Windows 10を動作させるお話。
0.用意するもの
・Raspberry Pi 4
・Raspberry Pi 3
・Type-C接続のType-Aハブ(電源供給可能なもの)
・microSD
・USBメモリ(なるべく最速なものが望ましい)
1.注意事項
今回利用する『ARM版Windows 10』はMicrosoft社から公式にISOデータは公開されてなく、Microsoft社が正式公開している『Unified Update Platform (UUP)』を利用し、そのUUPに公開されているファイルを集めてISOデータを作成します。その為、ISO化するために補助ソフトウェアが必要で今回はそれを使用します。
決して社外の不正に公開されている元からダウンロードするものではありません。なお、この方式はWindows上でWindows 10等のインストールUSBやISOを作成するのに利用する『MediaCreationTool』にも利用されている手法です。
また、大前提ではありますが、ARM版Windows 10にもライセンス認証は必須です。
Lumia 950やRaspberry Pi 3へARM版Windows 10を導入させて「ライセンスキーがARM版だと異なるかもしれないからよくわからない」と言った有耶無耶にしている記事が多く散見されます。
arm64だとライセンスが異なるという理論であれば、x86とx86_64でもアーキテクチャが異なるのでライセンスが変わるということになります。Windows XPでは別途『Professional x64 Edition』が用意されていますが、Vista以降は共通です。よってarm64もx86, x86_64もすべてライセンスは同じです。
また、Lumia 950 XLに導入した際に通常のライセンスキーでライセンス認証が行えましたので、通常のライセンスキーのご用意をお願いします。
夢の話で終わらせないように気を付けましょう。
Lumia 950 XLにてライセンス認証を行った部分は、下記記事に記載されております。
【導入編】Lumia 950 XLでARM版Windows 10を動作させるお話。 -5.Windows 10のライセンス認証-
2.ISOの準備
前回のLumia 950 XLの記事では、あまりにも工程があったために省きましたが、今回はそれほど工程がないので記載します。
注意事項でも記載しましたが、Microsoft社が正式公開している『Unified Update Platform (UUP)』を利用し、そのUUPに公開されているファイルを集めてISOデータを作成を行います。
UUP (Unified Update Platform) Generation Project (v2.4.8 RC2) [by @rgadguard & mkuba50]
上記のサイトにアクセスし、左側の選択画面を
Select type→Windows (Final Edition)
Select version→Feature update to Windows 10, version 1803[arm64]
Select language→English (多分、日本語でも可)
Select Edition→用意したライセンスに合うもの。(ちなみにWin10はエディションを間違えてもライセンスキーに合わせてエディション変更してくれます。)
Select type download→Download ISO compiler in OneClick! (run download CMD-file)
にし、右側に表示される、『creatingISO_17134.191_en-us_arm64_Professional.cmd』をクリックし、.cmdファイルをダウンロードします。
ダウンロードした『creatingISO_17134.191_en-us_arm64_Professional.cmd』を開くとコマンドプロンプトが起動します。
完了するまで放置プレイです。ウィンドウを下に下して、ダウンロードを行っている間に次の工程へと進みましょう。
3.展開ソフトウェアやUEFIなどのダウンロード
普通にダウンロードするだけですが、有志の開発者様にお礼を言いながらダウンロードしましょう。
4.WoR imagerでのARM版Windows 10の展開
『2.ISOの準備』のISOファイルの作成に成功したら次にWindows 10をUSBメモリ上に展開します。
WoR imagerを起動します。すると、言語選択画面になりますので、適当な言語を選択します。
次にデバイスの選択です。USBメモリを選択します。(要:下記の注意事項参照)
先程ダウンロードしたISOを選択し、エディションを選択します。
ドライバは自動ダウンロードにしておきましょう。
UEFIも自動ダウンロードにしておきましょう。
最後の設定画面です。『パーティション構成』を「GPT」に変更し、次に進みます。
最終確認画面です。特に問題がなければ『インストール』に進みましょう。
インストールはかなり時間がかかります。SanDisk Extreme ProのUSBメモリでも使用してない限り、30分以上はかかると思うので覚悟しておいてください。
ちなみに私はUSB 3.0のカードリーダを用いて、普段は一眼レフに用いてるSanDisk Extreme ProのSDカードを用いました。めっちゃ早かった。
成功したら終了です。
☆注意事項☆
「USBメモリ(EMMC)だと遅いじゃん!馬鹿かコイツは!ワイはSSD使うぞ!」と思ってるスクリーンの前の皆さん。
何故か外付けSSDで行うとドライブレターが狂ってエラー表示が出ます。そして、何故かRAW+書き込み禁止という最悪な状況になります。
既に時遅しの場合は、『デバイスマネージャ』から当該のSSDドライブのドライバをアンインストールしてフォーマットを行いましょう。
他のOS(macOS等)でフォーマットしても、何故がRAW+書き込み禁止になるので、ドライバをアンインストールしましょう。
5.diskpartを用いた後処理
管理者権限を付与させたコマンドプロンプトを起動し、Diskpartを呼び出します。
list disk
からPCに接続されているストレージデバイスの一覧を出し、USBメモリを見つけ出します。
今回の場合ですと、容量的に見てUSBメモリはdisk 4ですね。select disk 4
と入力しターゲットをディスク4にします。
list partition
と入力し、パーテーション情報をリスト化させます。
EFI領域をターゲットパーテーションにしたいので、select partition 1
と入力します。
set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
と入力し、パーテーションIDを指定します。
assign letter K
と入力し、ドライブレターKとして認識させます。
更に別のウィンドウで管理者権限を付与させたコマンドプロンプトを起動させます。
bcdedit /store K:\EFI\Microsoft\Boot\bcd /set {default} recoveryenabled no
と入力します。
bcdedit /store K:\EFI\Microsoft\Boot\bcd /set {default} truncatememory 0x40000000
と入力します。
Diskpartを起動させていたコマンドプロンプトに戻ります。
remove letter=T
と入力し、ドライブレターを削除します。
set id=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
と入力し、ブート可能なパーテーションIDを指定します。
コマンドプロンプトを終了させます。これで、後処理は終了です。
『取り外し操作』を行ってからPCからUSBメモリを抜き出します。
5.Raspberry Pi 3でいったん起動する。
出来上がったUSBメモリをRaspberry Pi 3に差し込み起動させます。
(写真撮り忘れてPi 4ですがほぼ同じです。)
UEFIが読み込まれている画面で『Esc』キーを押すとこのような設定画面に入ります。
『Device Manager』を選択します。
『Raspberry Pi Configuration』を選択します。
『Chipset Configuration』を選択します。
すると、SoCのクロック数などが変更できる画面になるので、『CPU Clock』を選択し、『Max』に変更します。
選択が終わったら、『Esc』キーを2回連打し、保存するかの確認ダイアログが出るので『Y』キーを押します。
『Reset』を選択します。取り消しではなく、再起動という意味なので保存した値は消えません。
再び、UEFIの設定画面に入り、画面右側のクロックが最大になっていれば大丈夫です。そのまま『Contiue』を選択しましょう。
あとは、そのままWindows 10を起動させて通常通りセットアップ(OOBE)を終了させ、シャットダウンさせます。
これで、Raspberry Pi 3で行う操作は終了です。
6.Raspberry Pi 4で干渉してしまう Pi 3向けドライバの削除
Raspberry Pi 3で使用したUSBメモリをPCに差し込み、Windows OSが入っているパーティションにドライブレターを割り当てます。
工程5でドライブレターを割り当てる操作は既に行っているので、特記はしませんが、Diskpartのログを下記に掲載しておきます。
(120GBのSSD使用したのでこれをUSBメモリと考えていただけると幸いです)
先程、ダウンロードした『Dism++』を解凍し、自分が使用するPCの環境にあった実行ファイルを起動させます。
Dism++が起動すると、このような画面になるので、『ARM 64』と書かれた方のタブをクリックし、操作するターゲットを変更します。
切り替わったら次に『上級者モード』に変更します。『オプション』→『もっと設定』をクリックして設定画面に入ります。
(More Settingsの直訳で「もっと設定」は笑えますね。)
設定画面で『上級者モード』にチェックを入れます。チェックを入れたら『OK』をクリックします。
続いて、『セッションを開く』をクリックし、USBメモリ内のWindowsの情報を読み込みます。
左側のメニュー一覧から『ドライバの管理』をクリックします。
すると、ドライバ一覧が表示されます。
ここで、『lan7800』『lan9500』『SerPL011』『bcmauxspi』を探し出してチェックをいれ、右下の『削除』をクリックします。
削除されると、成功ダイアログが表示されます。これで終了です。
最後に『取り外し操作』を行ってからPCからUSBメモリを抜き出します。
7.Raspberry Pi 4での起動
Raspberry Pi 4に電源供給ができるType-Cハブを用いて先程ドライバを削除したUSBメモリ、キーボード、マウス、UEFIの入ったmicroSDカードを接続させます。
Type-Cから電源供給できてUSBポートが3ポート以上あるものなら良いんですけど、そんな予算はなくてこんな酷い構成です。
(USBメモリだと遅すぎたので丸ごとSSDに放り込みました。)
起動させたら、工程5を参考にCPUクロックを最大にさせてから起動させます。
1回BSoDが表示されますが、2回目の起動では正常に起動し、ロック画面が表示されれば成功です。お疲れさまでした。
8.動作速度などに関して
思ったより早いというのが本音です。良くCeleron PCでもSSD化させれば快適に動くと言われているように、SSDの恩恵を受けているからかもしれません。
以前に試したLumia 950 XLよりも断然処理が早いという印象を受けます。
タスクマネージャはこんな感じ。BCM2711 Cortex-A72とちゃんと表示できていますね。RAMが1GBしか認識されないのは『USB xHCI』の問題らしいです。
microSDからブートさせた場合には問題なく認識できるらしいです。microSDからのブートにも挑戦しましたが残念ながら私の浅はかな知識では無理でした。
ただ、やっぱりこのようにUSBマウスやキーボードを操作したり負荷のかかる処理を行うと稲妻マークが表示されます。
これは電力不足を表すマークですので、5V 3Aの15Wでは足りていないのかもしれません。
てか、USB 3.0 (5V-0.9A)にSSD(5V-1A)を差し込んでいる時点でもうお察しなのですが…笑
電源供給できる3.5インチ HDDなどを用いたらもしかすると稲妻マークが表示されずに快適に動作するかもしれません。
時間があったら実験してみたいと思います。
最初の導入で記載した『Pi 3を所有していなくても試せる方法』は参考文献をご参照ください。私は責任取りません。
9.参考文献
・How-to: installing windows 10 arm64 (17134) on your raspberry pi 3 and 4