Want to install a firmware update on one of your HP SmartArray controllers while running a 64-bit OS? Turns out, the binaries distributed by HP seem to be 32-bit only – running for example Ubuntu 14.04, here’s what you gotta do…
root@host:~#./CP021971.scexe ./CP021971.scexe: 153: ./CP021971.scexe: pushd: not found ./CP021971.scexe: 158: ./CP021971.scexe: popd: not found ./ccissflash: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
But libstdtc++6 seems already installed, hmpf… 32-bit maybe?
root@host:~#dpkg --add-architecture i386
root@host:~#apt-get update
root@host:~#apt-get install libstdc++6:i386
Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: gcc-4.8-base:i386 gcc-4.9-base:i386 libc6:i386 libgcc1:i386 [...]
Let’s try that again…
root@host:~#./CP021971.scexe
./CP021971.scexe: 153: ./CP021971.scexe: ./CP021971.scexe: 158: ./CP021971.scexe: popd: not found
pushd: not found
This program consists of two phases: device discovery and device update.
No device will be updated until you answer.
Do you want to run device discovery?
(yes/no) yes
Finding hardware. This may take a few minutes.
Found 1 devices.
Do you want to upgrade the device that has older ROM?
(yes/no) yes
1 devices will be updated.
Updating: P410i Slot: 0 from [5.70] to [6.40]
Updating: P410i Slot: 0 from [5.70] to [6.40]
As part of the reboot process, you must power cycle the server and any external array storage devices.
Well, that was rather easy…