直奔主题,按以下步骤既可以编译运行固件程序
第一步:选择合适的版本,下载EDK2源码(gitee也可以)
git clone https://github.com/tianocore/edk2.git
第二步:命令行下载依赖子模块
cd edk2
git submodule update --init --recursive #递归下载
第三步:如果第二步操作失败,执行如下操作手动添加以来模块
cd edk2
cat .gitmodules #查看依赖子模块和对应安装位置
git submodule status # 查看所有子模块的提交哈希
git ls-tree HEAD -r | grep "commit" # 或查看主仓库记录的子模块提交的hash值
根据获取到的依赖模块的哈希值,魔法github上查询该模块,在url后面拼接该哈希值,就可以获取正确版本的以来模块。最后将对应的代码下载到EDK2指定位置。
第四步:安装编译链工具
sudo apt install build-essential nasm acpica-tools # Ubuntu/Debian
sudo apt install libx11-dev
sudo apt install libxext-dev
第五步:初始化编译环境
# 在EDK2根目录下运行
source edksetup.sh # Linux/macOS
第六步:编译BaseTools
make -C BaseTools
第七步:执行编译命令
build -p EmulatorPkg/EmulatorPkg.dsc -a X64 -t GCC5 -b DEBUG
第八步:运行
find ./Build -name "Host" #找到文件位置
进入目录FV_RECOVERY.fd这个文件的目录下面,执行 ./全路径/Host
如下界面就可以看到了