【目標】
『Windows 10 に EDK2環境 を構築し、Visual Studio Community 2019 を
使って OVMF(OvmfPkg) をビルドする。』
【前回まで】
前回でEDK2環境の準備が完了し、HelloWorld.efiがビルドできました。
今回は目標となっていたOVMFをビルドします。
OVMFとは何ぞ?という方はこちらをご覧ください。
https://github.com/tianocore/tianocore.github.io/wiki/OVMF
ざっくりと仮想PCで動作するUEFI一式みたいな感じです。
【今回の目標】
64bit版OVMF(OvmfPkg)をビルドします。
ビルドしたOVMFでQEMUを動作させたいと思います。
まず EDK2ビルド用コマンドプロンプト を準備します
【EDK2ビルド用コマンドプロンプト】
・スタートメニューより「x64 Native Tools Command Prompt for VS 2019」を
開いて、次の通り入力します
chcp 65001
※使用する文字コードをUTF-8にしてビルド実行中の日本語文字化け
に対処します。
cd C:\EDK2
edksetup.bat
※以下の1つのエラーは気にしないでください
- 「!!! ERROR !!! Binary C tools are missing. They are required to be built from BaseTools Source.」
BaseToolsでsplit.exeを生成しなくなったのにチェックして
いるようです
※以下の2つのワーニングが出ますが気にしないでください
- 「!!! WARNING !!! CLANG_BIN environment variable is not set」
今後も CLANG は使わないので設定しません
- 「!!! WARNING !!! No CYGWIN_HOME set, gcc build may not be used !!!」
今後も CYGWIN は使わないので設定しません
・そのまま【64bit版OVMF(OvmfPkg)のビルド】へすすみます
・https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems
「Build」に記載の手順となります
次に 64bit版OVMF(OvmfPkg)のビルド をやってみます
【64bit版OVMF(OvmfPkg)のビルド】
・引き続き「x64 Native Tools Command Prompt for VS 2019」で
次の通り入力します
build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t VS2019 -b DEBUG
Visual Studio 2017 の場合は、VS2019 を VS2017 としてください。
・"Done" が出たらビルドは終了です
・以下のように入力して OVMF.fd が出来ていたら成功です
dir C:\edk2\Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd
こちらもVisual Studio 2017 の場合は、VS2019 を VS2017 としてください。
せっかくですので、QEMUを使って ビルドした64bit版OVMF の動作確認をします。
https://www.qemu.org/
まずはQEMUのインストールから。
【QEMUのインストール】
・64bit版のインストーラーを使ってインストールします
https://www.qemu.org/download/#windows
・このインストールでは特別な設定が必要ありませんでしたので、
画像などは省略します
・その他はお好みで設定してください
【ビルドした64bit版OVMF】
・コマンドプロンプトを開いて次の通り入力します
"C:\Program Files\qemu\qemu-system-x86_64.exe" -machine q35,smm=on -m 8G -smp 4 -global ICH9-LPC.disable_s3=1 -bios C:\EDK2\Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd -net none
こちらもVisual Studio 2017 の場合は、VS2019 を VS2017 としてください。
・各パラメータの意味は以下の通りです
-machine q35,smm=on : 仮想PCのHW構成を指定しています
-m 8G : 仮想メモリとして8GBを指定しています
-smp 4 : 使用するCPUコア数として4を指定しています
-global ICH9-LPC.disable_s3=1 : 64bit版OVMF使用時に必要となる指定です
-bios C:\EDK2\Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd : ビルドした64bit版OVMFです
-net none : ネットワークなしを指定しています
・ビルドした64bit版OVMFでQEMUが起動すると、以下のような画面になります。
・64bit版OVMFなしでQEMUが起動すると、以下のような画面になります。
パラメータ不正の場合にはQEMUが起動しないかもしれません。
OVMFのビルドはここまでです。目標は達成しましたが、
もう少し続くかもしれません。
ありがとうございました。