[ UEFI开发 ] Linux 环境 ( Ubuntu ) 部署 EDK2 开发环境

UEFI开发——EDK2环境搭建( Ubuntu Linux64 )

目录

一、环境依赖安装

1. 安装 Git

2. 安装Python3

2.1 找到python软连接的位置 ( /usr/bin/ )

2.2 删除旧的python软连接 

2.3 构建新的python软连接

3. 安装UUID-DEV、NASM、BISON、FLEX

4. 安装GCC、MAKE

5. (排坑)安装 X11 库及其扩展,否则edk2编译会报错

 6. (排坑)将 NASM 更新到 2.15.x 以上版本,当前的edk2项目需要依赖nasm2.15以上版本,否则编译会报错

6. 下载EDK2项目以及必要的开发包

​编辑

二、编译相关工具

1. 编译ACPICA生成ISAL编译器开发包

2. 编译BaseTools

3. 新建 myexport.sh 文件 

4. 编译Emulator模拟器 

 5. 编译UEFI程序

三、运行模拟器执行UEFI程序

四、开发流程:


一、环境依赖安装

1. 安装 Git

//打开Linux系统的终端,运行
sudo apt install git
//查看版本确认安装成功
git --version

成功输出: 

 

2. 安装Python3

//安装python3,一定要是 3.x.x 版本
sudo apt install python3
//查看版本号确认安装成功
python3 --version

 由于Linux系统自带了一个python,我的是Ubuntu18 自带的python2,所以还要建立python3与python的软链接,否则python命令还是调用的python2,只能用python3命令调用,会导致edk2编译失败。

2.1 找到python软连接的位置 ( /usr/bin/ )

2.2 删除旧的python软连接 

//打开终端,进入管理员模式
sudo -i
//进入目标文件夹
cd /usr/bin/
//删除python软连接
sudo rm -rf python

2.3 构建新的python软连接

//与python3.6建立软连接
sudo ln -s /usr/bin/python3.6 /usr/bin/python
//验证输出
python --version

成功输出:

3. 安装UUID-DEV、NASM、BISON、FLEX

//下载各项依赖
sudo apt-get install uuid-dev nasm bison flex

4. 安装GCC、MAKE

sudo apt-get install build-essential
gcc --version
make --version

 成功输出:

5. (排坑)安装 X11 库及其扩展,否则edk2编译会报错

//安装X11库及其扩展,因为编译模拟器的过程中有源代码需要使用
// #include <X11/**>
sudo apt-get install libx11-dev x11proto-xext-dev libxext-dev

 6. (排坑)将 NASM 更新到 2.15.x 以上版本,当前的edk2项目需要依赖nasm2.15以上版本,否则编译会报错

nasm各版本下载链接:icon-default.png?t=N7T8http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 找到合适的版本下载:

 下载完成后解压:

 进入解压后的文件夹:

cd nasm-2.16
./autogen.sh
./configure
make
make install
//验证是否升级成功
nasm --version

成功输出:

6. 下载EDK2项目以及必要的开发包

//进入桌面,新建一个文件夹,我的是UEFI,进入这个文件夹
cd /home/wby/桌面/UEFI
//从git上拉取EDK2项目文件
git clone http://github.com/tianocore/edk2.git
git clone http://github.com/tianocore/edk2-libc.git
git clone http://github.com/acpica/acpica.git
//然后进入edk2文件夹执行update
cd edk2
git submodule update --init
//这一步会等待较长时间,一定要update成功,否则会编译失败
//因为git项目中很多应用的第三方插件库是以链接的形式存在的
//clone时不会把链接的文件下载,只能通过update下载包含的链接文件

二、编译相关工具

1. 编译ACPICA生成ISAL编译器开发包

//进入桌面UEFI文件夹
cd /home/wby/桌面/UEFI/
make -C ./acpica/

2. 编译BaseTools

//进入edk2文件夹
cd edk2/
make -C edk2/BaseTools

3. 新建 myexport.sh 文件 

//进入桌面UEFI文件夹
cd /home/wby/桌面/UEFI
//新建myexport.sh,并打开
vim myexport.sh
//输入以下内容
export WORKSPACE=$PWD
export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-libc
export IASL_PREFIX=$PWD/acpica/generate/unix/bin/
export PYTHON_COMMAND=/usr/bin/python3
export GCC5=/usr/bin/gcc

4. 编译Emulator模拟器 

cd /home/wby/桌面/UEFI/
source myexport.sh
source edk2/edksetup.sh
build -p edk2/EmulatorPkg/EmulatorPkg.dsc -t GCC5 -a X64

 5. 编译UEFI程序

cd /home/wby/桌面/UEFI/
build -p edk2-libc/AppPkg/AppPkg.dsc -t GCC5 -a X64

 开始编译输出:

  编译成功输出:

三、运行模拟器执行UEFI程序

//进入编译bild目录
cd /hone/wby/桌面/UEFI/Build/EmulatorX64/DEBUG_GCC5/X64/
//执行Host文件
./Host

 成功输出如下:

在UEFI系统中输入 fs0: 进入虚拟器的工作目录:

输入对应的.efi执行:

四、开发流程:

1.  UEFI模拟器的 fs0: 对应的文件目录为 桌面/UEFI/Build/EmulatorX64/DEBUG_GCC5/X64/

其中,用户自定义的.efi文件为Hello.efi和Main.efi,其他为系统文件。

2.  开发时,要进入 UEFI/edk2-libc/AppPkg/Applicayions 目录,修改Hello或Main文件夹中的 .c 文件,二者的区别在于依赖的库文件不同。Hello的依赖库相对较小,而Main的依赖库为C语言标准库,更多具体信息可以参考 UEFI/edk2-libc/AppPkg/ReadMe.txt ,见下图:

3.  代码编写完毕后,重新编译。执行

cd /home/wby/桌面/UEFI/
source myexport.sh
source edk2/edksetup.sh
//执行build前必须加上上边的两条source语句
build -p edk2-libc/AppPkg/AppPkg.dsc -t GCC5 -a X64

4.  将build生成的Hello.efi或者是Main.efi(根据自己的设置走)文件,移动到 模拟器工作目录

build结果文件路径:桌面/UEFI/Build/AppPkg/DEBUG_GCC5/X64/

模拟器工作路径 :桌面/UEFI/Build/EmulatorX64/DEBUG_GCC5/X64/

5.  移动文件可以热操作,即不需要关闭模拟器就可以移动.efi文件。移动后,再次输入文件名字即可运行。 

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Windows 环境下配置 EDK2 开发环境,可以按照以下步骤进行操作: 1. 安装所需的软件和工具: - 下载并安装 Visual Studio(推荐使用 Visual Studio 2019)。 - 下载并安装 Python(推荐使用 Python 3.x 版本)。 - 下载并安装 Git。 2. 克隆 EDK2 代码库: - 打开命令行终端,切换到你希望存放 EDK2 代码的目录。 - 运行以下命令克隆 EDK2 代码库: ``` git clone https://github.com/tianocore/edk2.git ``` 3. 配置环境变量: - 将 Python 安装路径添加到系统环境变量中。例如,将 `C:\Python39` 添加到 PATH 变量中。 - 将 MSBuild 工具添加到系统环境变量中。根据你的 Visual Studio 版本和架构,添加类似以下路径的变量: ``` C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin ``` 4. 构建 BaseTools 工具: - 打开命令行终端,切换到 EDK2 代码库的 `BaseTools` 目录。 - 运行以下命令来构建 BaseTools 工具: ``` python ./Build.py ``` 5. 配置 EDK2 环境: - 打开命令行终端,切换到 EDK2 代码库的根目录。 - 运行以下命令来配置 EDK2 环境: ``` .\edksetup.bat ``` 6. 生成项目文件: - 运行以下命令生成项目文件: ``` build ``` 7. 构建 EDK2: - 运行以下命令来构建 EDK2: ``` build -a [平台架构] -p [平台名称]/[模块名称].dsc ``` 其中,`[平台架构]` 可以是 `IA32`、`X64` 或 `ARM`,`[平台名称]` 和 `[模块名称]` 是你要构建的平台和模块的名称。 完成以上步骤后,你就成功配置了 EDK2 开发环境。你可以根据需要进行修改和编译 UEFI 固件和应用程序。注意,以上步骤仅提供了基本的配置过程,具体的配置和构建步骤可能因个人需求和环境而有所不同。建议参考 EDK2 的官方文档和相关资料进行更详细的配置和使用说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值