Firmware upgrade for HP Smart Array P420 FBWC 1Gb 2-ports Int SAS Controller

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.

Steps :

  1. Download the firmware. It should be named CP023884.scexe
  2. Boot your Ubuntu Live installation. I used YUMI to boot Ubuntu from a USB disk.
  3. Copy the firmware on a folder, for example Desktop, after you booted Ubuntu.
  4. Launch terminal, use sudo su to become root, then change directory to Desktop. In my case the path is /home/it/Desktop.
  5. Make the file executable :
    root@it:/home/it/Desktop# chmod 775 CP023884.scexe
  6. 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
  7. Unpack the firmware :
    ./CP023884.scexe --unpack=/home/it/Desktop/hp
  8. Go to /home/it/Desktop/hp and run ./ccissflashIt will give you an error
    bash: ./ccissflash: No such file or directory
  9. 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
  10. 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.

  11. 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


Skip to comment form

    • Peter Pender on November 16, 2015 at 11:50 am
    • Reply

    Thanks a lot, you saved me.

    • Martin Vasko on August 5, 2016 at 12:50 pm
    • Reply

    Thank you, it worked for me.

  1. Thank you! Now if i could only find a way to get my device iin hbmode because I want to use my disk

    Smart Array P410i
    RAM Firmware Revision 6.64

    # ssacli controller slot=0 modify hbamode=on forced

    Error: This operation is not supported with the current configuration. Use the
    “show” command on devices to show additional details about the
    Reason: Not supported

  2. If using ArchLinux, then you should install lib32-gcc-libs.
    When I tried to run ./hpsetup, I got no such file or directory: ./hpsetup. Wtf? I am just executing this file!
    Then I run ldd hpsetup and got not a dynamic executable.
    But after enabling multilib repository and installing lib32-gcc-libs,
    ldd hpsetup actually returned used libraries list.
    And also, if you decide not to run self-packed script (./CP023884.scexe), but to run hpsetup, that you previously extracted, do not forget to source CPINIT first. Otherwise you will get Internal error, cannot continue. See log files for details.

  3. thank you! this worked here as well!

Leave a Reply

Your email address will not be published.


This site uses Akismet to reduce spam. Learn how your comment data is processed.