UEFI原理与实践笔记_Q&A

UEFI原理与实践笔记(三)-Q&A
记录一下搭建环境和Hello World中出现的问题
EDK2-stable-202008 && win10 pro 2004

iasl设置

解压完之后需放到C:\ASL目录下,否则编译OVMF时会报错

BaseTools 设置

执行edksetup.bat前,必须先进入 BaseTools 补全brotli(见下一个标题),依次执行vsvars32.batget_vsvars.bat,接着设置两个环境变量如图所示


接下来执行toolsetup.bat,否则会报错

使用pip install edk2-basetools好像也是可以的,没有具体实验 (试了不行)

brotli not found ERROR

可以在EDK2的github界面找到位置,将对应代码下载下来
这里在MdeModulePkgBaseTools中都有涉及,务必注意

设置环境变量

按照报的Warning设置好环境变量,这里说一下clang的路径是Microsoft Visual Studio\2019\BuildTools\VC\Tools\Llvm\x64\bin

cmocka not found ERROR

编译时可能出现以下错误

解决办法如下:

找到cmocka库,将代码放到cmocka文件夹中,链接为https://github.com/clibs/cmocka,截图如下

CryptoPkg编译失败

针对这个ERROR,主要是openssl版本不对的问题,使用git checkout <版本号>切换到EDK2需要的版本

环境效果

最后的生成和之前文章里说的没有什么区别

编译好的结果链接:https://github.com/jygzyc/UEFI_OVMF,记得把QEMU的路径换成自己的,应该就可以运行了。