ubuntu18.04 编译edk2项目下的intel架构bios
最佳答案 问答题库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-platformshttps://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%的人还看了
相似问题
- UniApp项目中 使用微信小程序原生语言 进行开发
- 在PyCharm中正确设置Python项目
- 基于springboot实现班级综合测评管理系统项目【项目源码+论文说明】
- 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
- 基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。
- 前后端分离项目跨域请求的问题与解决办法
- 普乐蛙VR航天航空巡展项目来到了第七站——绵阳科博会
- 计算机毕业设计选题推荐-家庭理财微信小程序/安卓APP-项目实战
- Springboot和Vue+MYSQL项目(基本介绍+前后端结合初步项目)+maven+mybatis
- ssm+vue的药店药品信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。
猜你感兴趣
版权申明
本文"ubuntu18.04 编译edk2项目下的intel架构bios":http://eshow365.cn/6-11315-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!