How to identify whether a device is IPMI enabled or not in Linux
I posted earlier here how to use ipmitool to monitor and troubleshoot hardware issues as another medium besides looking at the system log file. Sometimes there might be some hardare issues like system reboot/hung system where we may find no clue in the system log file , but ipmitool can provide some clues in its System Event Log (SEL) to help identify a potential hardware issue . We have identified many production issues in our environment where no trace could be found in system log file , but ipmitool pointing out that we are having some bad hardware .
But to use ipmitool , we need to check first whether my systemboard has support for IPMI. Old
system-boards might not support IPMI technology .
Using dmidecode tool to identify IPMI Support
We can use dmidecode to check whether a particular device is an IPMI enabled device . The following example shows this ..
-bash-3.00$ sudo dmidecode | grep -A 6 -i ipmi
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: 32-bit Boundaries
We need to check at the base address . If the base address is other than 0x000000.. , then we can assume that our hardware has support for IPMI. In the above output , the system-board is an IPMI enabled device . We can then use ipmitool to query the device for IPMI information .
Let's now look at a host which does not support IPMI
$ sudo dmidecode | grep -A 8 -i ipmi
Password:
IPMI Device Information
Interface Type: Unknown
Specification Version: 1.0
I2C Slave Address: 0x00
NV Storage Device: Not Present
Base Address: 0x0000000000000000 (Memory-mapped) Register Spacing: Successive Byte Boundaries
In the above output , we can see that the address is all Zero's which is telling us that the system-board is not IPMI enabled. If we try to start the ipmi service on the host , it fails .
$ sudo /etc/init.d/ipmi status
ipmi_msghandler module not loaded.
ipmi_si module not loaded.
ipmi_devintf module not loaded.
/dev/ipmi0 does not exist.
The modules are not loaded and if we try to load the modules , it will fail .
But to use ipmitool , we need to check first whether my systemboard has support for IPMI. Old
system-boards might not support IPMI technology .
Using dmidecode tool to identify IPMI Support
We can use dmidecode to check whether a particular device is an IPMI enabled device . The following example shows this ..
-bash-3.00$ sudo dmidecode | grep -A 6 -i ipmi
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: 32-bit Boundaries
We need to check at the base address . If the base address is other than 0x000000.. , then we can assume that our hardware has support for IPMI. In the above output , the system-board is an IPMI enabled device . We can then use ipmitool to query the device for IPMI information .
Let's now look at a host which does not support IPMI
$ sudo dmidecode | grep -A 8 -i ipmi
Password:
IPMI Device Information
Interface Type: Unknown
Specification Version: 1.0
I2C Slave Address: 0x00
NV Storage Device: Not Present
Base Address: 0x0000000000000000 (Memory-mapped) Register Spacing: Successive Byte Boundaries
In the above output , we can see that the address is all Zero's which is telling us that the system-board is not IPMI enabled. If we try to start the ipmi service on the host , it fails .
$ sudo /etc/init.d/ipmi start
Starting ipmi drivers: [FAILED]
Starting ipmi drivers: [FAILED]
ipmi_msghandler module not loaded.
ipmi_si module not loaded.
ipmi_devintf module not loaded.
/dev/ipmi0 does not exist.
The modules are not loaded and if we try to load the modules , it will fail .
Comments
ETL Testing online training
Hadoop online training