PVE下的TrueNas使用SAS3008兼容问题

111

事情的起因是发现新上机的LSI 3008 SAS 9300-8i 12G(浪潮版)卡在TrueNas Core上出现了一些水土不服的现象,包括卡在开机阶段长达几分钟才能进入系统,或者干脆直接报firmware fault code 2667h等问题,但在进入TrueNas系统后工作完全正常,让人百思不得其解。

在长达N久的google之后定位了问题,大概是卡上的bios boot问题,在启动的时候会先跑sas卡的bios导致长时间卡住或者直接报错,网上也有解决办法,那就是直接清掉除IT固件之外的ROM, 卡上一共有三个刷写区 IT(IR)固件区还有boot板卡的两个rom Legacy BIOS和UEFI,我们的目的就是让卡上只有IT固件,boot区完全清除。

一切刷写固件的行为都可能导致无法挽回的后果,回车前请考虑清楚,本人不承任何责任

准备工作

  1. U盘一个
    格式化成FAT32格式,下载UEFI Shell,放到/efi/boot/目录下改名为Bootx64.efi。部分主板本身就带UEFI Shell,那么这步就不需要了,直接开机进主板的UEFI Shell就行。
  2. 刷写工具
    sas3flash.efi 该工具有两个版本,P16版本为正常版本,某些厂商锁死固件只能用P5版本刷。如果P16无法刷入尝试使用P5版本
  3. 固件
    因为我们只需要刷写IT固件不需要那些拖累启动的BOOT ROM 所以只准备it固件就可以了

UEFI SHELL github下载
博通下载链接:
sas3flash.efi P5
sas3flash.efi P16
P16 9003 8i固件

把文件全放U盘根目录里开机启动,进入UEFI Shell,输入 fs0: 进入U盘目录,输入 p16sas3flash.efi -list 列出板卡信息

p16sas3flash.efi p5sas3flash.efi 是刷写工具,先用p16不行再用p5 (p16 p5 文件名前缀为我自行添加以便区分)

p16sas3flash.efi -list
#列出卡详情

p16sas3flash.efi -o -e 6
#清除数据

p16sas3flash.efi -o -f SAS9300_8i_IT.bin
# -o 启用高级模式,-f 刷写Firmware SAS9300_8i_IT.bin 是IT固件

p16sas3flash.efi -list

如果可以像刚才一样正常打印出信息,那么就大功告成了。重启PVE TrueNas Core 毫无延迟的启动了

参考文章
https://www.truenas.com/community/resources/detailed-newcomers-guide-to-crossflashing-lsi-9211-9300-9305-9311-9400-94xx-hba-and-variants.54/
https://post.m.smzdm.com/p/am8zvdrv/
https://docs.broadcom.com/docs/12350842