MacOS/Linux(Unix-like)编译edk2

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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/FVBuild/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值