ipmitool

TL;DR

Configure networking:

sudo dnf install -y ipmitool || nix-shell -p ipmitool
sudo ipmitool lan set 1 ipsrc static
sudo ipmitool lan set 1 netmask 255.255.255.0
sudo ipmitool lan set 1 defgw ipaddr 0.0.0.0
sudo ipmitool lan set 1 ipaddr 192.0.2.10
sudo ipmitool mc reset warm

List users:

sudo ipmitool user list

Set a password:

read -s password
sudo ipmitool user set password 1 "$password"

Get network info:

sudo ipmitool lan6 print
sudo ipmitool lan print

Get reported power consumption:

ipmitool is a utility for interacting with system BMC/IPMI controllers/management interfaces.

Detailed

Installation

On a RHEL-like platform, it can be installed with:

sudo dnf install -y ipmitool

On NixOS, you can get it in a nix-shell:

nix-shell -p ipmitool

Channels

HPE G8 iLOs typically represent the Ethernet interface as channel 0x2:

[wporter@server ~]$ sudo ipmitool channel info 0x2
Channel 0x2 info:
  Channel Medium Type   : 802.3 LAN
  Channel Protocol Type : IPMB-1.0
  Session Support       : multi-session
  Active Session Count  : 0
  Protocol Vendor ID    : 7154
  Volatile(active) Settings
    Alerting            : enabled
    Per-message Auth    : disabled
    User Level Auth     : enabled
    Access Mode         : always available
  Non-Volatile Settings
    Alerting            : enabled
    Per-message Auth    : disabled
    User Level Auth     : enabled
    Access Mode         : always available

All available channels are 0x00x9, then 0xE, 0xF.

Resetting the BMC

For a ‘warm’ restart of the BMC (don’t reboot the server), use the ipmitool mc reset warm command:

$ sudo ipmitool mc reset warm
Sent warm reset command to MC

This will usually take a few minutes.

For a full “cold” restart of server and BMC:

$ sudo ipmitool mc reset cold

Finding network info

To get IPv4 info from the OS, use ipmitool lan print:

$ sudo ipmitool lan print
Set in Progress         : Set Complete
Auth Type Support       :
Auth Type Enable        : Callback :
                        : User     :
                        : Operator :
                        : Admin    :
                        : OEM      :
IP Address Source       : Static Address
IP Address              : 0.0.0.0
Subnet Mask             : 0.0.0.0
MAC Address             : 58:20:b1:ff:ff:ff
SNMP Community String   :
BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP      : 0.0.0.0
802.1q VLAN ID          : Disabled
802.1q VLAN Priority    : 0
RMCP+ Cipher Suites     : 0,1,2,3
Cipher Suite Priv Max   : XuuaXXXXXXXXXXX
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM
Bad Password Threshold  : Not Available

For v6 info, use ipmitool lan6 print:

$ sudo ipmitool lan6 print
Getting parameter(s)...
IPv6/IPv4 Support:
    IPv6 only: no
    IPv4 and IPv6: yes
    IPv6 Destination Addresses for LAN alerting: no
IPv6/IPv4 Addressing Enables: both
IPv6 Status:
    Static address max:  4
    Dynamic address max: 8
    DHCPv6 support:      yes
    SLAAC support:       yes
IPv6 Static Address 0:
    Enabled:        no
    Address:        ::/0
    Status:         disabled
IPv6 Static Address 1:
    Enabled:        no
    Address:        ::/0
    Status:         disabled
IPv6 Static Address 2:
    Enabled:        no
    Address:        ::/0
    Status:         disabled
IPv6 Static Address 3:
    Enabled:        no
    Address:        ::/0
    Status:         disabled
IPv6 Dynamic Address 0:
    Source/Type:    SLAAC
    Address:        fe80::5a20:ffff:feff:ffff/64
    Status:         active
IPv6 Dynamic Address 1:
    Source/Type:    SLAAC
    Address:        ::/0
    Status:         disabled
IPv6 Dynamic Address 2:
    Source/Type:    SLAAC
    Address:        ::/0
    Status:         disabled
IPv6 Dynamic Address 3:
    Source/Type:    SLAAC
    Address:        ::/0
    Status:         disabled
IPv6 Dynamic Address 4:
    Source/Type:    DHCPv6
    Address:        ::/0
    Status:         disabledsc
IPv6 Dynamic Address 5:
    Source/Type:    DHCPv6
    Address:        ::/0
    Status:         disabled
IPv6 Dynamic Address 6:
    Source/Type:    DHCPv6
    Address:        ::/0
    Status:         disabled
IPv6 Dynamic Address 7:
    Source/Type:    DHCPv6
    Address:        ::/0
    Status:         disabled
IPv6 DHCPv6 Timing Configuration Support: not supported
IPv6 Router Address Configuration Control:
    Enable static router address:  yes
    Enable dynamic router address: yes
IPv6 ND/SLAAC Timing Configuration Support: not supported

Configuring addressing

To set an IPv4 address:

$ sudo ipmitool lan set 1 ipsrc static

$ sudo ipmitool lan set 1 ipaddr 192.0.2.10
Setting LAN IP Address to 192.0.2.10

$ sudo ipmitool lan set 1 netmask 255.255.255.0
Setting LAN Subnet Mask to 255.255.255.0

$ sudo ipmitool lan set 1 defgw ipaddr 192.0.2.1
Setting LAN Default Gateway IP to 192.0.2.1

Setting passwords

To reset the password for the admin user (some vendors like HP set a random password on the pull-tag on the front of the server; you may not have access to these):

First, list users. The specific channel varies; on a HPE G8 it’s 2. On most other servers, it’s 1.

$ sudo ipmitool user list 2
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
1   Administrator    true    false      true       ADMINISTRATOR
2   (Empty User)     true    false      false      NO ACCESS
3   (Empty User)     true    false      false      NO ACCESS
4   (Empty User)     true    false      false      NO ACCESS
5   (Empty User)     true    false      false      NO ACCESS
6   (Empty User)     true    false      false      NO ACCESS
7   (Empty User)     true    false      false      NO ACCESS
8   (Empty User)     true    false      false      NO ACCESS
9   (Empty User)     true    false      false      NO ACCESS
10  (Empty User)     true    false      false      NO ACCESS
11  (Empty User)     true    false      false      NO ACCESS
12  (Empty User)     true    false      false      NO ACCESS

For best results, use a password without special characters that’s at most 19 characters long (< 20 bytes). To set the user’s password:

$ sudo ipmitool user set password 1 foobarbaz
Set User Password command successful (user 1)

If you want to not have the password hanging out in your bash history:

read -s password
sudo ipmitool user set password 1 "$password"

Read sensors

HPE:

$ sudo ipmitool sdr list
UID Light                | 0x00              | ok
Sys. Health LED          | no reading        | ns
01-Inlet Ambient         | 22 degrees C      | ok
02-CPU 1                 | 40 degrees C      | ok
03-CPU 2                 | 40 degrees C      | ok
04-P1 DIMM 1-3           | 37 degrees C      | ok
05-P1 DIMM 4-6           | 39 degrees C      | ok
06-P1 DIMM 7-9           | 39 degrees C      | ok
07-P1 DIMM 10-12         | 39 degrees C      | ok
08-P2 DIMM 1-3           | 31 degrees C      | ok
09-P2 DIMM 4-6           | 32 degrees C      | ok
10-P2 DIMM 7-9           | 34 degrees C      | ok
11-P2 DIMM 10-12         | 36 degrees C      | ok
12-HD Max                | 42 degrees C      | ok
13-Chipset               | 55 degrees C      | ok
14-P/S 1                 | 34 degrees C      | ok
15-P/S 2                 | 32 degrees C      | ok
16-P/S 2 Zone            | 33 degrees C      | ok
17-VR P1                 | 42 degrees C      | ok
18-VR P2                 | 34 degrees C      | ok
19-VR P1 Mem             | 40 degrees C      | ok
20-VR P1 Mem             | 39 degrees C      | ok
21-VR P2 Mem             | 33 degrees C      | ok
22-VR P2 Mem             | 35 degrees C      | ok
23-VR P1Vtt Zone         | 41 degrees C      | ok
24-VR P2Vtt Zone         | 33 degrees C      | ok
25-HD Controller         | 84 degrees C      | ok
26-iLO Zone              | 40 degrees C      | ok
27-LOM Card              | 62 degrees C      | ok
28-PCI 1                 | disabled          | ns
29-PCI 2                 | disabled          | ns
30-PCI 3                 | disabled          | ns
31-PCI 4                 | disabled          | ns
32-PCI 5                 | disabled          | ns
33-PCI 6                 | disabled          | ns
34-PCI 1 Zone            | 36 degrees C      | ok
35-PCI 2 Zone            | 37 degrees C      | ok
36-PCI 3 Zone            | 38 degrees C      | ok
37-PCI 4 Zone            | disabled          | ns
38-PCI 5 Zone            | disabled          | ns
39-PCI 6 Zone            | disabled          | ns
40-I/O Board 1           | 41 degrees C      | ok
41-I/O Board 2           | disabled          | ns
42-VR P1 Zone            | 35 degrees C      | ok
43-BIOS Zone             | 54 degrees C      | ok
44-System Board          | 42 degrees C      | ok
45-SuperCap Max          | 29 degrees C      | ok
46-Chipset Zone          | 41 degrees C      | ok
47-Battery Zone          | 38 degrees C      | ok
48-I/O Zone              | 43 degrees C      | ok
49-Sys Exhaust           | 39 degrees C      | ok
50-Sys Exhaust           | 38 degrees C      | ok
Fan 1                    | 6.27 percent      | ok
Fan 2                    | 6.27 percent      | ok
Fan 3                    | 6.27 percent      | ok
Fan 4                    | 6.27 percent      | ok
Fan 5                    | 6.27 percent      | ok
Fan 6                    | 7.45 percent      | ok
Power Supply 1           | 50 Watts          | ok
Power Supply 2           | 85 Watts          | ok
Power Meter              | 156 Watts         | ok
Power Supplies           | 0x00              | ok
Fans                     | 0x00              | ok
Memory                   | 0x00              | ok
C1 P1I Bay 1             | 0x01              | ok
C1 P1I Bay 2             | 0x01              | ok
C1 P1I Bay 3             | 0x01              | ok
C1 P1I Bay 4             | 0x01              | ok
C1 P2I Bay 5             | 0x01              | ok
C1 P2I Bay 6             | 0x01              | ok
C1 P2I Bay 7             | 0x01              | ok
$ sudo ipmitool sdr type Temperature
01-Inlet Ambient         | 03h | ok  | 64.1 | 22 degrees C
02-CPU 1                 | 04h | ok  | 65.1 | 40 degrees C
03-CPU 2                 | 05h | ok  | 65.2 | 40 degrees C
04-P1 DIMM 1-3           | 06h | ok  | 32.1 | 38 degrees C
05-P1 DIMM 4-6           | 07h | ok  | 32.2 | 39 degrees C
06-P1 DIMM 7-9           | 08h | ok  | 32.3 | 39 degrees C
07-P1 DIMM 10-12         | 09h | ok  | 32.4 | 39 degrees C
08-P2 DIMM 1-3           | 0Ah | ok  | 32.5 | 31 degrees C
09-P2 DIMM 4-6           | 0Bh | ok  | 32.6 | 32 degrees C
10-P2 DIMM 7-9           | 0Ch | ok  | 32.7 | 34 degrees C
11-P2 DIMM 10-12         | 0Dh | ok  | 32.8 | 36 degrees C
12-HD Max                | 0Eh | ok  |  4.1 | 42 degrees C
13-Chipset               | 0Fh | ok  | 66.1 | 54 degrees C
14-P/S 1                 | 10h | ok  | 10.4 | 34 degrees C
15-P/S 2                 | 11h | ok  | 10.5 | 32 degrees C
16-P/S 2 Zone            | 12h | ok  | 10.6 | 33 degrees C
17-VR P1                 | 13h | ok  | 19.1 | 42 degrees C
18-VR P2                 | 14h | ok  | 19.2 | 34 degrees C
19-VR P1 Mem             | 15h | ok  | 19.3 | 40 degrees C
20-VR P1 Mem             | 16h | ok  | 19.4 | 39 degrees C
21-VR P2 Mem             | 17h | ok  | 19.5 | 33 degrees C
22-VR P2 Mem             | 18h | ok  | 19.6 | 35 degrees C
23-VR P1Vtt Zone         | 19h | ok  | 19.7 | 41 degrees C
24-VR P2Vtt Zone         | 1Ah | ok  | 19.8 | 33 degrees C
25-HD Controller         | 1Bh | ok  | 66.2 | 84 degrees C
26-iLO Zone              | 1Ch | ok  |  6.1 | 40 degrees C
27-LOM Card              | 1Dh | ok  | 11.1 | 62 degrees C
28-PCI 1                 | 1Eh | ns  | 11.2 | Disabled
29-PCI 2                 | 1Fh | ns  | 11.3 | Disabled
30-PCI 3                 | 20h | ns  | 11.4 | Disabled
31-PCI 4                 | 21h | ns  | 11.5 | Disabled
32-PCI 5                 | 22h | ns  | 11.6 | Disabled
33-PCI 6                 | 23h | ns  | 11.7 | Disabled
34-PCI 1 Zone            | 24h | ok  | 16.1 | 36 degrees C
35-PCI 2 Zone            | 25h | ok  | 16.2 | 37 degrees C
36-PCI 3 Zone            | 26h | ok  | 16.3 | 38 degrees C
37-PCI 4 Zone            | 27h | ns  | 16.4 | Disabled
38-PCI 5 Zone            | 28h | ns  | 16.5 | Disabled
39-PCI 6 Zone            | 29h | ns  | 16.6 | Disabled
40-I/O Board 1           | 2Ah | ok  | 16.7 | 41 degrees C
41-I/O Board 2           | 2Bh | ns  | 16.8 | Disabled
42-VR P1 Zone            | 2Ch | ok  | 19.9 | 34 degrees C
43-BIOS Zone             | 2Dh | ok  | 34.1 | 53 degrees C
44-System Board          | 2Eh | ok  | 66.3 | 42 degrees C
45-SuperCap Max          | 2Fh | ok  | 40.1 | 29 degrees C
46-Chipset Zone          | 30h | ok  | 66.4 | 41 degrees C
47-Battery Zone          | 31h | ok  | 40.2 | 38 degrees C
48-I/O Zone              | 32h | ok  | 66.5 | 43 degrees C
49-Sys Exhaust           | 33h | ok  | 13.1 | 39 degrees C
50-Sys Exhaust           | 34h | ok  | 13.2 | 38 degrees C
$ sudo ipmitool sdr type 'Power Supply'
Power Supply 1           | 3Bh | ok  | 10.1 | 50 Watts, Presence detected
Power Supply 2           | 3Ch | ok  | 10.2 | 90 Watts, Presence detected
Power Supplies           | 3Eh | ok  | 10.3 | Fully Redundant

Supermicro X10:

$ sudo ipmitool sdr
CPU1 Temp        | 47 degrees C      | ok
CPU2 Temp        | 38 degrees C      | ok
PCH Temp         | 47 degrees C      | ok
System Temp      | 26 degrees C      | ok
Peripheral Temp  | 43 degrees C      | ok
MB_NIC_Temp1     | 61 degrees C      | ok
MB_NIC_Temp2     | 58 degrees C      | ok
Vcpu1VRM Temp    | 37 degrees C      | ok
Vcpu2VRM Temp    | 31 degrees C      | ok
VmemABVRM Temp   | 27 degrees C      | ok
VmemCDVRM Temp   | 29 degrees C      | ok
VmemEFVRM Temp   | 27 degrees C      | ok
VmemGHVRM Temp   | 26 degrees C      | ok
P1-DIMMA1 Temp   | 31 degrees C      | ok
P1-DIMMA2 Temp   | 31 degrees C      | ok
P1-DIMMA3 Temp   | no reading        | ns
P1-DIMMB1 Temp   | 32 degrees C      | ok
P1-DIMMB2 Temp   | 31 degrees C      | ok
P1-DIMMB3 Temp   | no reading        | ns
P1-DIMMC1 Temp   | 30 degrees C      | ok
P1-DIMMC2 Temp   | 29 degrees C      | ok
P1-DIMMC3 Temp   | no reading        | ns
P1-DIMMD1 Temp   | 29 degrees C      | ok
P1-DIMMD2 Temp   | 30 degrees C      | ok
P1-DIMMD3 Temp   | no reading        | ns
P2-DIMME1 Temp   | 29 degrees C      | ok
P2-DIMME2 Temp   | 27 degrees C      | ok
P2-DIMME3 Temp   | no reading        | ns
P2-DIMMF1 Temp   | 28 degrees C      | ok
P2-DIMMF2 Temp   | 28 degrees C      | ok
P2-DIMMF3 Temp   | no reading        | ns
P2-DIMMG1 Temp   | 26 degrees C      | ok
P2-DIMMG2 Temp   | 26 degrees C      | ok
P2-DIMMG3 Temp   | no reading        | ns
P2-DIMMH1 Temp   | 27 degrees C      | ok
P2-DIMMH2 Temp   | 28 degrees C      | ok
P2-DIMMH3 Temp   | no reading        | ns
FAN1             | 1900 RPM          | ok
FAN2             | 1900 RPM          | ok
FAN3             | no reading        | ns
FAN4             | no reading        | ns
FAN5             | no reading        | ns
FAN6             | no reading        | ns
FAN7             | 2900 RPM          | ok
FAN8             | 2800 RPM          | ok
FAN9             | no reading        | ns
12V              | 12.13 Volts       | ok
5VCC             | 4.97 Volts        | ok
3.3VCC           | 3.33 Volts        | ok
VBAT             | 3.13 Volts        | ok
Vcpu1            | 1.82 Volts        | ok
Vcpu2            | 1.82 Volts        | ok
VDIMMAB          | 1.19 Volts        | ok
VDIMMCD          | 1.18 Volts        | ok
VDIMMEF          | 1.19 Volts        | ok
VDIMMGH          | 1.19 Volts        | ok
5VSB             | 5.05 Volts        | ok
3.3VSB           | 3.42 Volts        | ok
1.5V PCH         | 1.52 Volts        | ok
1.2V BMC         | 1.21 Volts        | ok
1.05V PCH        | 1.05 Volts        | ok
Chassis Intru    | 0x01              | ok
PS2 Status       | 0x01              | ok

Logging

To retrieve the system event log from the BMC:

$ sudo ipmitool sel list
  23 | 12/06/2024 | 10:06:50 PM EST | Fan #0x41 | Lower Critical going low  | Asserted
  24 | 12/06/2024 | 10:06:50 PM EST | Fan #0x41 | Lower Non-recoverable going low  | Asserted
  25 | 12/06/2024 | 10:06:52 PM EST | Fan #0x42 | Lower Critical going low  | Asserted
  26 | 12/06/2024 | 10:06:52 PM EST | Fan #0x42 | Lower Non-recoverable going low  | Asserted
  27 | 12/06/2024 | 10:06:55 PM EST | Fan #0x47 | Lower Critical going low  | Asserted
  28 | 12/06/2024 | 10:06:55 PM EST | Fan #0x47 | Lower Non-recoverable going low  | Asserted
  29 | 12/06/2024 | 10:06:56 PM EST | Fan #0x48 | Lower Critical going low  | Asserted
  2a | 12/06/2024 | 10:06:56 PM EST | Fan #0x48 | Lower Non-recoverable going low  | Asserted
  2b | 12/06/2024 | 10:07:58 PM EST | Fan #0x48 | Lower Non-recoverable going low  | Deasserted
  2c | 12/06/2024 | 10:07:58 PM EST | Fan #0x48 | Lower Critical going low  | Deasserted
  2d | 12/06/2024 | 10:07:59 PM EST | Fan #0x47 | Lower Non-recoverable going low  | Deasserted
  2e | 12/06/2024 | 10:07:59 PM EST | Fan #0x47 | Lower Critical going low  | Deasserted
  2f | 12/06/2024 | 10:08:01 PM EST | Fan #0x42 | Lower Non-recoverable going low  | Deasserted
  30 | 12/06/2024 | 10:08:01 PM EST | Fan #0x42 | Lower Critical going low  | Deasserted
  31 | 12/06/2024 | 10:08:02 PM EST | Fan #0x41 | Lower Non-recoverable going low  | Deasserted
  32 | 12/06/2024 | 10:08:02 PM EST | Fan #0x41 | Lower Critical going low  | Deasserted
  33 | 12/08/2024 | 09:31:35 PM EST | Unknown #0xff |  | Asserted
  34 | 12/08/2024 | 09:31:41 PM EST | Unknown #0xff |  | Asserted
  35 | 12/08/2024 | 09:31:56 PM EST | Physical Security #0xaa | General Chassis intrusion () | Asserted
  65 | 09/11/2025 | 06:28:51 PM EDT | OS Boot | Installation started () | Asserted
  66 | 09/11/2025 | 06:50:38 PM EDT | OS Boot | Installation completed () | Asserted
  67 | 09/11/2025 | 06:57:23 PM EDT | Unknown #0xff |  | Asserted
  68 | 09/11/2025 | 06:57:38 PM EDT | Physical Security #0xaa | General Chassis intrusion () | Asserted
 532 | 08/14/2023 | 11:25:37 | Power Supply #0x3c | Failure detected | Asserted
 533 | 08/14/2023 | 11:25:39 | Power Supply #0x3c | Power Supply AC lost | Asserted
 534 | 08/14/2023 | 11:25:39 | Power Supply #0x3e | Redundancy Lost | Asserted
 535 | 08/14/2023 | 11:25:41 | Power Supply #0x3e | Redundancy Lost | Deasserted
 536 | 08/14/2023 | 11:25:42 | Power Supply #0x3c | Failure detected | Asserted
 537 | 08/14/2023 | 11:25:44 | Power Supply #0x3c | Power Supply AC lost | Asserted
 538 | 08/14/2023 | 11:25:44 | Power Supply #0x3e | Redundancy Lost | Asserted
 539 | 08/14/2023 | 11:28:06 | Power Supply #0x3e | Redundancy Lost | Deasserted
 547 | 03/16/2025 | 02:18:29 | Drive Slot / Bay #0x44 | Predictive Failure | Asserted
 548 | 03/26/2025 | 14:11:40 | Drive Slot / Bay #0x44 | Drive Fault | Asserted

To see info about the system event log (e.g., capacity):

$ sudo ipmitool sel info
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 104
Free Space       : 8160 bytes
Percent Used     : 16%
Last Add Time    : 09/11/2025 06:57:38 PM EDT
Last Del Time    : Not Available
Overflow         : false
Supported Cmds   : 'Reserve' 'Get Alloc Info'
# of Alloc Units : 512
Alloc Unit Size  : 20
# Free Units     : 408
Largest Free Blk : 408
Max Record Size  : 20

Chassis

$ sudo ipmitool chassis status
System Power         : on
Power Overload       : false
Power Interlock      : inactive
Main Power Fault     : false
Power Control Fault  : false
Power Restore Policy : always-on
Last Power Event     :
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false
$ sudo ipmitool chassis identify
Chassis identify interval: default (15 seconds)

$ sudo ipmitool chassis identify 60
Chassis identify interval: 60 seconds
$ sudo ipmitool fru print
FRU Device Description : Builtin FRU Device (ID 0)
 Chassis Type          : Unknown
 Chassis Serial        : C829UAE38B00096
 Board Mfg Date        : Unspecified
 Board Mfg             : Supermicro
 Board Serial          : OM158S018596
 Board Part Number     : X10DRU-i+
 Product Manufacturer  : Supermicro
 Product Serial        :