刷固件需要两个U盘,一个U盘用来做dos引导系统,另外一个U盘用于制作EFI SHELL。

本次刷写的文件可以从此处下载链接:
网盘地址 提取码: mojd

先制作dos系统的U盘,打开Rufus 制作启动盘

按照上图选择U盘设备,然后设置引导类型选择为FreeDOS ,然后解压lsi_dos.zip,将解压出来的文件夹下的所有文件,和sbrempty.bin复制到已经制作好的FreeDOS U盘中。

然后开机选择U盘引导,注意直接选择U盘 引导 不要选择带UEFI的选项。

引导开始进入DOS命令行后,

  1. 查看设备列表 megarec -adplist

  2. 备份RAID卡的SDR和SPD megarec -readsbr 0 smc2208.sbr megarec -readspd 0 smc2208.spd

  3. 保存当前设备信息 megacli -adpallinfo -a0 > allinfo.txt 保存的这个信息中有一条是SAS Addres 这一条记录了SAS卡的全局SAS地址,稍后会用到这个地址。当然这个地址在raid卡的背面也会有贴纸上写着。

  4. 刷入空白的SBR megarec -writesbr 0 sbrempty.bin

  5. 擦除闪存 megarec -cleanflash 0


接下来开始制作EFI SHELL U盘 将一个U盘格式化为FAT32类型。然后创建/EFI/Boot文件夹,下载Shell_FULL.efi,然后将其重命名为BootX64.efi,放置到U盘的EFI/Boot/目录下, 然后复制LSI2302 IT 模式的固件 9027-8.bin 和 mptsas2.rom 和sas2flash.efi 文件到此U盘的根目录。 制作好以后进行如下步骤:

  1. 开机选择 带UEFI字样的U盘引导

  2. 进入EFI SHELL以后使用map -b 查看所有可使用的磁盘。 例如我的是fs2:Removable HardDisk - … USB(…) 然后输入fs2:进入这个可移动硬盘,当然你的可能是fs3或其他的。

  3. 查看文件 dir 使用dir查看文件,正常情况下你应该可以看到这三个文件 9027-8.bin MPTSAS2.ROM sas2flash.efi

  4. 查看RIAD 卡设备 sas2flash.efi -list 正常情况下你可以在这里看到你的raid卡,如果出现no adapter字样,那么你可能需要使用别的主板进行尝试。

  5. 开始刷入新固件和bios sas2flash -o -f 9207-8.bin -b mptsas2.rom 这一步需要稍微等待一会。出现success 即可表示刷新成功

  6. 再次查看RAID 卡设备 sas2flash -list 这时候你应该可以发现你的raid卡的型号变成了LSI 2308 但是SAS address 全部为0,接下来写入全局SAS地址。

  7. 写入全局SAS address sas2flash -o -sasadd 500xxxxxxxxxxxxx 这个卡的地址可以在背面找到,或者在你刚刚保存的allinfo.txt中

上述步骤以后我的RAID卡成功的刷写成了LSI 2308 IT mode,但是我遇到了一个很奇怪的问题,就是在没有插入硬盘的情况下,开机蜂鸣器会一直报警。此问题仍待排查。 编写这篇文章的时候我参考了这两篇文章 https://mywiredhouse.net/blog/flashing-lsi-2208-firmware-use-hba/,https://www.truenas.com/community/threads/how-to-flash-lsi-9211-8i-using-efi-shell.50902/ ,感谢原文章作者。