使用 IT 固件刷新 LSI 2208 以用作 HBA
我最近给自己买了一些便宜的家用数据中心质量设备,一台 Supermicro X9DRH-7F,我想将板载 LSI 2208 控制器传递给虚拟机中的 FreeNAS,以节省插入 PCIe 扩展板的麻烦。我之前使用LSI HBA的经验表明,在RAID和IT模式固件之间刷新它们非常容易,就像我以前通过使用IT固件刷新Dell Perc H310一样。在深入研究之前,我什至没有研究它——我只是拿起一个启动盘,用 megarec、megacli 和 sas2flash 等 LSI 工具加载它,然后开始备份固件块并擦除卡上的 BIOS。
然后在寻找固件时,我发现互联网上有几页说我的主板上没有 LSI 2208 芯片组的 IT 模式固件,基本上如果我想使用它,我所能希望的最好的是通过硬件控制器的 JBOD 模式。育。但是,我开始研究,并在不同的文档中找到了这些照片:
在红色的角落里,我们有重量级的LSI2208,它配备了一对800MHz的PowerPC 440处理器,带有x8 PCIe总线,4.8Gb/s SAS-2内核,以及4MB的上下文内存。
在蓝色的角落里,我们看到了他瘦下来的LSI2308兄弟,基因相似,具有相同的功能,但只有一个PowerPC 440系列处理器,但频率相同为800MHz。
重要的信息是,LSI2308*确实*有IT模式固件,我实际上有几张HP 220卡使用该芯片组,我都刷新到LSI固件v20。
鉴于 2208 和 2308 的相似性,我想知道我是否不能用通用的 LSI HBA 固件刷新我的 X9DRH 的板载 broadcom 芯片组,并且已经擦除了卡,我想我会试一试。
在这一点上,你们中的一些人会想“这家伙是个他妈的笨蛋,为什么他要冒着一个非常昂贵的主板和功能性RAID控制器的风险?对我来说,它不起作用。我在意识形态上不喜欢硬件RAID设备,并且非常偏爱软件RAID类型的解决方案,因为硬件故障可以使用通用商用硬件来恢复,坦率地说,我不是数据中心,不会将热插拔备件放在架子上以防万一。
任何人..让我们继续吧。(/hattip to my incre-gov for the word .. 这样说而不是无聊的老“无论如何”会让人感到满意。我年纪越大,我就越放松地认为语言是一头流动的野兽,而不是一套由语法纳粹强制执行的规则,他们争论牛津逗号是否是正确的做法。
结果
让我们从结果开始,因为我……井。。亲眼看看:
以前:
后:
从 RAID 切换到 IT 固件
这是完全不受支持的,任何人都不建议这样做。它在这里纯粹是出于好奇心,所以如果你觉得有必要复制这些命令并最终破坏某些东西,或者遭受任何负面结果,那就是你的问题。我看不到任何供应商的任何支持人员说“哦?从完全不同的设备刷新固件导致问题?这太出乎意料了!
以下是我如何实现上述情况,供我自己的记录。
我用了 2 个 U 盘..1 个是 DOS 可启动的,上面有 megarec 等工具(见下文以找到带有工具的 LSI_DOS.zip 的链接),另一个只有 sas2flash.efi 文件,可以从 EFI shell 使用。
我拥有/找到的有用内容的文件:
- 9207_8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows.zip(包含9207-8.bin固件和mptsas2.rom BIOS)
- 9207_8e_Package_P14_IT_Firmware_BIOS_for_MSDOS_Windows.zip(如果您使用的是 DOS,此版本中的 sas2flash 似乎比新版本更不关心交叉闪存卡)
- lsi_dos.zip(其中包含 megarec、megacli、sas2flash 等)
- lsi2208fixer.zip(这包含 2208 恢复固件,以及其中的上述lsi_dos.zip内容)
- sas2008.zip(其中包含空的 SBR bin 文件)
- Installer_P20_for_UEFI.zip (其中包含用于 UEFI shell 的 sas2flash.efi 版本)
首先 – 看看 megarec 是否可以看到设备..如果不能,不要放弃,尝试其他版本的megarec.exe(LSI工具在供应商/芯片组之间的互操作性上非常善变)
megarec -adplist
接下来,备份RAID卡的SBR和SPD:
megarec -readsbr 0 smc2208.sbr megarec -readspd 0 smc2208.spd
我为“Supermicro”选择了“smc”,并坚持使用传统的DOS 8.3文件名/扩展名格式。
megacli -adpallinfo -a0 > allinfo.txt
在此文件中,是存储卡的 SAS 地址的魔术线 – 该地址对卡是全局唯一的。很高兴将它存储在文件中,这样如果它被擦除,我可以恢复它!
现在是时候开始擦卡了。首先,用我在某处得到的 SBR 替换 SBR(不确定在哪里……
megarec -writesbr 0 empty.bin
不知道我从哪里得到empty.bin – 我有另一个名为 sbrempty.bin 的文件,它可能相同?
最后一步是擦除闪存。
megarec -cleanflash 0
接下来,重新启动(感谢 vanfawx @ STH 论坛检查说明)
然后切换到 sas2flash(必须在此主板上使用 EFI 版本):
sas2flash -list
很好,它可以看到卡片。sas2flash 有多个版本(和 sas2flsh.exe)。当我刷新我的 HP220 时,我不得不从旧的 v14 LSI 驱动程序中获取sas2flsh.exe(DOS 版本),因为较新的 sas2flash 无法正常工作。
https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-2148629227818776&output=html&h=280&slotname=1624097247&adk=369692804&adf=817116004&pi=t.ma~as.1624097247&w=336&lmt=1713855148&format=336×280&url=https%3A%2F%2Fmywiredhouse.net%2Fblog%2Fflashing-lsi-2208-firmware-use-hba%2F&host=ca-host-pub-2644536267352236&wgl=1&uach=WyJXaW5kb3dzIiwiMTUuMC4wIiwieDg2IiwiIiwiMTI0LjAuMjQ3OC41MSIsbnVsbCwwLG51bGwsIjY0IixbWyJDaHJvbWl1bSIsIjEyNC4wLjYzNjcuNjEiXSxbIk1pY3Jvc29mdCBFZGdlIiwiMTI0LjAuMjQ3OC41MSJdLFsiTm90LUEuQnJhbmQiLCI5OS4wLjAuMCJdXSwwXQ..&dt=1713855140042&bpp=1&bdt=991&idt=263&shv=r20240418&mjsv=m202404170101&ptt=9&saldr=aa&abxe=1&cookie=ID%3Df7aa1f5222be0972%3AT%3D1713855140%3ART%3D1713855140%3AS%3DALNI_MZneTpIsRNsoZwoeLewTEyuVMN42A&gpic=UID%3D00000df6e09475c5%3AT%3D1713855140%3ART%3D1713855140%3AS%3DALNI_Mbs50fd_D7jZhBh_OUwAshMa_cWeQ&eo_id_str=ID%3D0c06888023e5d773%3AT%3D1713855140%3ART%3D1713855140%3AS%3DAA-AfjYlHKyU0lK22M_OHZvVUoAi&prev_fmts=0x0%2C336x280&nras=1&correlator=4748740346534&frm=20&pv=1&ga_vid=455038945.1713855140&ga_sid=1713855140&ga_hid=34261414&ga_fc=0&u_tz=480&u_his=2&u_h=864&u_w=1536&u_ah=816&u_aw=1536&u_cd=24&u_sd=1.25&dmc=8&adx=436&ady=5040&biw=1083&bih=742&scr_x=0&scr_y=2074&eid=44759875%2C44759926%2C44759837%2C31082770%2C44795921%2C95329718%2C95329831%2C95329829%2C95331045&oid=2&psts=AOrYGsmtHPSLyOVG6f0wPuOM-bSX59ZztQQxvtB6KKLtUp1obGa8DNxv8Hal0YX4TNzqcOzPkQhriak_k0DqiufDuQU0xxIb&pvsid=1934545519673654&tmod=1302819228&wsm=1&uas=0&nvt=1&fc=1920&brdim=0%2C0%2C0%2C0%2C1536%2C0%2C1536%2C816%2C1098%2C742&vis=1&rsz=%7C%7CleEbr%7C&abl=CS&pfx=0&fu=0&bc=31&bz=1.4&psd=W251bGwsbnVsbCxudWxsLDNd&ifi=3&uci=a!3&btvi=1&fsb=1&dtd=8949
sas2flash -o -f 9207-8.bin -b mptsas2.rom
请注意,您不必刷新 bios 文件 (mptsas2.rom) – 如果您将其关闭,您将获得更快的启动时间,但它也提供了一些配置选项。
sas2flash -list
验证它是否可以看到卡,但您会注意到“SAS 地址”全为零 – 需要重新编程之前使用 megacli 保存的地址。
sas2flash -o -sasadd 50030480195exxxx
最后 – 如果您需要回溯并希望在没有 BIOS 的情况下重新刷新,请使用此命令擦除它,同时保留 SAS 地址 – 在仅刷新固件并省略 BIOS 之前
sas2flsh -o -e 6
反之,回到 2208 固件
是的,这是可能的。在截屏并执行上述操作之前,我让我的卡恢复到功能齐全的LSI2208,在此过程中只有几个“沉沦的时刻”。它涉及使用 LSI 的恢复固件——我通过 ServeTheHome 上的这个精湛线程找到了它:https://forums.servethehome.com/index.php?threads/is-there-a-way-to-restore-an-lsi-2208-after-firmware-update-failure.13237/
我经历的恢复过程:
使用上面链接线程中的LSI_DOS.zip包(从 ISO 中提取 – 似乎是我用来闪存到上面的 IT 固件的相同 DOS 工具):
megarec -cleanflash 0 (reboot) megarec -writesbr 0 smc2208.sbr megarec -m0flash 0 2208_16.rom (this is the rom from the LSI recovery ROM thread linked above) (reboot - got to working firmware ver 3.270.65-2578 )
使用最新版本的 Supermicro 2208 固件,网址为:
ftp://ftp.supermicro.com/Driver/SAS/LSI/2208/Firmware(not_for_X9DRL-7F)/
megacli -adpallinfo -a0 (spits out long file including SAS Address and all config options) megacli -adpfwflash -f smc2208.rom -a0 (reboot - working latest firmware 3.460.115 from supermicro)
哦,我认为在恢复过程中可能有一个步骤,我不得不再次将 SAS 地址编程回卡上——其中一个大型*工具具有这种能力,但我似乎没有该步骤的注释,因为我只是很高兴解开了我的卡。它可能是这样的:
megaoem -sasadd 50030480195exxxx
问题
有些人在他们的设备上报告说,蜂鸣器警报在闪烁后不会关闭。
一位匿名发帖人善意地发布了这些命令——未经我验证,因为我没有遇到该问题的设备。
MegaCli -AdpSetProp -AlarmSilence -aALL
或
MegaSCU -AdpSetProp -AlarmDsbl -aALL
如果您被这个问题困扰,希望其中一个对您有用?!
呵呵!