被分到了做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
最后使用build run运行就成功——好吧,还差一点
5,
不对,是差很多点!
理论上来说,这个时候应该弹出来模拟的bios界面了,怎么什么都没发生呢?
首先,打开这个文件
添加这一行
就是MdeModulePkg/Core/Pei/PeiMain.inf {
<BuildOptions>
GCC:*_*_*_CC_FLAGS =-O0
}
这一段
然后重新build一下
6,最后一步
进入这个目录(其实就是刚才修改的编译配置)
然后./Host
如果没下xmanger,它会弹出一个框提醒你下载,下载后就能弹出那个bios界面了
7,其他
我记得编译还是运行时,会弹出一堆找不到文件的错误?其实那个是你的库没下全,它提示哪个文件下哪个
比如X11,其他的记不清了。
据说这个现在不是主流了……我研究研究怎么改=_=