如何在没有Smart Array控制器或Proliant服务器的情况下升级HP SAS扩展卡的固件?

如何更新/升级/闪存HP SAS扩展卡的固件[468406-B21 aka 487738-001] ?

我曾经使用Windows和HP P410智能arrays控制器来完成此操作,但是该控制器不再可用。

在线ROM闪存组件不是一个选项,因为我没有HP Smart Array控制器。 HP Service Pack for ProLiant + USB key / stick选项也不是,因为这需要ProLiant服务器。

使用Linux和SAS HBA可以升级HP SAS扩展器。
注意:当扩展器连接到SAS RAID控制器时,将固件闪烁到SAS扩展器可能不起作用,因为该控制器可能隐藏操作系统后面的所有设备。 SAS HBA的一个例子是Supermicro SAS2LP-MV8 。

如果你还没有Linux,你可以使用Linux Live CD。 你可以尝试最新的Ubuntu Live CD 。 一个32位下载将做。 64位也将工作。

1.先决条件

  1. 启动一个Linuxterminal
    那就是使用Ubuntu LiveCD的Ctrl + Alt + T。

  2. 确保您的互联网连接正常
    下载并安装其他组件

  3. 确保在Linux中检测到您的SAS扩展卡
    # lsscsi -g | grep HP
    应该返回类似于:
    [6:0:0:0] enclosu HP HP SAS EXP Card 2.08 - /dev/sg1
    [6:0:1:0] enclosu HP HP SAS EXP Card 2.10 - /dev/sg2

2.安装实用程序

当扩展器连接到主机总线适配器(HBA)时,使用sg_write_buffer版本≥1.15来下载微码。 要在32位Ubuntu或Debian下载并安装此实用程序,请使用:

 # curl -O http://sg.danny.cz/sg/p/libsgutils2-2_1.39-0.1_i386.deb && curl -O http://sg.danny.cz/sg/p/sg3-utils_1.39-0.1_i386.deb && dpkg -i *_1.39-0.1_i386.deb 

sg_write_buffer实用程序版本≥1.15 – 分布在sg3_utils版本sg3_utils – 添加了--bpw选项以小块进行下载。 扩展器可能需要像4096字节的小块大小。

3.获取并解压缩HP固件映像

  1. 获取扩展器固件映像文件,例如2014年9月9日版本2.10(C) :
    # curl -O http://downloads.hpe.com/pub/softlib2/software1/sc-linux-fw-array/p6670438/v96061/CP022989.scexe
    虽然听起来像Windows / DOS可执行文件, .scexe HP的.scexe文件实际上是可执行的Linux脚本,您可以在文本编辑器(至less是第一部分)中查看。

  2. 运行64位Linux并遇到与下一个命令有关的问题? 然后确保您可以运行32位可执行文件。 Ubuntu中的命令是:
    # dpkg --add-architecture i386 && apt-get update && apt-get install libstdc++6:i386

  3. 从这个.scexe文件中提取固件映像:
    # mkdir tmp && chmod +x CP022989.scexe && ./CP022989.scexe --unpack=tmp && mv tmp/PUF21000.bin . && rm -r tmp/

4.闪存SAS扩展器

当要升级/ sg1的扩展器被命名为sg1 (使用lsscsi -g | grep HP检查)时 ,使用:

 # sg_write_buffer --mode=dmc_offs_defer --bpw=4096 --in=PUF21000.bin /dev/sg1 # sg_write_buffer --mode=activate_mc /dev/sg1 

旧设备可能只支持--mode=0x7 模式0x7也被称为dmc_offs_save ,它可以下载偏移量的微码,保存并激活。

5.删除临时文件

 # rm PUF21000.bin 

您可能需要再次卸载(例如modprobe -r mvsas )和加载(fe modprobe mvsas )HBA模块或reboot以反映lsscsi -g输出中的固件版本更改。