Agile software development using Kanban & Scrum. We code Flex & Ruby on Rails in Auckland, New Zealand.

  • Ubuntu 9.04 + PSP + Firmware Updates on HP DL380 G5

    PSP Install

    We prefer to use Ubuntu on our production servers for all kinds of reasons. With this choice however usually comes a lack of vendor support (because how can a Linux distro be enterprise if you don’t pay money for it?).

    The ProLiant Support Pack (PSP) provides a whole bunch of great software which helps with server management. I especially needed to update the firmware on our E200 RAID controller and SAS drives.

    HP have recently added PSP support for Ubuntu Jaunty 9.04 (and Debian Lenny 5.0) for many of their server models, so I downloaded the current PSP for our servers from here

    I ignored the instructions to use apt-cdrom, and instead mounted the ISO on the target machine with:

    mount -o loop HP_ProLiant_Value_Add_Software-8.25-19-12.iso /mnt/
    

    then added the repo (temporarily) to /etc/apt/sources.list:

    deb file:/mnt jaunty/8.25 non-free
    

    then updated and installed all the packages:

    apt-get update
    apt-get install lib32gcc1
    apt-get install hp-health
    apt-get install hp-snmp-agents
    apt-get install hpsmh
    apt-get install hp-smh-templates
    apt-get install hpacucli
    apt-get install cpqacuxe
    

    At this point the /etc/apt/sources.list entry can be removed.

    It is then necessary to run the snmp setup tool to make things report:

    /sbin/hpsnmpconfig
    [ answers go here ]
    /etc/init.d/hp-snmp-agents restart
    

    I just supplied enough answers to get things working locally.

    To use the web based version of the array configuration utility, the daemon needs to be started on the host:

    /usr/sbin/cpqacuxe -R
    

    I also added this into /etc/rc.local to make sure it runs at boot:

    /usr/sbin/cpqacuxe -R > /dev/null
    

    The HP System Management Homepage (SMH) and Array Configuration Utility can be then accessed at https://[host]:2381

    Firmware Updates

    The online firmware update tools from HP are good. A bit tricky to get going though.

    I got the updated firmware and disk firmwares for the E200 smart array controller from here

    The link above is for 64 bit RHEL 5, but they will execute fine on 64 bit Ubuntu 9.04 after a few tweaks.

    The firmware for the controller was under Firmware - Storage Controller with a description of Firmware CD Supplemental Update / Online ROM Flash Component for Linux - Smart Array E200 and E200i

    At the same time, I used the SMH to find out the Model Number of each of the installed drives. Then found the new firmware downloads for those drives on the same downloads page.

    To apply the firmware updates under Ubuntu, you need to do some hackery as outlined here. To repeat his instructions:

    wget http://mediakey.dk/~cc/files/compat-libstdc++-296-2.96-138.i386.rpm
    aptitude install rpm
    rpm2cpio compat-libstdc++-296-2.96-138.i386.rpm | cpio -idmv
    export LD_LIBRARY_PATH=/root/usr/lib/:$LD_LIBRARY_PATH
    ldconfig
    

    Then executed the downloaded controller firmware update file (in my case):

    /bin/bash ./CP011557.scexe
    

    The program did throw some errors, but I just ignored them as they didn’t cause any issues:

    ./CP011557.scexe: 344: pushd: not found
    ./CP011557.scexe: 344: popd: not found
    

    Using iLO, I did a cold boot as instructed, after applying the controller firmware update. As the server booted with the new controller firmware revision, the RAID BIOS threw a couple of quick messages to indicate that the firmware on some of the drives was now out of date. Good, because that is the next thing I updated.

    At the next login I applied the two firmware updates for the two types of SAS drive that are installed on that server:

    export LD_LIBRARY_PATH=/root/usr/lib/:$LD_LIBRARY_PATH
    /bin/bash ./CP011615.scexe
    /bin/bash ./CP011617.scexe
    

    The updates prompted for all the drives that needed updating. After applying both I did another cold boot (thanks iLO). Job done.