UEFI开发学习1 - Ubuntu18.04搭建edk2环境
Ubuntu18.04搭建edk2环境
参考:戴正华《UEFI原理与编程》、官方文档
edk2版本:UDK2017
Ubuntu使用VMware安装。
注意:使用GCC5
说明:一开始是想在win10环境下搭建的,奈何编译模块时总是不成功,途中遇到错误解决后又出现新的问题,花费了几天时间仍没有成功,只好在虚拟机环境下尝试,最后算是成功了吧,win10环境下的安装后面有时间再尝试。
安装编译环境
首先安装好Ubuntu后,打开GNOME,输入以下命令将会安装好需要的包。
bash$ sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm python3-distutils
命令后各参数的意义如下:
build-essential - Informational list of build-essential packages
uuid-dev - Universally Unique ID library (headers and static libraries)
iasl - Intel ASL compiler/decompiler (also provided by acpica-tools)
git - support for git revision control system
gcc-5 - GNU C compiler (v5.4.0 as of Ubuntu 16.04 LTS)
nasm - General-purpose x86 assembler
python3-distutils - distutils module from the Python standard library
使用Git下载edk2
这里我下载的是标签为vUDK2017的版本。使用下面的命令:
bash$ git clone https://github.com/tianocore/edk2.git vUDK2017
若下载最新版edk2,则使用如下命令:
bash$ git clone https://github.com/tianocore/edk2
注意:可以先创建一个目录用来存放edk2,cd至该目录,再使用上述命令。下面为创建src目录的例子。
bash$ mkdir ~/src
bash$ cd ~/src
初始化子模块(Initilize submodules)
bash$ git submodule update --init
编译构建工具(Compile build tools)
bash$ cd ~/src/edk2
bash$ make -C BaseTools
bash$ . edksetup.sh
当上述步骤完成后,就可以在edk2目录下进行代码开发工作了。
构建edk2的BaseTools
bash$ make -C edk2/BaseTools
设置构建Shell环境
bash$ cd ~/src/edk2
bash$ export EDK_TOOLS_PATH=$HOME/src/edk2/BaseTools
bash$ . edksetup.sh BaseTools
更改Conf目录下文件
在Conf/target.txt文件中找到下面两行:
ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
TOOL_CHAIN_TAG = MYTOOLS
将它们改为:
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
TOOL_CHAIN_TAG = GCC5
将TARGET_ARCH设置为UEFI二进制文件最终的构建体系,我设置为了X64。
TARGET_ARCH = X64
编译Hello World
现在可以使用简单的build命令来编译MdeModulePkg模块。
bash$ build
编译后的结果是应该有UEFI应用:HelloWorld。
bash$ ls Build/MdeModule/DEBUG_*/*/HelloWorld.efi
UEFI开发学习2 - 在qemu中运行OVMF
UEFI开发学习1 - Ubuntu18.04搭建edk2环境相关推荐
- ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境
ubuntu18.04搭建SLAM环境_stjuliet的博客-CSDN博客_ubuntu安装slam
- 1.EdgeX实战 Ubuntu18.04搭建运行环境
文章目录 前言: 1.搭建Ubuntu18.04服务器平台 2.安装docker和docker-compose 3.运行EdgeX 4.使用浏览器访问EdgeX 前言: 想着把之前arduino和树莓 ...
- ubuntu18.04搭建python环境
注意:我使用的是虚拟机,在操作前请确保虚拟机可以访问到网络. 1.安装python3.9.0解释器,配置环境变量 2.配置虚拟环境 一.安装python3.9.0 到 /opt/python39 #更 ...
- Ubuntu的快乐学习1——Ubuntu18.04的ROS平台搭建
Ubuntu的快乐学习1--Ubuntu18.04的ROS平台搭建 学习前言 安装步骤 一.修改中科大源 1.备份原来的源 2.编辑现在的源 二.修改软件与更新 三.ROS软件源设置 1.设置sour ...
- UEFI 开发学习 - LVGL在EDK2上的移植
前言 我还在实习,在公司内接触了BIOS.所以小白一枚. 废话不多说,以下内容仅供参考. 我是看到一位大神的博客,爱影博客 - UEFI开发学习8 – LVGL GUI库的移植 大家可以自己去看看,我 ...
- 【三维视觉】【深度学习】ubuntu18.04下PointNet官方代码Pytorch实现
[三维视觉][深度学习]ubuntu18.04下PointNet官方代码Pytorch实现 提示:最近开始在三维深度学习方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法. 文章目录 [ ...
- Win10(UEFI启动)安装Ubuntu18.04双系统
<Win10(UEFI启动)安装Ubuntu18.04双系统> 注意:一定要按上述连接文章中一道的设置EFI系统分区,且系统启动引导器设置位该EFI系统分区,否则电脑启动时,不会出现选择w ...
- Redis运维和开发学习笔记(3)redis搭建集群
Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...
- 对基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba、ftp和http)一文的更正2
在<基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba.ftp和http)>一文中对于adsl断线重拨后自动更新路由表的脚本,少了自动平衡双线adsl流量的命令,将 ...
- Ubuntu18.04搭建Android源码编译环境
一.前言 使用Ubuntu18.04搭建Android源码的编译,本文是参考Android系统源码编译文章撰写的. 二.步骤 1.下载Android源码.Ubuntu环境搭建.git安装请参考其他文章 ...
最新文章
- 巧用参数组件和过滤组件,教你快速定位目标数据
- Android双屏异显的实现
- 上拉加载 php,php+jquery 上拉加载
- maven2——设置镜像篇
- Tomcat 6.0 简介
- systemd.generator — systemd unit generators
- CROSS APPLY 和OUTER APPLY 的区别
- [JLOI2014]松鼠的新家 倍增LCA+树上差分
- 树莓派安装FFTW,linux安装库不生成.so库,拷贝.so .a,按时间查看文件的命令
- cocos2dx-3.0创建Android项目时遇到的错误。
- [ACM训练] 算法初级 之 基本算法 之 枚举(POJ 1753+2965)
- python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件的实例讲解
- Spring原理机制
- Android 给透明png图片添加白色底色(修改像素点的形式)
- POJ - 1679 The Unique MST (次小生成树) 板子
- Bootstrap系列之折叠(Collapse)
- 千万千万不可运行的Linux命令
- 什么是流批一体化、区块链
- 设计网站中的精品,你可能需要它--第五期(Logo设计,助你提升效率)
- 网络版计算机化系统3q认证,实验室分析仪器3Q确认服务|分析仪器3Q认证服务|计算机系统认证确认服务...
热门文章
- 23个平台短视频去水印解析下载接口
- umijs 隐藏开发工具_使用UmiJS框架开发React应用
- 【FPGA初级】4选一数据选择器的verilog实现(含testbench与波形)
- 四阶巴特沃斯低通滤波器设计
- AI+IoT行业“飞轮效应”凸显,全球云服务能力将发挥关键作用
- java Math.random()
- 首字母筛选 java_【Java习作】提取汉字拼音首字母(Java版)
- SD五一联赛(加权并查集)
- 联想拯救者y7000电池耗电快_联想拯救者Y7000P使用一周体验
- dspscififo历程_DSP2812 SCI FIFO模式调试心得