QEMU の為の UEFI ファームウェアのビルド手順¶
概要¶
仮想環境 KVM 上の VM で UEFI を利用したい場合は OSS の仮想マシン用 UEFI ファームウェア OVMF.fd を使用する。
Webで公開されている OVMF.fd は 2014/02/10 の物で大変古い上にファームウェアと NVRAM が分離していない為に不便である。
ファームウェアの OVMF_CODE.fd と NVRAM の OVMF_VARS.fd に分離可能な最新版を使う為に GitHub の edk2 プロジェクトの最新版のソース を clone してビルドする。
下記は Gentoo Linux の環境を使った手順である。
環境構築¶
gcc をアップデート、その他必要なパッケージを導入する。
emerge -uvt sys-devel/gcc
gcc-config -l
emerge -avt dev-lang/nasm
emerge -avt sys-power/iasl
# Git のインストール
emerge -avt dev-vcs/git
# python の USEフラグに sqlite が必要なので適宜リビルドする
USE=sqlite emerge -avt python
ソースの入手¶
Github よりソースを clone する
git clone https://github.com/tianocore/edk2.git
# 2回目以降は clone せずに pull する
git clean -fxd
git pull
edk2 の環境設定¶
OVMF をビルドする為の設定を実施する
cd edk2
make -C BaseTools
source edksetup.sh
target.txt を書き換える
vim Conf/target.txt
ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc
# gcc の表記はバージョンに合わせる
TOOL_CHAIN_TAG = GCC49
TARGET_ARCH = X64
ソースのビルド¶
build コマンドを打ちソースをビルドする
build
# 成功した場合の表示例
# - Done -
# Build end time: 20:30:02, Sep.03 2016
# Build total time: 00:01:45
# オプションを付けてビルドする事も可能
build -a X64 -p OvmfPkg/OvmfPkgX64.dsc
ビルドされたバイナリの場所¶
edk2/Build/OvmfX64/DEBUG_GCC49/FV/OVMF_CODE.fd
edk2/Build/OvmfX64/DEBUG_GCC49/FV/OVMF_VARS.fd
第13日目 Sphinxドキュメントを編集する その10
libvirt の UEFI 設定