码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • UEFI开发环境搭建


    ====资料查找阶段=======

    uefi官网

    https://uefi.org/

    这里没有开发需要的代码和库,但是有很多资料文档,比如UEFI Specification就在Developer->Specification Library里面。

    udk的github网址

    https://github.com/tianocore

    这里面有提供各种版本UDK和说明文档,根据edk2的项目中的readme可以找到EDK II

    ​​​​​​​https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II

    该页面最下面提供了UDK各种版本的链接,2022年看到最新版本是UDK2018,由于公司用的是UDK2015,所以就选择了UDK2015,

    https://github.com/tianocore/tianocore.github.io/wiki/UDK2015

    该页面提供了UDK2015 Downloads的各种资源,我们开发需要的是workspaces,所以选择UDK2015 Workspace (ZIP File)

    https://github.com/tianocore/udk/releases/download/UDK2015/UDK2015.Complete.MyWorkSpace.zip

    下载解压后有两个目录,三个压缩包,一个txt

    其中UDK2015-ReleaseNotes-MyWorkSpace.txt里面讲解了环境搭建的步骤。从百度和google中搜索到的UDK环境搭建的步骤也和这个MyWorkSpace.text差不多。

    接下来就是按照MyWorkSpaces.txt中的描述来搭建环境了,在windows环境上,需要操作的步骤就在HOW TO BUILD ON A WINDOWS SYSTEM里面。

    ======环境搭建阶段======================

    1.安装VisualStudio 2013并且要选择amd64编译器选项

    2.解压UDK2015.MyWorkSpace.zip,将解压后生成的MyWorkSpace目录复制到D盘根目录,并将BaseTools(Windows).zip解压到D:\MyWorkSpace,行程如下目录结构

     3.参考MyWorkSpace\CryptoPkg\Library\OpensslLib\Patch-HOWTO.txt里面的讲述生成OpenSSL* Crypto Library,这个步骤在下面有介绍。没执行完的话,不要执行下一步,

    4.进入D:\WorkSpace目录执行edksetup --NT32

    生成OpenSSL* Crypto Library的步骤

    1.下载openssl

    http://www.openssl.org/source/openssl-1.0.2d.tar.gz

    2.解压openssl到MyWorkSpace\CryptoPkg\Library\OpensslLib\openssl-1.0.2d,形成目录

    3.下载安装gnuwin32的patch组件,txt中给出的下载链接是:

    http://gnuwin32.sourceforge.net/packages/patch.htm

    直接前往这个链接发现下载的sed,并不是patch

     于是前往gunwin32的官网

    http://gnuwin32.sourceforge.net/

    然后从Download all里面找到了patch

    https://udomain.dl.sourceforge.net/project/gnuwin32/patch/2.5.9-7/patch-2.5.9-7-setup.exe

    安装后目录如下:

     一开始根据错误的链接安装sed,所以现在有patch和sed,接下来往环境变量PATH中添加patch所在目录,是的patch命令可以直接使用

    4.执行patch命令

    1. cd $(WORKSPACE)\CryptoPkg\Library\OpensslLib\openssl-1.0.2d
    2. patch -p0 -i ..\EDKII_openssl-1.0.2d.patch
    3. cd ..
    4. Install.cmd

    使用其他版本的VisualStudio编译UDK

    1.打开MyWorkSpace\Conf\target.txt

    2.修改TOOL_CHAIN_TAG = VS2008x86

    TOOL_CHAIN_TAG能设置的值只能从tools_def.txt中取

    从tools_def.txt看到的vs2008对应的目录是C:\Program Files\Microsoft Visual Studio 9.0

    但是我安装的是vs2019,对应的目录是C:\Program Files\Microsoft Visual Studio 14.0

    所以我把tools_def.txt中的9.0改成了14.0***不推荐使用这种方法***

    ===========第一个UEFI项目===============

    第一个efi项目参考

    编译第一个uefi文件_youyudexiaowangzi的博客-CSDN博客_efi文件编译

    UEFI的项目目录必须放到MyWorkSpace目录,如果想放在其他目录,可以在MyWrokSpace目录创建一个软链接指向项目目录

    ===========传统bios启动UEFI程序===========

    https://github.com/tianocore/tianocore.github.io/wiki/DuetPkg

    据说EDKII中的DuetPkg可以支持刻录U盘,然后在传统bios主机上通过启动U盘进入UEFI Shell命令行。这个暂时还没空研究,先贴一下参考资料

    A BIOS to UEFI Transformation

  • 相关阅读:
    一文拿捏线程和线程池的创建方式
    mysql 数据库使用分享(多图解析)
    G1D4-软考中级《项目集成管理》-下午真题
    象棋中的马跳步问题
    【国产32位mcu】电动车控制芯片CS32F031C8T6的应用
    带小数点的String类型数据,如何只取整数?
    FREERTOS内容解惑与综合应用(基于STM32F103)
    如何应对继承的双面性
    新恒盛110kV变电站智能辅助系统综合监控平台+道巡检机器人
    工业制造行业的低代码开发平台思维架构图
  • 原文地址:https://blog.csdn.net/youyudexiaowangzi/article/details/126241354
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号