EDK2下载链接:https://github.com/tianocore/edk2
本文以UDK2018+MacOS为例
Tips:Github加速
配置环境
具体请参照官方文档Getting-Started-with-EDK-II,EDK2需要以下环境:
nasm gcc/llvm
uuid iasl(acpi-tools/acpica)
git python/python3
其中Python以前使用的是Python2,目前最新(edk2-202305)需要Python3,请自行测试。
编译
首先应该编译的是BaseTools,手动编译能省去不少麻烦
cd BaseTools
make
由于代码问题,可能出现一些错误已知有如下错误:
‘Decompress.c’ 在未使用#undef的情况下重新定义宏定义,可在其前面增加#undef
部分变量设定了但是没有使用,如果不考虑其他后果可以使用sed -i "s/-Werror//g" $(grep -rl \\-Werror .)(MacOS自带sed使用sed -i "" "s/-Werror//g" $(grep -rl \\-Werror .))
同时安装了两套gcc或binutils可能造成ld: warning: ignoring file LIB, building for ARCH but attempting to link with file built for ARCH,详见ld: warning: ignoring file LIB, building for ARCH but attempting to link with file built for ARCH
之后再edk2根目录下执行build即可
OvmfX64:build -a X64 -t XCODE5 -p OvmfPkg/OvmfPkgX64.dsc -b RELEASE(-b默认DEBUG,需要特殊方法调试启动,不然Guest has not initialized the display (yet).)
OvmfIA32:build -a IA32 -t XCODE5 -p OvmfPkg/OvmfPkgIA32.dsc -b RELEASE
编译后应在Build/OvmfX64/RELEASE_XCODE5/FV或Build/OvmfIA32/RELEASE_XCODE5/FV下生成OVMF.fd OVMF_CODE.fd OVMF_VARS.fd
.fd文件可搭配qemu使用,如
qemu-system-x86_64 -pflash OVMF_CODE.fd
qemu-system-x86_64 -bios OVMF.fd

本文以UDK2018+MacOS为例,介绍EDK2的环境配置与编译。配置环境需参照官方文档,EDK2需要特定环境,Python版本有要求。编译时先编译BaseTools,可能会遇到代码错误,编译后会生成.fd文件可搭配qemu使用。
1069

被折叠的 条评论
为什么被折叠?



