看了国内的corebot相关文章以及b站的corebot视频, 大不部分都是编译 用于虚拟机(qemu)或者模拟器上运行的 很少有编译corebot项目 出可以再真机上使用的的 bios
本教程应该是全网最详细的了, 真机版的coreboot bios固件, 所以有点长, 希望对你有帮助
#coreboot编译总说明文档链接
https://www.coreboot.org/Build_HOWTO#Requirements
文章为上下两大篇
上篇: 文章主要是 一些东西和资料以及步骤 并 编译出可以用于真机的 bios固件 coreboot.rom
下篇: 烧写bios到真机实验主板 并展示实际的测试结果
一. 需要的东西和资料如下
----------------------------------------------------
一台主电脑 编译出各种需要的"材料"
一台目标实验真机电脑
BIOS FLASH烧录器(usb插口) + CH341A编程器软件
电脑pc诊断卡
电烙铁/热风枪用于焊下bios芯片 (因为我的实验主板有2个bios芯片,只需要一个防止备份覆盖)
----------------------------------------------------
主电脑操作系统: window7 (用于烧写bios)
主电脑下的虚拟机: centos7.9 (编译coreboot4.6用)
----------------------------------------------------
要烧写的目标实验真机配置如下(价格都不高)
主板: GA-B75M-D3V (Gigabyte/技嘉) 针脚数: LGA1155
cpu: Core i3-2100 针脚数: LGA1155
cpu显卡: cpu自带核/集显
内存条: ZTSZ DDR3 1600Mhz 4G
主板bios芯片: M/B两个芯片, 8脚SOIC-8 ,型号: MX25L6406E 容量: 8MByte
----------------------------------------------------
//coreboot下 b75m-d3v主板编译出bios固件的 说明文档
https://www.coreboot.org/Board:gigabyte/ga-b75m-d3v
二. 说明下整体具体的步骤
1、使用centos操作系统, 下载coreboot源码, 把交叉编译器弄好,确认目录下make命令能在build目录里面生成coreboot.rom文件并且不报错
2、将M/B 俩个bios芯片从主板下焊下来, 并留下来m bios芯片一个焊接到烧写板上 用于烧写使用
3、使用 BIOS FLASH烧录器(usb插口) + CH341A编程器软件 从M bios芯片导出 bios.bin文件
4、用coreboot-4.6\util\ifdtool下的 ifdtool工具分解bios.bin(一定要是主板bios导出的) 并生成desc.bin me.bin gbe.bin(gbe.bin有可能没有或不需要)
5、在目标实验机linux系统下 导出核显vga bios文件
6、使用make menuconfig或者菜单, 并在菜单选择主板和指定三个文件desc.bin me.bin gbe.bin(gbe.bin有的bios不需要)的位置, 设置显卡vbg bios文件位置 以及id
7、make出coreboot.rom,用烧入器把rom刷到m bios芯片上, 并插到实验主板上配合电脑诊断卡进行测试
三. 开始实际操作
1. 下载coreboot源码, 交叉编译器弄好,确认make能在buile目录里面生成coreboot.rom文件且不报错
请注意 github,com因为被墙了. 所以需要用gitee代替
请先配置下编译固件环境,文章: centos7 配置coreboot编译环境 以及编译问题解决
https://mp.csdn.net/mp_blog/creation/editor/130425112
2、将M/B 俩个bios芯片从主板下焊下来, 并留下来m bios芯片一个焊接到烧写板上 用于烧写使用
使用电烙铁或者热风枪 拆bios芯片, 并用可拆卸的方式 焊接到烧写板上, 芯片引脚一定要 焊接正确
主板bios芯片: M/B两个芯片, 8脚SOIC-8 ,型号: MX25L6406E 容量: 8MByte/64MBit
3、使用 BIOS FLASH烧录器(usb插口) + CH341A编程器软件 从M bios芯片导出 bios.bin文件
芯片引脚和烧写板 一定要对上 要不然不能识别, CH341A编程器软件和使用教程 网上可以下载
4、用coreboot-4.6\util\ifdtool下的 ifdtool工具分解bios.bin(一定要是主板bios导出的) 并生成desc.bin me.bin gbe.bin(gbe.bin有可能没有或不需要)
#切换到coreboot目录 我用的是coreboot4.6
#分析下导出的bios.bin文件
---------------------------------------
cd /home/coreboot/util/ifdtool
make
./ifdtool -x bios.bin
---------------------------------------
#执行后的结果 会在目录下 生成几个文件
flashregion_0_flashdescriptor.bin
flashregion_2_intel_me.bin
gbe.bin (有的bios会有有的没)
5、在目标实验机linux系统下 导出核显vga bios文件
#指导文章链接
https://foxi.buduanwang.vip/virtualization/pve/1602.html/
https://vt.wooomooo.com/?p=46813
#这个是linux下 导出vga bios的
echo 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
cat /sys/devices/pci0000:00/0000:00:02.0/rom > vgabios.bin
echo 0 > /sys/devices/pci0000:00/0000:00:02.0/rom
#提醒下可以用 romheader/rom-parser 工具(可以百度或者goolge下看怎么安装)查看导出的vgabios.bin是否是正确的vga bios
6、使用make menuconfig或者菜单, 并在菜单选择主板和指定三个文件desc.bin me.bin gbe.bin(gbe.bin有的bios不需要)的位置, 设置显卡vbg bios文件位置 以及id
#注意: 你可以直接菜单操作 也可以去修改coreboot目录下的 .config文件
#descriptor.bin,me.bin,vgabios.bin, gbe.bin(有的话) 目录一定要正确
1. ========================================================
Set "Mainboard" Gigabyte GA-B75M-D3V
选择主板菜单下的 主板 gigabyte 型号 ga-b75m-d3v
2. ========================================================
Under "Chipset"
have "Add Intel descriptor.bin file" point to descriptor.bin and
"Add Intel ME/TXE firmware" point to me.bin Under "Device" have
选择芯片菜单
并设置添加 Add Intel descriptor.bin 的文件目录地址 (就是我们用ifdtool生成的那几个文件)
设置添加 Add Intel ME/TXE firmware 的文件目录地址
3.========================================================
"Add a VGA BIOS image" point to vgabios.bin and "VGA device PCI IDs" to
contain your PCI address (8086,0152 in my case).
并设置添加vga bios 文件的目录地址 并设置pci id 我的主板vgabios pic_id默认是 8086,0152
4.========================================================
Under "Payload" make sure SeaBIOS is added.
设置payload菜单下的seabios (默认就是这个,所有可以不用调整)
5.========================================================
Save configuration and exit
保持配置并退出菜单
上面的4张图图分别是:
图1.设置主板和型号。图2,配置文件目录。
图3 配置vgabios目录。图4 目录下具体文件
5.1 导入第三方blobs (真机下需要)
去coreboot官网 或者 git上获取需要的 blobs库
#切换目录
cd /home/coreboot/3rdparty/blobs/
#用git下载
git clone https://gitee.com/coreboot/blobs
#官网的话在这个网址下载
https://www.coreboot.org/downloads.html
6. make 出固件 coreboot.rom
#回到coreboot目录并make下
cd /home/coreboot
make
之后会执行各种东西, 最后的话出现如下文字 说明编译成功
到这里就生成了真机需要的bios 固件 coreboot.rom 了
下篇 将把固件写入到实验真机主板 bios芯片中,并插上诊断卡 进行实际测试