Utilizar hpacucli (Herramienta para controladoras StorageArray de HP) con Ubuntu Server 11.10 y kernels 3.x

Hoy, instalando un servidor nuevo, me he encontrado con que no era posible utilizar hpacucli (La herramienta para manejar las controladoras HP Smart Array) desde Ubuntu Server 11.10, que viene con Kernel 3.0

Esta entrada es también valida para usar hpacucli con debian squeeze (con un kernel actualizado a 3.2)

Cada vez que le enviaba un comando, me respondía lo siguiente:

Error: No controllers detected.

Aqui pongo el proceso completo para utilizarlo:

Descargamos el cliente de hpacucli mas reciente y lo instalamos en debian

mkdir hpacucli; cd hpacucli
wget http://mirror.nforce.com/pub/software/hpacucli-9.10.tgz
tar xvf hpacucli-9.10.tgz
mv usr/sbin/* /usr/sbin/
mv opt/compaq /opt/

Añadimos en /etc/modules las siguientes lineas:

hpsa
cciss

Tal y como está ahora, hpacucli se ejecutará pero no mostrará nada si hacemos un ctrl all show config detail, por ejemplo. Esto es porque está escrito de forma un poco chapucera y no es capaz de funcionar con un kernel que no se identifique como 2.6. Vamos a engañarle.

Instalamos un programa llamado uname26 que disfraza la version de nucleo que usamos como si tuviesemos la 2.6.
Descargar uname26.c (wordpress estropea todo el codigo, así que va como adjunto)

Compilamos…

gcc -o uname26 uname26.c
chmod +x uname26
mv uname26 /usr/bin/

Cargamos el modulo sg con «modprobe sg»

Ahora ya podremos ejecutar hpacucli con el siguiente comando

uname26 hpacucli
HP Array Configuration Utility CLI 8.75-12.0
Detecting Controllers...Done.
Type "help" for a list of supported commands.
Type "exit" to close the console.

=> ctrl all show config

Smart Array P410 in Slot 1

Y ya está, tenemos hpacucli funcionando en ubuntu/debian con kernel 3.0