如何在linux上搭建edk编译环境

被分到了做bios系统的组里(但愿下周我还在),记录一下最艰难的起步。

环境说明:

ubuntu子系统 18.04

gcc 7.5

python 3.6

1,下载源码

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

第一步就扑街,这是我没想到的。

这里涉及到git里面的子模块——热知识,在clone项目时子模块的内容不会被一并复制下来,而是以链接的形式储存在文件里。

这个时候就需要另一个指令

git submodule update --init --recursive

(而且要!小声bb)

2,配置环境

下载源码后我们进入edk2文件,打开它路径下的Conf文件中的target.txt。这里面存储了编译与运行时的环境

具体内容如下,自己找一找对应的项。

ACTIVE_PLATFORM       = EmulatorPkg/EmulatorPkg.dsc

TARGET_ARCH           = X64

TOOL_CHAIN_TAG        = GCC5

 3,编译edk2工具链

首先要下载make、gcc等编程工具

sudo apt-get install build-essential uuid-dev

然后进入BaseTools目录并使用make命令编译

edk2$ cd BaseTools
edk2/BaseTools$ make

看到done!就说明成功了

4,编译UEFI模拟器和UEFI工程

首先要设置环境变量

edk2$ source edksetup.sh

然后,build!

edk2$build

如何在linux上搭建edk编译环境_第1张图片

最后使用build run运行就成功——好吧,还差一点

5,

不对,是差很多点!

理论上来说,这个时候应该弹出来模拟的bios界面了,怎么什么都没发生呢?

首先,打开这个文件

如何在linux上搭建edk编译环境_第2张图片

添加这一行

如何在linux上搭建edk编译环境_第3张图片

就是MdeModulePkg/Core/Pei/PeiMain.inf { 

   

      GCC:*_*_*_CC_FLAGS =-O0

}

这一段

然后重新build一下

6,最后一步

进入这个目录(其实就是刚才修改的编译配置)

然后./Host

如果没下xmanger,它会弹出一个框提醒你下载,下载后就能弹出那个bios界面了

7,其他

我记得编译还是运行时,会弹出一堆找不到文件的错误?其实那个是你的库没下全,它提示哪个文件下哪个

比如X11,其他的记不清了。

据说这个现在不是主流了……我研究研究怎么改=_=

 

你可能感兴趣的:(uefi开发,linux,ubuntu)