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环境相关推荐

  1. ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境

    ubuntu18.04搭建SLAM环境_stjuliet的博客-CSDN博客_ubuntu安装slam

  2. 1.EdgeX实战 Ubuntu18.04搭建运行环境

    文章目录 前言: 1.搭建Ubuntu18.04服务器平台 2.安装docker和docker-compose 3.运行EdgeX 4.使用浏览器访问EdgeX 前言: 想着把之前arduino和树莓 ...

  3. ubuntu18.04搭建python环境

    注意:我使用的是虚拟机,在操作前请确保虚拟机可以访问到网络. 1.安装python3.9.0解释器,配置环境变量 2.配置虚拟环境 一.安装python3.9.0 到 /opt/python39 #更 ...

  4. Ubuntu的快乐学习1——Ubuntu18.04的ROS平台搭建

    Ubuntu的快乐学习1--Ubuntu18.04的ROS平台搭建 学习前言 安装步骤 一.修改中科大源 1.备份原来的源 2.编辑现在的源 二.修改软件与更新 三.ROS软件源设置 1.设置sour ...

  5. UEFI 开发学习 - LVGL在EDK2上的移植

    前言 我还在实习,在公司内接触了BIOS.所以小白一枚. 废话不多说,以下内容仅供参考. 我是看到一位大神的博客,爱影博客 - UEFI开发学习8 – LVGL GUI库的移植 大家可以自己去看看,我 ...

  6. 【三维视觉】【深度学习】ubuntu18.04下PointNet官方代码Pytorch实现

    [三维视觉][深度学习]ubuntu18.04下PointNet官方代码Pytorch实现 提示:最近开始在三维深度学习方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法. 文章目录 [ ...

  7. Win10(UEFI启动)安装Ubuntu18.04双系统

    <Win10(UEFI启动)安装Ubuntu18.04双系统> 注意:一定要按上述连接文章中一道的设置EFI系统分区,且系统启动引导器设置位该EFI系统分区,否则电脑启动时,不会出现选择w ...

  8. Redis运维和开发学习笔记(3)redis搭建集群

    Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...

  9. 对基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba、ftp和http)一文的更正2

    在<基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba.ftp和http)>一文中对于adsl断线重拨后自动更新路由表的脚本,少了自动平衡双线adsl流量的命令,将 ...

  10. Ubuntu18.04搭建Android源码编译环境

    一.前言 使用Ubuntu18.04搭建Android源码的编译,本文是参考Android系统源码编译文章撰写的. 二.步骤 1.下载Android源码.Ubuntu环境搭建.git安装请参考其他文章 ...

最新文章

  1. 巧用参数组件和过滤组件,教你快速定位目标数据
  2. Android双屏异显的实现
  3. 上拉加载 php,php+jquery 上拉加载
  4. maven2——设置镜像篇
  5. Tomcat 6.0 简介
  6. systemd.generator — systemd unit generators
  7. CROSS APPLY 和OUTER APPLY 的区别
  8. [JLOI2014]松鼠的新家 倍增LCA+树上差分
  9. 树莓派安装FFTW,linux安装库不生成.so库,拷贝.so .a,按时间查看文件的命令
  10. cocos2dx-3.0创建Android项目时遇到的错误。
  11. [ACM训练] 算法初级 之 基本算法 之 枚举(POJ 1753+2965)
  12. python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件的实例讲解
  13. Spring原理机制
  14. Android 给透明png图片添加白色底色(修改像素点的形式)
  15. POJ - 1679 The Unique MST (次小生成树) 板子
  16. Bootstrap系列之折叠(Collapse)
  17. 千万千万不可运行的Linux命令
  18. 什么是流批一体化、区块链
  19. 设计网站中的精品,你可能需要它--第五期(Logo设计,助你提升效率)
  20. 网络版计算机化系统3q认证,实验室分析仪器3Q确认服务|分析仪器3Q认证服务|计算机系统认证确认服务...

热门文章

  1. 23个平台短视频去水印解析下载接口
  2. umijs 隐藏开发工具_使用UmiJS框架开发React应用
  3. 【FPGA初级】4选一数据选择器的verilog实现(含testbench与波形)
  4. 四阶巴特沃斯低通滤波器设计
  5. AI+IoT行业“飞轮效应”凸显,全球云服务能力将发挥关键作用
  6. java Math.random()
  7. 首字母筛选 java_【Java习作】提取汉字拼音首字母(Java版)
  8. SD五一联赛(加权并查集)
  9. 联想拯救者y7000电池耗电快_联想拯救者Y7000P使用一周体验
  10. dspscififo历程_DSP2812 SCI FIFO模式调试心得