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

Pro*_*kup 4 storage hp sas firmware hp-smart-array

如何更新/升级/刷新 HP SAS 扩展卡 [468406-B21又名 487738-001]的固件?

我曾经使用 Windows 和 HP P410 Smart Array 控制器执行此操作,但是该控制器不再可用。

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

Pro*_*kup 11

可以使用 Linux 和 SAS HBA升级 HP SAS 扩展器。
注意:当扩展器连接到 SAS RAID控制器时,将固件刷新到 SAS 扩展器可能无法正常工作,因为该控制器可能会向操作系统隐藏其后面的所有设备。SAS HBA 的一个示例是Supermicro SAS2LP-MV8

如果您还没有 Linux,可以使用 Linux Live CD。您可以尝试最新的 Ubuntu Live CD。一个32位的下载就行了。64 位也可以。

1. 先决条件

  1. 启动Linux终端
    也就是说Ctrl+ Alt+T使用的是Ubuntu的LiveCD。

  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. 设置实用程序

你用的sg_write_buffer版本?1.15 在扩展器连接到主机总线适配器 (HBA) 时下载微代码。要在 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
Run Code Online (Sandbox Code Playgroud)

sg_write_buffer实用程序的版本?1.15 — 分发sg3_utils版本 ? 1.39 — 添加了--bpw以小块下载的选项。扩展器可能需要像 4096 字节这样的小块大小。

3. 获取并解压惠普固件镜像

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

  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 (check with 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
Run Code Online (Sandbox Code Playgroud)

较旧的设备可能仅支持--mode=0x7. 模式0x7也称为dmc_offs_save,它确实下载带有偏移量的微码,保存并激活。

5. 删除临时文件

# rm PUF21000.bin
Run Code Online (Sandbox Code Playgroud)

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

  • 提到的固件的更新位置位于 http://downloads.hpe.com/pub/softlib2/software1/sc-linux-fw-array/p6670438/v96061/CP022989.scexe。 (3认同)
  • +1 创造力,但这听起来有点冒险。我只会在使用 HP 服务器或 Smart Array 控制器部署 SAS 扩展器之前更新固件。该产品已停产,因此[新固件发布的发生率较低](http://h20565.www2.hp.com/portal/site/hpsc/template.PAGE/public/psi/swdDetails/? sp4ts.oid = 7477380&spf_p.tpst = swdMain&spf_p.prp_swdMain = WSRP-navigationalState%3Didx%253D%257CswItem%253DMTX_07e17cded9e8409ea4b9d7ea74%257CswEnvOID%253D4004%257CitemLocale%253D%257CswLang%253D%257Cmode%253D5%257Caction%253DdriverDocument)。 (2认同)
  • 这是 EOL,因为扩展器与 Gen8 或 Gen9 服务器不兼容。 (2认同)