I recently acquired the Remote Management card for my HP Microserver, which allows remote KVM & power control, IPMI management and hardware monitoring through temperature & fan sensors.
Note the extra connector on the card in addition to the standard PCI-e x1 connector which matches the dedicated slot on the Microserver motherboard. This presented a bit of a problem as I was using the space for the battery backup module for the RAID controller in the neighbouring slot.
Thankfully the long ribbon cable meant I could route the battery up to the space behind the DVD burner freeing the slot again. Once the card was installed and everything screwed back together I booted straight back into CentOS. Given IPMI is touted as a feature I figured that was the first thing to try so I installed OpenIPMI:
# yum -y install OpenIPMI ipmitool ... # service ipmi start Starting ipmi drivers: [ OK ] # ipmitool chassis status Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory Error sending Chassis Status command |
Hmm, not good. Looking at dmesg
shows the following is output when the IPMI drivers get loaded:
ipmi message handler version 39.2 IPMI System Interface driver. ipmi_si: Adding SMBIOS-specified kcs state machine ipmi_si: Adding ACPI-specified smic state machine ipmi_si: Trying SMBIOS-specified kcs state machine at i/o address 0xca8, slave address 0x20, irq 0 ipmi_si: Interface detection failed ipmi_si: Trying ACPI-specified smic state machine at mem address 0x0, slave address 0x0, irq 0 Could not set up I/O space ipmi device interface |
From reading the PDF manual it states that the IPMI KCS interface is at 0xCA2 in memory, not 0xCA8 that the kernel is trying to probe. Looking at the output from dmidecode
shows where this value is probably coming from:
# dmidecode --type 38 # dmidecode 2.11 SMBIOS 2.6 present. Handle 0x001B, DMI type 38, 18 bytes IPMI Device Information Interface Type: KCS (Keyboard Control Style) Specification Version: 1.5 I2C Slave Address: 0x10 NV Storage Device: Not Present Base Address: 0x0000000000000CA8 (I/O) Register Spacing: Successive Byte Boundaries |
This suggests a minor bug in the BIOS.
Querying the ipmi_si module with
modinfo
shows it can be persuaded to use a different I/O address so I created/etc/modprobe.d/ipmi.conf
containing the following:
1 options ipmi_si type=kcs ports=0xca2Then bounce the service to reload the modules and try again:
# service ipmi restart Stopping all ipmi drivers: [ OK ] Starting ipmi drivers: [ OK ]
As of CentOS 6.4, the above won’t work as the ipmi_si module is now compiled into the kernel. Instead, you need to edit /etc/grub.conf
and append the following to your kernel parameters:
1 | ipmi_si.type=kcs ipmi_si.ports=0xca2 |
Thanks to this post for the info. Instead of bouncing the service you’ll need to reboot, then try again:
# ipmitool chassis status System Power : on Power Overload : false Power Interlock : inactive Main Power Fault : false Power Control Fault : false Power Restore Policy : always-off Last Power Event : Chassis Intrusion : inactive Front-Panel Lockout : inactive Drive Fault : false Cooling/Fan Fault : false # ipmitool sdr Watchdog | 0x00 | ok CPU_THEMAL | 32 degrees C | ok NB_THERMAL | 35 degrees C | ok SEL Rate | 0 messages | ok AMBIENT_THERMAL | 20 degrees C | ok EvtLogDisabled | 0x00 | ok System Event | 0x00 | ok SYS_FAN | 1000 RPM | ok CPU Thermtrip | 0x00 | ok Sys Pwr Monitor | 0x00 | ok |
Success! With that sorted, you can now use ipmitool
to further configure the management card, although not all of the settings are accessible such as IPv6 network settings so you have to use the BIOS or web interface for some of it.
Overall, I’m fairly happy with the management card. It has decent IPv6 support and the Java KVM client works okay on OS X should I ever need it but I couldn’t coax the separate virtual media client to work, I guess only Windows is supported.