#【目標】
『Windows 10 に EDK2環境 を構築し、Visual Studio Community 2019 を
使って OVMF(OvmfPkg) をビルドする。』
#【前回まで】
ビルドに必要なツール類のインストールと設定は前回で完了しました。
今回は目標の一つ手前になるEDK2環境を準備します。
#【今回の目標】
EDK2環境を準備します。
・GitでEDK2のソースツリーをcloneする
・EDK2のBaseToolsを準備(ビルド)する
・MdeModulePkgをBuildする
ここまでできれば、OVMFのビルドができると思います。
OVMFのビルドは次回とします
#【EDK2のソースツリーの準備】
・コマンドプロンプトを開いて、次の通り入力します
git clone https://github.com/tianocore/edk2.git C:\EDK2
cd C:\EDK2
git submodule update --init
これで C:\EDK2 にEDK2のソースツリーが準備できました。
・EDK2のソースツリーの準備が成功したらコマンドプロンプトは
閉じてください
exit
・https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems
「How to Setup the EDK II Tree」に記載の手順となりますが、
これだけでは足りません
・https://github.com/tianocore/edk2/blob/master/ReadMe.rst
「Submodules」の手順も必要となります
引き続きEDK2 BaseToolsの準備(ビルド)をします。
#【EDK2 BaseToolsの準備(ビルド)】
・スタートメニューより「VS2015 x86 Native Tools Command Prompt」を
開いて、次の通り入力します
cd C:\EDK2
edksetup.bat Rebuild
※実行直後に以下のエラーが出ますが気にしないでください
- 「!!! ERROR !!! Cannot find BaseTools Bin Win32!!!」
見つけられなかったディレクトリは今回のビルドで作成されます。
※最後のほうで以下の2つのワーニングが出ますが気にしないでください
- 「!!! WARNING !!! CLANG_BIN environment variable is not set」
今後も CLANG は使わないので設定しません
- 「!!! WARNING !!! No CYGWIN_HOME set, gcc build may not be used !!!」
今後も CYGWIN は使わないので設定しません
dir C:\EDK2\BaseTools\Bin\Win32
※pdbやexeなどが生成できていれば成功です
成功していたら「VS2015 x86 Native Tools Command Prompt」は
exit で閉じてください
exit
・VS2015は「x64」ではなく「x86」を開いてください
EDK2 BaseToolsのC言語で書かれた各モジュールのmakefileは32bit用です
64bit用のコンパイラを使用するとエラーになります
・VS2019/2017ではなくVS2015としたのは、EDK2のちょっと古いバージョン
であるUDK2017での情報でVS2015を使用するとありましたので使いました
・https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems
「Compile Tools」に記載の手順となります
引き続きMdeModulePkgをビルドの準備をします。
#【MdeModulePkgのビルドの準備】
・メモ帳などで C:\EDK2\Conf\target.txt を開いて、以下の3か所を変更します
- ACTIVE_PLATFORM
旧) EmulatorPkg/EmulatorPkg.dsc
新) MdeModulePkg/MdeModulePkg.dsc
- TARGET_ARCH
旧) IA32
新) X64
- TOOL_CHAIN_TAG
旧) VS2015x86 (MYTOOLSの場合もある)
新) VS2019
変更したら C:\EDK2\Conf\target.txt を保存して閉じてください
・上記で MdeModulePkg のビルド設定は完了です。
・https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems
「Build MdeModulePkg」に記載の手順となります
・https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems-ToolChain-Matrix
「Windows systems ToolChain Matrix」も参照してください
TOOL_CHAIN_TAGの設定方法についての記載です
・Visual Studio 2017の場合、TOOL_CHAIN_TAG は VS2017 になります。
Visual Studio 2015の場合、VS2015x86 になります。
引き続き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 は使わないので設定しません
・そのまま【MdeModulePkgのビルド】へすすみます
・https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems
「Build」に記載の手順となります
#【MdeModulePkgのビルド】
・引き続き「x64 Native Tools Command Prompt for VS 2019」で
次の通り入力します
build
・"Done" が出たらビルドは終了です
結構待ちます
・以下のように入力して HelloWorld.efi が出来ていたら成功です
dir C:\EDK2\Build\MdeModule\DEBUG_VS2019\X64\HelloWorld.efi
EDK2環境の準備はここまでです。次回「3.OVMFのビルド」に続きます。
ありがとうございました。