LoginSignup
0
0

More than 1 year has passed since last update.

Windows + Visual Studio 2019 で EDK2 の OVMF をビルドする【2.EDK2環境の準備】

Posted at

【目標】

『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のソースツリーが準備できました。
Git-Clone-EDK2.png
・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のビルド」に続きます。
ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0