当前位置: 首页 > ds >正文

MinnowBoard MAX单板UEFI BIOS代码编译教程

此教程用于UEFI EDK2代码的研究,虽然EDK2框架代码开源,但是都是在模拟器上跑仿真,差点意思,搞过嵌入式大的应该有一个共识,是骡子是马,你得把板子点亮啊。MinnowBoard MAX单板是intel10多年前发布的软硬件全部开源的x86单板,UEFI BIOS部分代码也是开源的(部分和芯片配置相关的代码是以二进制文件的形式发布),可以用于在实际单板上调试学习EDK2代码。

简单介绍下探索过程,UEFI BIOS代码编译的整个流程断断续续耗费我三个多月,是一场心力交瘁持久战。
第一阶段,EDK2 platform上是有MinnowBoard MAX单板UEFI BIOS代码工程的,但是更新停止在2019年,后面无人维护了。下载最新EDK2 工程,按照页面编译步骤来,一堆报错。估计因为没人维护了,各种模块的更新根本没人去考虑验证这块板子。前面我各种尝试修改无果,然后我尝试把代码回退到2019年8月,进行编译,各种编译工具对应回退,还是不行。没办法我还是基于最新的EDK2代码进行修改PlatformPkgX64.dsc文件,修改过程中,我还发现一个老六在修改DEBUG函数标识时,使用整体字符串查找替代法,还通过了review,把一些函数都给破坏了。经过一堆修改后,编译成功了,得到了想要的VLV.fd文件,通过bios编程烧写器烧录到板子上,启动一半报错卡住了,显示HOB SMMbase地址找不到,找到源码对应位置,研究几天无果放弃,毕竟不是业内人士。请添加图片描述
第二阶段,intel官网上其实是有发布minnowboard max单板uefi固件的,时间是2018年11月份。根据这个线索回退代码到2018年11月,发现缺少二进制包,但是这个包的下载链接失效了,百度、必应、谷歌找了一圈也没发现。但是功夫不负有心人,机缘巧合之下我通过edk2-platform的提交记录,突然发现一个人的仓库里有2018年编译uefi固件的全套代码,赶紧下载进行编译验证,烧录到单板,成功启动到uefi shell界面。
在这里插入图片描述
MinnowBoard MAX单板资料:
http://minnowboard.outof.biz/
https://www.intel.com/content/www/us/en/developer/articles/tool/minnowboard-maxturbot-uefi-firmware.html

EDK2 代码工程:https://github.com/Laurie0131/PlatformBuildLab_FW

具体步骤待完成。

http://www.xdnf.cn/news/468.html

相关文章:

  • 使用AOP完成添加日志
  • 【AI提示词】IT专家顾问
  • 文件上传及验证绕过漏洞
  • Delphi 常用关键字收录
  • 基础智能体的进展与挑战第 6 章【情绪建模】
  • Python遥感开发之Hurst指数的实现
  • Zookeeper的典型应用场景?
  • Keil MDK中禁用半主机(No Semihosting)
  • 齐次坐标变换+Unity矩阵变换
  • 【Tauri2】026——Tauri+Webassembly
  • 代谢组数据分析(二十四):基于tidymass包从质谱原始数据到代谢物注释结果的实践指南
  • vue3 watch和watchEffect 的用法和区别
  • 计算机视觉算法实现——智能座椅坐姿识别
  • 基于GRPO将QWEN训练为和deepseek一样的推理模型!
  • linux kernel irq相关函数详解
  • 国产的 Java Solon v3.2.0 发布(央企信创的优选)
  • Day10【基于encoder- decoder架构实现新闻文本摘要的提取】
  • 第3章 垃圾收集器与内存分配策略《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》
  • 从0开发一个unibest+vue3项目,使用vscode编辑器开发,总结vue2升vue3项目开始,小白前期遇到的问题
  • Flask应用部署通用指南
  • [Windows] Wireshark 网络抓包工具 v4.4.6
  • 【MATLAB海洋专题】历史汇总
  • C++学习之路,从0到精通的征途:vector类的模拟实现
  • 算法期末复习
  • 基于Fabric.js的选座布局系统开发笔记
  • 如何系统地入门学习stm32?
  • Linux419 三次握手四次挥手抓包 wireshark
  • python程序的流程
  • 移动自动化测试-appium
  • thanos rule组件和prometheus区别?