当前位置:首页 > 编程笔记 > 正文
已解决

ubuntu18.04 编译edk2项目下的intel架构bios

来自网友在路上 164864提问 提问时间:2023-09-22 08:29:59阅读次数: 64

最佳答案 问答题库648位专家为你答疑解惑

看了国内的edk2编译文章. 大不部分都是编译 用于虚拟机(qemu)或者模拟器上运行的

很少有编译edk2项目 出 真机的 bios

希望本文章对你有帮助, 

请注意 github,com因为被墙了. 所有需要用gitee代替

参考来源

https://gitee.com/binout/edk2-platforms/tree/master

https://gitee.com/tianocore/edk2-platforms/blob/master/Platform/Intel/Readme.md

Ubuntu搭建UEFI开发环境(编译运行环境部署)_是半吊子呀的博客-CSDN博客

需要安装的软件

gcc, g++, iasl, python(pip), nasm, uuid

系统命令 git, make

需要的项目源码

我的环境如下 (记得提前安装下需要的环境)

操作系统   Ubuntu 18.04 64位

GCC:        gcc 5.5.0  (官方要求gcc5.4) 

g++:          g++  7.5.0 (好像g++5也行)

iasl:           iasl version 20180105 (官方推荐20190816)

python:    Python 3.6.9

pip :         pip 9.0.1

nasm:      Nasm version 2.13.02 (官方推荐nasm2.12.02)

一些需要的安装命令

//更新apt
apt update
//安装gcc (必须)
sudo apt-get install gcc  或者 sudo apt-get install gcc-5
sudo apt-get install g++
sudo apt install build-essential//安装make (有的系统有自带)
sudo apt-get install make//安装python和pip  (有的系统有自带)
sudo apt-get install python  或者 sudo apt-get install python3
sudo apt-get install python3-pip//安装nasm (必须)
sudo apt-get install nasm//安装iasl (必须)
sudo apt-get install iasl//安装uuid (必须)
sudo apt install uuid-dev
 之后就可以跟着这个项目说明安装了

有志小青年/edk2-platformsicon-default.png?t=N7T8https://gitee.com/binout/edk2-platforms1. 创建项目目录(记得一行行 复制到命令窗口运行)

#创建路径变量,这个是项目目录  记得一行一行复制去执行
export WORKSPACE=/work/git/tianocore#这个是包路径, 记得复制去执行 (这行比较长要复制全)
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi:$WORKSPACE/edk2-platforms/Platform/Intel:$WORKSPACE/edk2-platforms/Silicon/Intel:$WORKSPACE/edk2-platforms/Features/Intel#创建工作项目目录
mkdir -p $WORKSPACE#切换到工作项目目录
cd $WORKSPACE

2. 下载edk2项目和需要编译的平台包 (github被墙 记得去 gitee找对应的包)

#我这边换成国内可以访问的git镜像项目 (一行行复制执行)
git clone https://gittee.com/tianocore/edk2.git重点: edk2下载完成后要改动下里面的一个文件 (edk2/.gitmodules)#把里面的github项目地址 改为 国内镜像项目地址 下面这个是国内 
#(假如下面的也失效了,那么你需要去gitee找新的 比如直接复制 tuxinggougou/edk2-cmocka.git 去gitee上面搜索)[submodule "CryptoPkg/Library/OpensslLib/openssl"]path = CryptoPkg/Library/OpensslLib/opensslurl = https://gitee.com/greatesoft/openssl.git
[submodule "SoftFloat"]path = ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3url = https://gitee.com/starchang_admin/berkeley-softfloat-3.git
[submodule "UnitTestFrameworkPkg/Library/CmockaLib/cmocka"]path = UnitTestFrameworkPkg/Library/CmockaLib/cmockaurl = https://gitee.com/tuxinggougou/edk2-cmocka.git
[submodule "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma"]path = MdeModulePkg/Universal/RegularExpressionDxe/onigurumaurl = https://gitee.com/a-restless-person/oniguruma.git
[submodule "MdeModulePkg/Library/BrotliCustomDecompressLib/brotli"]path = MdeModulePkg/Library/BrotliCustomDecompressLib/brotliurl = https://gitee.com/a-restless-person/brotli.git
[submodule "BaseTools/Source/C/BrotliCompress/brotli"]path = BaseTools/Source/C/BrotliCompress/brotliurl = https://gitee.com/a-restless-person/brotli.gitignore = untracked

3. 下载我们要编译的 intel 的包

git clone https://gitee.com/tianocore/edk2-platforms.git
git clone https://gitee.com/tianocore/edk2-non-osi.git#还有fsp包
git clone https://gitee.com/a-restless-person/FSP.git所以/work/git/tianocore/ 项目目录下, 这个阶段有 4个大目录如下
edk2
edk2-platforms
edk2-non-osi
FSP

4. 执行edk2初始化

#直接执行下面命令
. edk2/edksetup.sh#或者 切换到edk2
cd edk2
source edksetup.sh===========================================================
#执行结果 (代表成功)
Loading previous configuration from /work/git/tianocore/edk2/Conf/BuildEnv.sh
WORKSPACE: /work/git/tianocore
EDK_TOOLS_PATH: /work/git/tianocore/edk2/BaseTools
CONF_PATH: /work/git/tianocore/edk2/Conf# 注意
# build  命令就是在这个阶段绑定的, 记得python和pip要安装好

5. make下

#记得这条指令, 是在 /work/git/tianocore这个目录下执行
make -C edk2/BaseTools#执行最后结果如下 代表执行成功 
testValidUtf8FileWithBom (CheckUnicodeSourceFiles.Tests) ... ok----------------------------------------------------------------------
Ran 282 tests in 1.142sOK
make[1]: Leaving directory '/work/git/tianocore/edk2/BaseTools/Tests'
make: Leaving directory '/work/git/tianocore/edk2/BaseTools'

6. 切换到需要构建的 intel目录下

​​​​​​​cd /work/git/tianocore/edk2-platforms/Platform/Intel

7.构建bios

#具体的说明在/work/git/tianocore/edk2-platforms/Platform/Intel/Readme.md#执行这个命令构建bios fd文件
python build_bios.py --platform KabylakeRvp3#提示
#执行 python build_bios.py --platform 会显示可以可以构建的架构和帮助
#具体的文档 
usage: build_bios.py [-h] --platform{BoardX58Ich10,GalagoPro3,KabylakeRvp3,UpXtreme,WhiskeylakeURvp,CometlakeURvp}[--toolchain TOOLCHAIN] [--DEBUG] [--RELEASE][--TEST_RELEASE] [--RELEASE_PDB] [--list] [--cleanall][--clean] [--capsule] [--silent] [--performance] [--fsp][--fspapi] [--hash] [--binary-destination BINCACHEDEST][--binary-source BINCACHESOURCE]

8.获得需要的fd文件

漫长的执行后会生成文件如下Fd File Name:KABYLAKERVP3 (/work/git/tianocore/Build/KabylakeOpenBoardPkg/KabylakeRvp3/DEBUG_GCC5/FV/KABYLAKERVP3.fd)

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"ubuntu18.04 编译edk2项目下的intel架构bios":http://eshow365.cn/6-11315-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!