Ubuntu Server & HP Proliant Support Pack ML350 G5, hpacucli & hp-health

In order to fully take advantage of the built in HP ProLiant features, we need to install HP's ProLiant Support Pack. Sadly HP no longer supports this for Debian/Ubuntu, but with a little bit of tweaking we can still make it work.

Installing HP Array admin tools

Download bootstrap from HP

test@ml350:~$ wget http://downloads.linux.hp.com/SDR/downloads/bootstrap.sh

We need to fix HP's bootstrap script to point to the current HP download url. Then we add HP's repo. Since HP no longer supports debian/ubuntu, we must override the distro version detection, therefore we specify -r oneiric, 11.10 being the latest supported version. Then we add the repo's GPG key.

test@ml350:~$ sed -i 's/blofly.usa/downloads.linux/g' ./bootstrap.sh
test@ml350:~$ chmod +x bootstrap.sh
test@ml350:~$ sudo ./bootstrap.sh -r oneiric ProLiantSupportPack
test@ml350:~$ wget -qO- http://downloads.linux.hp.com/SDR/downloads/ProLiantSupportPack/GPG-KEY-ProLiantSupportPack |  sudo apt-key add -

Finally we can update and install hpacu-cli and hp-health

test@ml350:~$ sudo apt-get update
test@ml350:~$ sudo apt-get install hpacucli hp-health

Fixing "Error: No controllers detected."

Now if you are like me and running a semi modern system(Kernel 3.0+), you will get the following error message:

test@ml350:~$ sudo hpacucli ctrl all show config
Error: No controllers detected.

To fix this you can either compile and run uname26 or backport a newer version of hpacucli from RHEL/SUSE to Debian/Ubuntu. For further reference, check here.

Option #1 (Option 2 is recommended):

Compile uname26 to pretend we are in an older kernel

test@ml350:~$ mkdir uname26
test@ml350:~$ cd uname26
test@ml350:~/uname26$ wget http://mirror.linux.org.au/linux/kernel/people/ak/uname26/Makefile
test@ml350:~/uname26$ wget http://mirror.linux.org.au/linux/kernel/people/ak/uname26/uname26.c
test@ml350:~/uname26$ make
test@ml350:~/uname26$ ./uname26

Now you can run it with uname26:

test@ml350:~/uname26$ sudo ./uname26 hpacucli ctrl all show config

Smart Array E200i in Slot 0 (Embedded)    (sn: QXXXXXXXX)

 array A (SAS, Unused Space: 0 MB)

  logicaldrive 1 (341.7 GB, RAID 5, OK)

  physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 72 GB, OK)
  physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 72 GB, OK)
  physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 72 GB, OK)
  physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 72 GB, OK)
  physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 72 GB, OK)
  physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 72 GB, OK)

Option #2:

Backport the newer version of hpacucli from SUSE, since debian and ubuntu are no longer supported.

We use alien to convert the SUSE RPM into a DEB and then install it.

test@ml350:~$ wget http://downloads.linux.hp.com/SDR/downloads/proliantsupportpack/SuSE/11.2/x86_64/9.10/hpacucli-9.10-22.0.x86_64.rpm
test@ml350:~$ sudo apt-get install alien
test@ml350:~$ sudo alien hpacucli-9.10-22.0.x86_64.rpm
test@ml350:~$ sudo dpkg -i hpacucli_9.10-23_amd64.deb

And now it works without using uname26:

test@ml350:~$ sudo hpacucli ctrl all show config

Smart Array E200i in Slot 0 (Embedded)    (sn: QXXXXXXXX)

 array A (SAS, Unused Space: 0 MB)

  logicaldrive 1 (341.7 GB, RAID 5, OK)

  physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 72 GB, OK)
  physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 72 GB, OK)
  physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 72 GB, OK)
  physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 72 GB, OK)
  physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 72 GB, OK)
  physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 72 GB, OK)

Cheers & enjoy =).