Because HP is now requesting money for some of their software and updates, i had to use a live Ubuntu 14.04 x64 disc in order to upgrade the firmware for HP P420 SAS Controller. I needed to try this update because on my HP ML310e Gen8 v2 servers (i have two), the controller is not initalised at cold boot. The problem is described here.
At the time of the writing the latest firmware available for HP P420 FBWC 1GB 2 ports internal SAS controller is 6.0. released in September 2014. You can get it here.
Description for firmware v6.00 on HP website:
Problems Fixed in version 6.00: This firmware release resolved the following issues: When executing kdump on systems running in Zero Memory RAID (ZMR) mode, the controller might halt. When an HP Smart Array P420 controller was attached to both an expander backplane and non-expander backplane, the controller would not properly control SmartCarrier LEDs. Chkdsk was running slowly.
Because i can’t use HP Service Pack for ProLiant (SPP) software (you now have to pay for it) i had to rely on a live Ubuntu 14.04 x64 disc.
- Download the firmware. It should be named CP023884.scexe
- Boot your Ubuntu Live installation. I used YUMI to boot Ubuntu from a USB disk.
- Copy the firmware on a folder, for example Desktop, after you booted Ubuntu.
- Launch terminal, use sudo su to become root, then change directory to Desktop. In my case the path is /home/it/Desktop.
- Make the file executable :
root@it:/home/it/Desktop# chmod 775 CP023884.scexe
- If you try to run it it should give you an error message :
root@it:/home/it/Desktop# ./CP023884.scexe ./CP023884.scexe: 153: ./CP023884.scexe: ./CP023884.scexe: 158: ./CP023884.scexe: popd: not found pushd: not found ./hpsetup: 2: ./hpsetup: ./ccissflash: not found
- Unpack the firmware :
- Go to /home/it/Desktop/hp and run ./ccissflashIt will give you an error
bash: ./ccissflash: No such file or directory
- Examining the executable you will see that is a 32 bit application :
root@it:/home/it/Desktop/hp# file ccissflash ccissflash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped
- Install 32bit dependencies :
dpkg --add-architecture i386 apt-get update apt-get install libstdc++6:i386
After this step my screen resolution goes wild so i have to use CTRL+ALT+F1 then CTRL+ALT+F7 to get it back normally.
- Run the executable again
You will get :
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 [4.68] to [6.0] Updating: P410i Slot: 0 from [4.68] to [6.0] As part of the reboot process, you must power cycle the server and any external array storage devices.
After the upgrade i shut down the server and waited 30 minutes.
SUCCESS : The controller was detected and booted from. The next day it also worked. However i think the issue is resolved in one of the previous firmware releases 5.22 or 5.42