本帖最后由 nighttob 于 2016-1-24 14:59 编辑
@overthink 介绍过一种泛用的crossflash方式http://bbs.pceva.com.cn/thread-118148-1-1.html
这个方式适用于OEM厂家并不丧病的,比如IBM M1015这种
而对于OEM厂家比较丧病的来说,上面的方法会遇到很多问题,比如DELL H310或者其他模块形式的LSI SAS 2008卡
下面就介绍如何对付它们
首先说我的情况
我的服务器主板上有一个SAS模块接口(红圈处)
有两个配套SAS/RAID模块可以插在这个接口上,分别是AAXRMS2LL0x0和AAXRMS2AF0x0,前者是SAS HBA,类似于LSI 9211,后者是SAS RAID,类似于LSI 9240。其中的x分别有4或者8,代表这个模块上有4个或者8个SAS接口(SATA样式)。
因为主板原生6SATA+LSI 9260-8i的8个SAS口已经不够用,所以不久前从ebay海淘了一个二手的AAXRMS2AF080,计划刷为IT固件做扩展用
正面8个SATA样式的SAS接口,覆盖撒热片,另有一组I2C和两组SGPIO接口
背面就是SAS模块接口部分了
因为是原厂配件,所以安装不是问题,也不会存在兼容性问题。但就因为是模块化定制产品,所以在crossflash的时候会遇到兼容产品不会遇到的麻烦。
我先按照OT帖子里介绍的方法逐步操作,在刷入IT固件的时候报错
- Writing current Mfg Page 2 setting to NVRAM.
- Failed to Validate Mfg Page 2.
复制代码
查找了下信息以后,意思是NVDATA信息不匹配,刷新程序拒绝继续执行
因为我要刷入的是LSI 9211-8i的固件,不匹配SAS模块NVDATA的信息是很正常的。那么就找找Intel是否直接提供IT固件。
结果是Intel只在最老一版的AAXRMS2LL0x0固件包里提供了IT固件,而这个固件同样刷不进去。
问Intel要IT固件无果以后,我继续搜索他人经验,看到了一篇crossflash DELL PERC H200的帖子,http://blog.michael.kuron-german ... -8i/comment-page-1/
其中提到要用早期版本的固件刷新工具先刷入DELL的IT固件及老LSI IT固件,再升级成最新LSI IT固件。
顺着这个思路,我尝试先刷成AAXRMS2LL080再去刷IT。
果然,刷入AAXRMS2LL080的固件没有任何阻碍,引导和配置也都是完全正常的。但继续刷入LSI IT固件的时候则继续报错
- Cannot Flash IT Firmware over IR Firmware.
复制代码
也就是说不能在已有IR固件上刷入IT固件,这条路又不通了。
继续爬文,发现了这个帖子http://lime-technology.com/forum/index.php?topic=12767.0
在翻了30多页以后,我感觉似乎发现问题所在了——固件刷新工具。
总结前人所言:早期版本的固件刷新工具可以忽略掉NVDATA不一致,直接强刷进去,但新版本的工具要强制验证NVDATA一致性。
于是,我用p05版本的固件工具直接在AAXRMS2LL080固件上刷入最新版LSI IT固件就成功了,过程中,刷新工具会提示NVDATA mismatch,但可以选Y直接通过。刷新后也确实是IT固件,只是NVDATA的缘故,型号识别中仍会有AAXRMS2LL080的影子。
我继续尝试清空FLASH,直接用p05版本直接刷入LSI IT固件,依然提示错误。因此,中间插入一步刷入AAXRMS2LL080固件是必要的。
自此目的已经达到。接下来把上面的流水账总结一下。
1. 固件刷新工具有版本之分,早期版本,比如p05版,虽然功能少,但可以忽略NVDATA不一致的情况,强行刷入固件;
2. UEFI BIOS以后,DOS下的sas2flsh.exe工具不可用,必须要在EFI Shell里面使用sas2flash.efi刷新工具;
3. DELL等部分OEM产品,在刷LSI IT固件时需要有额外步骤;
4. 有提示说在刷入OEM IT/IR固件后要先执行sas2flash.efi -o -e 6清空部分FLASH,但我这里不需要;
5. 保存好备份的SBR,特别是非主流卡/模块,丢了可不好找。
正确的姿势是:
1. 准备好MegaRec.exe、empty.bin及iMR固件,用于备份、清空SBR,擦除FLASH及可能需要刷回原版iMR固件的情况;
2. 准备好p05版本及最新版(目前是p20)版本的固件刷新工具(sas2flash.efi用于EFI Shell,sas2flsh.exe用于DOS,不同版本的工具分别添加前缀p05_及p20_),最新版(目前是p20)LSI IT固件及boot rom,有特殊情况还要准备OEM品牌的IT或者IR固件;
3. 准备DOS启动盘及EFI Shell,这里我不介绍怎么做;
4. 把准备好的东西都放进U盘里,重启(如果主板上已有大量板卡或者多个LSI卡的话,建议最小化系统,只保留需要刷固件的那一个);
5. 引导进入DOS,备份并清空SBR之后擦除FLASH
- megarec -readsbr 0 sbr.bin //备份当前SBR到文件sbr.bin用于日后恢复
- megarec -writesbr 0 empty.bin //使用文件empty.bin清空SBR
- megarec -cleanflash 0 //清空FLASH
复制代码
上述0的意思是第一个LSI适配器。完成后重启;
6. 引导进入EFI Shell,先刷入OEM IT/IR固件(如果需要),然后刷入LSI IT固件及boot rom还有SAS地址。
- p20_sas2flash.efi -o -f ll08.bin //先刷入OEM固件(如果需要)
- p05_sas2flash.efi -o -f 2118it.bin //用老工具刷入IT固件,如果需要IR固件,则刷入2118ir.bin
- //出现NVDATA mismatch提示,按Y继续
- p20_sas2flash.efi -o -b mptsas2.rom //刷入boot rom
- p20_sas2flash.efi -o -sasadd 500xxxxxxxxxxxx //刷入卡上的SAS地址
复制代码
上述-o的意思是开启高级模式,-f是刷固件,-b是刷boot rom,-sasadd是刷SAS地址;刷boot rom不是必须,如果不需要HBA做启动盘,也不想再开机引导中看到初始化HBA就不用刷boot rom。一些版本的EFI Shell要求匹配大小写,在我这里不要求。
完成后重启,即可看到HBA的初始化,可以按Ctrl+C进入HBA BIOS。
如果要恢复原来的iMR固件,重启进入DOS
- megarec -cleanflash 0 //清空FLASH
- megarec -writesbr 0 sbr.bin //将原来备份的SBR刷回
- megarec -w0flash 0 imr411p.rom //将iMR固件刷回
复制代码
重启以后等待固件重新部署(一次性,时间较长),然后就恢复回原样了。
下面提供我自用的工具包,也在用AAXRMS2AF080的可以直接用,其他网友请在充分理解后再操作,切勿直接照搬我上面的步骤,后果自负。
刷成IT固件以后就是纯粹的SAS/SATA扩展卡了。经测试,在IT和IR固件下都可以正确发送trim命令,但在iMR固件下不行
IT固件
IR固件
iMR固件JBOD模式
IT及IR固件下AS SSD会变傻,各种4k骤降,就跟x58 x79 x99等开了ESRT2模式或者装了RSTe驱动一样;iMR固件JBOD模式下跑分正常。
三种固件下,盘都不会被安全冻结(Security Frozen),但只有iMR固件可以用TxBench做SE,IT和IR都会报错。
暂时能想到的就这些,先前承诺的Intel SSD祖孙四代横测会在iMR-JBOD模式下做,敬请期待(现在就等730到位了,@plane501)。
本帖本意是做服务器·改八的流水账,只是crossflash确实让我投入了不少时间进去,所以特别加以说明。一方面也说明国内这方面资料匮乏,想自己解决要满处爬文。
关于主板SATA接口不够怎么办,或者说想添置扩展卡应该选什么。我个人的建议依然是公版LSI 9211-8i,不管是原厂彩包还是made in huaqiangbei,这东西是很简单可靠的硬件,即使挂了也能很容易找到代用品,绝对不是同样made in huaqiangbei的各路JM、SII、甚至Marvell之流可以比的。至于IBM M1015或者DELL PERC H310这种可不可取,那就看价格是否更优了。M1015可以说无限接近公版LSI 9240,刷固件不需要特殊照顾,价格合理的话可以选择。H310这种,看过我上面的一点提示也应该能顺利刷下来。其他OEM型号,甚至内置模块,适不适合或者能不能,就看厂家是否丧病以及玩家自己水平如何了。
我这个模块只能适用于少数Intel原厂服务器板子,因为SNB和IVB有额外4条PCIe福利,再加上价格比较合适,所以决定买。在做完预定的SSD测试以后会留作以后转向软阵列所用。再来个RMM4远程管理模块,这板子就进化成完全体了。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|