EDK2开发环境搭建

Posted lsgxeva

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EDK2开发环境搭建相关的知识,希望对你有一定的参考价值。

EDK2开发环境搭建

来源 https://blog.csdn.net/rikeyone/article/details/80759724

 

EDK2全称为“uEFI Development Kit”,是intel开源的一套符合UEFI标准的实现。

 

edk2环境搭建

代码下载

git clone https://github.com/tianocore/edk2.git

安装编译环境
sudo apt-get install build-essential uuid-dev nasm


edk2编译:命令行编译

1.编译base tool
export WORKSPACE=dir/to/edk2
make -C $WORKSPACE/BaseTools

2.初始化编译环境
cd $WORKSPACE
source envsetup.sh

3.命令行编译platform pkg
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -b DEBUG -t GCC48 -D BUILD_64 -D UNIX_SEC_BUILD -n 3
option说明:
-p PLATFORMFILE: 目标平台描述文件
-a TARGETARCH: 目标平台X64/IA32
-b BUILDTARGET: 可选项(DEBUG, RELEASE, NOOPT),将只编译dsc文件中特定的模块
-m MODULEFILE: 编译目标module
-t TOOLCHAIN : 使用目标编译器编译
-n THREADNUMBER : 多线程编译
-D MACROS: Macro格式: "Name [= Value]",传入宏定义


edk2编译 :配置文件编译

除了上面介绍的命令行,可以通过配置文件来编译目标,对应的配置文件目录在edk2/Conf中:

Linux@x86_64: ~/edk2 $ ls Conf/
BuildEnv.sh build_rule.txt target.txt tools_def.txt

1.编译base tool
export WORKSPACE=dir/to/edk2
make -C $WORKSPACE/BaseTools

2.初始化编译环境
cd $WORKSPACE
source envsetup.sh

本步骤把build命令加入的环境变量中之外,还会生成默认的Conf文件,我们需要根据自己的需要重新配置对应文件。

 

3.配置target.txt
ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc
TARGET = DEBUG
TARGET_ARCH = X64
TOOL_CHAIN_TAG = GCC48
MAX_CONCURRENT_THREAD_NUMBER = 9
BUILD_RULE_CONF = Conf/build_rule.txt

4.开始编译
Linux@x86_64: ~/edk2 $ build -D BUILD_64 -D UNIX_SEC_BUILD

通过配置文件的方式,大大简化了命令行的输入,如果命令行传入了相同的配置参数,则会覆盖配置文件target.txt中的定义。

 

edk2编译清除:

清除BaseTool
Linux@x86_64: ~/edk2 $ make -C BaseTools clean

清除目标板编译文件
build clean
build cleanall


Emulator模拟器运行

EmulatorPkg/build.sh run

 

============== End

 

以上是关于EDK2开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

Windows7下UEFI开发EDK2环境搭建(VS2013+UDK2015+IASL+patch+Openssl)

Windows7下UEFI开发EDK2环境搭建(VS2013+UDK2015+IASL+patch+Openssl)

Windows7下UEFI开发EDK2环境搭建(VS2013+UDK2015+IASL+patch+Openssl)

windows下efi编译环境配置(EDK2)

windows下efi编译环境配置(EDK2)

如何搭建MTK6261的开发环境