覚え書き。

edk2はハマりどころが多い上にビルドのたびに設定ファイルをいじらないと行けなかったりしてちょっとイケてない感じなので、とりあえずちょっとUEFIでなんか動かしてみたいってだけの人は gnu-efi を使ったようが良さそうです。

基本的に以下のサイトに書かれている通りにやればいけるはずです。

https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems

https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-Writing-Simple-Application

EDK2の用意

まずは以下の2つのリポジトリをcloneします。

tianocore/edk2

tianocore/edk2-BaseTools-win32

以下、edk2をC:\edk2にcloneしたものとして話を進めます。

次に、edk2-BaseTools-win32の中身をC:\edk2\BaseTools\Bin\Win32にコピー。

NASMのインストール

以下のページに書いてあるとおりに、NASMをインストールします。

https://github.com/tianocore/tianocore.github.io/wiki/Nasm-Setup

このあと環境変数NASM_PREFIXの設定をしなければならないのですが、この環境変数はあくまでprefixなので

set NASM_PREFIX=C:\NASM

とか書くとC:\NASMnasmを呼ばれて死にます。ちゃんとバックスラッシュも入れましょう。

ASLのインストール

以下の指示に従ってASLをインストールします。

https://github.com/tianocore/tianocore.github.io/wiki/Asl-Setup

target.txtの編集

まずは以下のコマンドを打ちます。

> cd C:\edk2
> edksetup.bat

これでC:\edk2\Conf以下にtarget.txtというファイルが作られたはずです。このファイルのうち、以下の部分を編集します。

TARGET_ARCH = (IA32とかX64とか)
TOOL_CHAIN_TAG = (使用するツールチェイン。名前の詳細は同ディレクトリのtool_chain_def.txtにある)
ACTIVE_PLATFORM = (ビルドするプラットフォームの.dscファイル。とりあえずDuetPkg/DuetPkgX64.dscとかを設定しておくとサンプルアプリケーションとかが入ったやつがビルドされる)

これでとりあえず何かをビルドできる環境が整ったはずです。

> build

と打てばC:\edk2\Build以下にビルドされたバイナリとかが吐かれるはずです。サンプルの中にHelloWorld.efiとかがあるので適当に実行してみましょう。実行方法とかについてはまた今度書きます。

ちなみに、build cleanで生成したファイルを全部削除してくれます。