c++ system不明确_不需要硬件也可以开发UEFI

aaf96a2b4c674d645f66f4d8d0c87e3b.png

说到UEFI开发,我相信大部分人能想到的场景是,一个工程师,面对着硕大的屏幕满满的代码,主机上连着一个DediProg SPI烧写器,旁边放着的,要么是一台测试机器,要么干脆就是奇丑无比的开发板,工程师不停地修改着代码,编译,等待,用镊子小心地从测试机上拿出SPI ROM,放到DediProg上,点击烧写,等待,烧写完成后,用镊子小心地把SPI ROM放到测试机上,检查无误之后上电,打开log窗口,等待。。。分析。。。

以上是一个UEFI工程师最常见的工作场景,每一次验证,都要花费大量的时间,通常都在十分钟以上,如果机器编译速度不够,二三十分钟也是有可能的。如果每天工作八小时,也就意味着只能做十几次试验,基本上很多时间都用来等待了。

9d1f0ba8e12e7070f89e24f0cc5b2538.png

实际上,如果只是开发一个软件,而不是调试硬件相关功能的话,其实是不需要用测试机或者开发板的。尽管我没有统计数据,但是实际上据我观察,除Intel/AMD这样的芯片厂之外,其他大部分UEFI工程师有至少一半的工作是不需要一个真正的硬件的。

所以如果可以脱离硬件去开发UEFI的话,会大大提高效率,省下很多时间和精力。

另外,相信有很多刚刚入门UEFI的人,或者在校的学生,或者没有条件搞到全套开发硬件的人,在学习了一段时间UEFI之后想做实验,但苦于找不到平台验证,这个时候,一套模拟的平台就显得尤为必要了,不仅仅提高效率,而是给了很多入门者甚至爱好者一个机会去接触UEFI。

其实这件事在早就有人做了,Intel的工程师基于edk2创建了一个叫做OVMF(Open Virtual
Machine Firmware)的项目,旨在为UEFI的开发提供虚拟机的支持。通过OVMF,我们可以将编译好的BIOS跑在Qemu虚拟机上。

那么,接下来我就一步一步介绍如何使用OVMF。

看完我这篇文章,不论你有没有UEFI背景,你只需要一台电脑,就可以无障碍地开发你的第一个UEFI程序。

一 开发环境

OVMF的开源版本默认是运行一个bash shell在Linux上编译,所以这篇文章我就写Linux下的开发。

相信大部分UEFI工程师都在windows环境下开发,Windows下使用OVMF也是可以的,不过我还没有自己去搭建过,手头的工程是公司内部资源,不便于在互联网公开。

开发环境的搭建主要包括两个部分:Linux OS的配置,代码准备。

关于Linux系统,我个人倾向于装在虚拟机了,一方面省了双系统切换的麻烦,另一方面,windows自带的wls用qemu不是很方便,所以装虚拟机是最简单的方法。如何装虚拟机我就不废话了,装好之后运行下面的命令安装必要的工具和库。

sudo apt-get build-essential uuid-dev  git gcc  python3-distutils acpica-tools nasm qemu

接下来就是从github上拿最新的edk2的代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值