UEFI 之 EDK2 环境的搭建

2024-05-29 03:48
文章标签 搭建 环境 uefi edk2

本文主要是介绍UEFI 之 EDK2 环境的搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载代码

下载代码主要是在githun,但需要说明的是,直接克隆的代码是不完整的,少好多的子目录和StdLib等;

  • 克隆代码:
git clone https://github.com/tianocore/edk2.git
  • 克隆子目录代码
cd edk2
git submodule update --init
  • 更新子目录代码
cd edk2
git pull
git submodule update

如果无法更新就加这个参数--recursive

  • 子目录包括
CryptoPkg/Library/OpensslLib/openssl
ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
MdeModulePkg/Universal/RegularExpressionDxe/oniguruma
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
BaseTools/Source/C/BrotliCompress/brotli
  • 更新Libc
    19年开始,edk2-filter 就把AppPkg, StdLib, StdLibPrivateInternalFiles分离到edk2-libc了,所以最新的EDK2代码中是不包括这几个包的,如开发中需要这几个包,就需要把他们导进来;
    配置环境变量export PATHS_TO_KEEP="./AppPkg ./StdLib ./StdLibPrivateInternalFiles ./Maintainers.txt ./License* ./Read*"
    进入到上面克隆好的edk文件夹cd edk2-filter
    切换到master分支git checkout master
    移除远程路径git remote rm origin
    执行导入命令,时间比较长
    git filter-branch -f --index-filter "git rm --ignore-unmatch --cached -qr -- . && git reset -q \$GIT_COMMIT -- $PATHS_TO_KEEP" --prune-empty -- "master"

原理:就是UDK的分支中吧之前AppPkg, StdLib, StdLibPrivateInternalFiles了log分离出来;
如Edk工程中需要,自己拷贝即可

编译环境

  • 安装gcc5(根据开发平台定)
    sudo apt-get install gcc-5 g+±5
  • 安装nasm
    sudo apt-get install nasm
  • 安装build
    sudo apt-get install build-essential uuid-dev
  • 安装python
    sudo apt-get install python
    sudo apt-get install python3-distutils

编译

  • BaseTools目录下编译工具
    make
  • edk根目录执行
    source edksetup.sh
    说明:如果提示没有Conf,可以从BaseTools中拷贝一个
  • 然后就可以编译自己的平台了
    以EmulatorPkg为例执行如下命令
    EmulatorPkg/build.sh

这篇关于UEFI 之 EDK2 环境的搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1012558

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs