Linux Ubuntu 14.04平台下安装EDK2
博客是基于https://github.com/tianocore/tianocore.github.io/wiki/Common-instructions和《UEFI原理和编程》完成的。
git clone https://github.com/tianocore/edk2
来下载github网页上的EDK2源码
git clone 可能会遇到ubuntu下网速较慢的情况。此时之需要在 /etc/hosts 源码中加上
151.101.72.249 http://global-ssl.fastly.Net
192.30.253.112 http://github.com
安装工具链
sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm
build-essential - 构建必备软件包的信息列表
uuid-dev - 通用唯一ID库(头文件和静态库)
iasl - 英特尔ASL编译器/反编译器(也由acpica-tools提供)
git - 支持git版本控制系统
gcc-5 - GNU C编译器(从Ubuntu 16.04 LTS开始,为v5.4.0)
nasm - 通用x86汇编程序
进入edk2目录下
make -C BaseTools
建立build环境
. edksetup.sh
or
source edksetup.sh
修改edk2/Conf/target.txt
将 ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
修改为ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
将 TOOL_CHAIN_TAG = MYTOOLS
修改为TOOL_CHAIN_TAG = GCC5(如果你用的是GCC4.6的话,这个地方就写成GCC46)
将 TARGET_ARCH = IA32
修改成TARGET_ARCH = X64(也可以修改成“IA32 X64”,具体看你的硬件类型了。)
在MdeModuler下找到build.sh,然后可以编译
./build.sh
不带参数的build相当于build -a IA32 -p MdeModulerPkg/MdeModulerPkg.dsc
编译结束之后原理上可以直接build run来运行模拟环境,但是我遇到的问题是找不到SecMain文件,也就是可执行文件。至今还没有找到合适的解决办法,如果你有较好的办法,请指教!