本文主要是介绍UEFI 之 EDK2 环境的搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下载代码
下载代码主要是在githun,但需要说明的是,直接克隆的代码是不完整的,少好多的子目录和StdLib等;
- 克隆代码:
git clone https://github.com/tianocore/edk2.git
- 克隆子目录代码
cd edk2
git submodule update --init
- 更新子目录代码
cd edk2
git pull
git submodule update
如果无法更新就加这个参数--recursive
- 子目录包括
CryptoPkg/Library/OpensslLib/openssl
ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
MdeModulePkg/Universal/RegularExpressionDxe/oniguruma
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
BaseTools/Source/C/BrotliCompress/brotli
- 更新Libc
19年开始,edk2-filter 就把AppPkg
,StdLib
,StdLibPrivateInternalFiles
分离到edk2-libc
了,所以最新的EDK2代码中是不包括这几个包的,如开发中需要这几个包,就需要把他们导进来;
配置环境变量export PATHS_TO_KEEP="./AppPkg ./StdLib ./StdLibPrivateInternalFiles ./Maintainers.txt ./License* ./Read*"
进入到上面克隆好的edk文件夹cd edk2-filter
切换到master分支git checkout master
移除远程路径git remote rm origin
执行导入命令,时间比较长
git filter-branch -f --index-filter "git rm --ignore-unmatch --cached -qr -- . && git reset -q \$GIT_COMMIT -- $PATHS_TO_KEEP" --prune-empty -- "master"
原理:就是UDK的分支中吧之前AppPkg
, StdLib
, StdLibPrivateInternalFiles
了log分离出来;
如Edk工程中需要,自己拷贝即可
编译环境
- 安装gcc5(根据开发平台定)
sudo apt-get install gcc-5 g+±5 - 安装nasm
sudo apt-get install nasm - 安装build
sudo apt-get install build-essential uuid-dev - 安装python
sudo apt-get install python
sudo apt-get install python3-distutils
编译
- BaseTools目录下编译工具
make
- edk根目录执行
source edksetup.sh
说明:如果提示没有Conf,可以从BaseTools中拷贝一个 - 然后就可以编译自己的平台了
以EmulatorPkg为例执行如下命令
EmulatorPkg/build.sh
这篇关于UEFI 之 EDK2 环境的搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!