使用树莓派烧录主板BIOS

By | 2023/03/31

背景

着了P106的魔,权当捡垃圾买了一张过来玩,玩是挺好玩的,可惜它需要核显的加持,我唯一带核显的CPU E3 1265L v3 在NAS上,虽然这核显不太行,但是搭配上P106用用感觉也不错。但我实在不太想把P106装在NAS里(太费电了),而闲置的板U是华硕B150M刷了魔改BIOS后上的9100F,没有核显,想想换个6400或者7100之类的不仅性能下降了,这些U还都挺贵,太不划算了。

就这么犹豫着,突然发现了E3 1245 v5 这个神U,不仅性能和9100F不相上下,价格还更便宜只要200左右,最重要的是它带核显!唯一有点麻烦的是我这个150主板默认是不支持 E3 V5 系列的CPU的,但是好在smxdiy有大神破解了这个限制,只要把主板刷上魔改BIOS(其实已经魔改过一次上了九代CPU了),那就可以继续使用五代的E3 CPU了,这块主板可真是买的太划算了(那些年,英特尔挤了多少牙膏也真是可见一斑)。

我看魔改BIOS的说明,只支持编程器来烧录,虽然整个编程器确实不贵,但是我又想着就算我把这个板子刷了,好像也不会认真地去用它,是不是有些无谓的消费了?然后我就想一想有没有什么不花钱的方式可以把这个BIOS刷上呢?因为玩单片机家里有一堆CH340和Arduino的板子,只不过主板是就是单纯的SPI Flash,型号是W25Q128FVIQ,经过一些研究刷BIOS普遍使用的CH341的芯片,手头的硬件用不上哇!

一番学习之后,有看到一些使用安卓来进行刷写BIOS的。本质来说写这个芯片就是SPI通讯,所以然电脑通过Arduino的中转将数据写入Flash肯定是可行的,不过W25系列是3.3V电压,而Arduino的引脚电平是5V的,所以要使用电阻分压一下避免损坏flash芯片(虽然也看到有直连成功了的,比较现代芯片都挺强壮的了)。

为了省个10块钱的烧录器儿搞这么麻烦,好像有点舍本逐末了。不过玩DIY玩捡垃圾不就是一个折腾吗?这样也挺好的。

呃,但是我后面又想了想,我也手头还有几个树莓派,树莓派的gpio口也有SPI功能,而且电平好像就是3.3V的,也不需要中转会不会更方便了呢?突然感觉打开了新世界的大门,然后又去学习寻找了一番,果然用树莓派可以很好的完成刷写主板BIOS的任务,这还不赶紧动起来!

使用树莓派烧录Flash芯片

打开树莓派内置的 SPI 接口

通过 sudo raspi-config 命令然后选择Interfacing选项,就可以选择打开 SPI了,打开后可以通过如下地址访问到 SPI 设备:

  • /dev/spidev0.0
  • /dev/spidev0.1
In raspi-config select option 5: Interfacing options
Under interfaces options select P4 SPI

安装 flashrom

不过是Arduino还是树莓派,烧录软件都是一样的,这个 flashrom 之前也没有听过,开源真是强大,不管多么小众的领域,都有好多人默默在奉献,我发现Ubuntu中就在官方源里可以直接安装的,不过树莓派里需要编译安装一下,先安装一下依赖:

sudo apt install git libpci-dev libusb-1.0 libusb-dev

然后就可以下载源码编译了: 

git clone https://github.com/flashrom/flashrom.git
cd flashrom
make
sudo make install

连接SPI口与Flash芯片

RPi pinSPI flash
25GND
24CS
23SCK
21DO
19DI
17VCC 3.3V and /HOLD and /WP
连接关系
芯片引脚

运行烧录命令

先要运行检查的命令:

$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512
 

也可以备份现有的BIOS内容:

$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r oldbios.rom

然后写入新BIOS:

$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -w newbios.rom 


最后

虽然BIOS发布页上写了烧录器,但我最后发现,还存在一个纯软件的方法也能写入BIOS(也许只针对华硕的主板不太通用),这个芯片都不用取下来, fptw64.exe !! 只可惜这是个windows下程序,我也没有搞清楚这个软件的具体参数啥的,大概的使用方法就是:

fptw64.exe -f B150M-A-678ABCD.bin -rewrite -y

而且还要配合很多其他的工具,我不太清楚就不多说误人子弟了。

One thought on “使用树莓派烧录主板BIOS

seligiv进行回复 取消回复

您的电子邮箱地址不会被公开。