How can I update the SmartArray P410i firmware on a DL360G6? The usual method via SPP Auto-Update fails

Solution 1:

I found something that worked on only the second try.

First try: system rescue CD

This fails due to fundamental kernel incompatibilities with the HP-provided binaries. That's not surprising since it uses a Linux kernel version 4 and the HP binaries are for version 2.

Second try: CentOS 6 rescue mode

This sort of worked. In order to make it work, I needed to copy the dirname and tr binaries from another preinstalled CentOS 6 server. There did not seem to be any way to add binaries to the rescue environment since it's mounted read-only as a loop device from an image in /tmp.

However, I could copy compatible binaries into /tmp and then add /tmp to my PATH.

On "centos6" existing host:

$ cd /tmp
$ <upload hp-firmware-smartarray-14ef73e580-6.64-2.x86_64.rpm here>
$ rpm2cpio hp-firmware-smartarray-14ef73e580-6.64-2.x86_64.rpm | cpio -id
31207 blocks

Here's what was done to make this work on the DL360G6 after booting CentOS6 into rescue mode, enabling network, and dropping to a rescue shell without attempting to mount any existing linux installations:

# scp user@centos6:/usr/bin/dirname /tmp/.
# scp user@centos6:/usr/bin/tr /tmp/.
# scp -rp user@centos6:/tmp/usr /tmp/.
# export PATH=$PATH:/tmp
# which tr
/tmp/tr
# cd /tmp/usr/lib/x86_64-linux-gnu/hp-firmware-smartarray-14ef73e580-6.64-2
# ./hpsetup

Magic! It works! CentOS 6 Rescue Mode as a Live CD with adjustments allowed update to work

Also confirmed from the ESXi 5.5 ssh CLI:

~ # esxcli hpssacli cmd --cmdopts="ctrl all show config detail"

Smart Array P410i in Slot 0 (Embedded)
  Bus Interface: PCI
  Slot: 0
  ...
  RAID 6 (ADG) Status: Disabled
  Controller Status: OK
  Hardware Revision: C
  Firmware Version: 6.64

Firmware Version: 6.64... nice!

Solution 2:

I ran into a similar problem updating my HP Proliant DL380 G7 with a P410i raid card. Posting to help others.

When I ran hpsetup the error was "310: Bad Substitution"

My solution was to run ccissflash instead of hpsetup. It worked perfectly.

I did this under Linux Mint 20.1 x64 used firmware: Version: 6.64 (B)(1 Oct 2015) SUSE Linux Enterprise Server 11 (AMD64/EM64T) firmware-smartarray-14ef73e580-6.64-2.x86_64.rpm