ubuntu16.04操作系统下的edk2安装

来源:互联网 发布:平价好用的指甲油知乎 编辑:程序博客网 时间:2024/06/07 04:03

最近正在准备老师安排的工作,需要在安装edk2,在网上面搜了好多帖子、博客,还找了几本书,但每次安装的时候不是遇到这个问题就是遇到那个问题,烦得很,这个项目感觉要做一段时间,写篇笔记,防止自己忘了。

一、安装环境

操作系统:ubuntu16.04LTS

gcc版本:gcc5.4.0

二、安装步骤

本文主要根据https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC和https://wiki.ubuntu.com/UEFI/EDK2等文章加上我自己的一点理解完成。

因为网上能够找到的关于EDK2安装的中文资料里面都写的是GCC4.4或者4.6,而自己的电脑版本已经更新到GCC5.4,所以曾经一度认为是版本太新的缘故,随后才找到了这篇文章。

1.安装几个必须的包

EDK2环境下需要安装几个包,可以通过一下命令来完成:

$ 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汇编程序

2.安装EDK2

在一个合适的工作目录安装,所有的教程、说明、博客都选择的是(〜/ src )这个文件夹,所以我没有改变,但实际上你可以根据意愿和自己的需要进行修改。

$ mkdir ~/src$ cd ~/src$ git clone git://github.com/tianocore/edk2.git$ cd edk2
第一行命令就是在根目录下新建一个src文件夹;第二行命令是进入src文件夹;第三行命令是下载edk2,这个过程可能需要较长的一段时间,耐心等上一段时间就好了;第四行命令是进入edk2文件夹。实际上到第三行命令的时候就算安装edk2这一步骤完成了,只不过后续一些工作需要在edk2文件夹下操作,所以就直接写在这里了。

3.编译BaseTools

在Ubuntu系统中,需要首先构建构建EDKII所需的BaseTools,使用如下命令:

$ make -C BaseTools
4.建立build环境

使用如下命令,设置EDK_TOOLS_PATH并通过运行源代码中提供的edksetup.sh脚本来设置构建环境。该脚本将复制模板和配置文件到edk2 / Conf目录,稍微等待一会,Conf文件夹下就会出现一些文档。

$ . edksetup.sh
5.设置build目标

设置构建目标,需要修改Conf / target.txt文件。这将使固件包能够被建立并且设置使用的编译器版本。具体步骤如下:

进入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”,具体看你的硬件类型了。)

6.编译,即build

在这一步的时候,因为不知道在哪里输入这个命令,所以我在edk2的目录下试了试,不成功,显示了如下信息:

后来,我在edk2/EmulatorPkg/文件夹下找到了build.sh这个文件,直接输入命令:

$ ./build.sh
编译完成后,整个安装过程结束。

注:我不是太喜欢只用命令行的方式来切换文件夹,喜欢在该文件夹下直接右键“打开终端”,所以大家在阅读的时候可能有的地方跳跃地比较大,请注意。