User Tools

Site Tools


os:bsd:ipmitool

Using IPMItool

Intro

ipmitool is a command line program used in unix-like oses to examine the current environmental states (and many other things) on the mainboard, if supported. Note that this is only available on FreeBSD 6.X and, as of this writing, I have only tested on 6.2.

Enabling

To enable IPMI usage, you first need to load the appropriate kernel module.

# kldload ipmi

To make sure it loaded correctly:

# kldstat
Id Refs Address    Size     Name
 1    6 0xc0400000 70794c   kernel
 2    2 0xc0b08000 59f20    acpi.ko
 3    1 0xc989f000 2d000    pf.ko
 4    1 0xce122000 9000     ipmi.ko
 5    1 0xce03b000 2000     smbus.ko

If you wish to make sure it's loaded on boot, add the following line to /boot/loader.conf.

impi_load="YES"

Installing IPMItool

Now, all you need to do is install ipmitool.

# cd /usr/ports/sysutils/ipmitool
# make install clean

Using IPMItool

Below are some basic uses to get you started. man ipmitool has a lot more info, of course.

To see a wide layout of all the available sensor info:

# ipmitool sensor
sys.id           | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
sys.intsw        | 0x0        | discrete   | 0x0000| na        | na        | na        | na        | na        | na
sys.psfail       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
sys.tempfail     | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
sys.fanfail      | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
mb.t_amb         | 29.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 35.000    | 40.000    | 45.000
mb.v_bat         | 3.120      | Volts      | ok    | 2.400     | 2.592     | 2.688     | 3.392     | 3.600     | 3.792
mb.v_+3v3stby    | 3.287      | Volts      | ok    | 2.595     | 2.785     | 2.993     | 3.598     | 3.789     | 3.996
mb.v_+3v3        | 3.304      | Volts      | ok    | 2.595     | 2.785     | 2.993     | 3.598     | 3.789     | 3.996
mb.v_+5v         | 4.992      | Volts      | ok    | 3.484     | 3.978     | 4.498     | 5.486     | 5.980     | 6.500
mb.v_+12v        | 12.222     | Volts      | ok    | 8.946     | 9.954     | 10.962    | 12.978    | 13.986    | 14.994
mb.v_-12v        | -12.277    | Volts      | ok    | -15.051   | -14.029   | -13.007   | -11.036   | -10.014   | -9.065
mb.v_+2v5core    | 2.556      | Volts      | ok    | 1.800     | 1.992     | 2.196     | 2.796     | 2.892     | 3.000
mb.v_+1v8core    | 1.840      | Volts      | ok    | 1.100     | 1.300     | 1.500     | 2.100     | 2.300     | 2.500
mb.v_+1v2core    | 1.220      | Volts      | ok    | 0.600     | 0.800     | 1.000     | 1.500     | 1.700     | 1.900
bp.power         | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
bp.locate        | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
bp.locate.btn    | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
bp.alert         | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
fp.prsnt         | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
fp.t_amb         | 24.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 30.000    | 35.000    | 45.000
fp.usbfail       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
fp.power         | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
fp.locate        | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
fp.locate.btn    | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
fp.alert         | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
fp.ledbd.prsnt   | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
pdb.t_amb        | 23.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 32.000    | 37.000    | 42.000
ps0.prsnt        | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
ps0.pwrok        | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
ps0.vinok        | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
ps1.prsnt        | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
ps1.pwrok        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
ps1.vinok        | na         | discrete   | na    | na        | na        | na        | na        | na        | na
io.t_amb         | 23.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 32.000    | 37.000    | 42.000
io.id0.prsnt     | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
io.id1.prsnt     | 0x0        | discrete   | 0x0200| na        | na        | na        | na        | na        | na
io.hdd0.fail     | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
io.hdd1.fail     | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
io.hdd2.fail     | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
io.hdd3.fail     | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
p0.t_core        | 44.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 60.000    | 65.000    | 75.000
p0.v_vdd         | 1.380      | Volts      | ok    | 0.792     | 0.900     | 0.996     | 1.596     | 1.692     | 1.800
p0.v_vddio       | 2.616      | Volts      | ok    | 1.800     | 1.992     | 2.196     | 2.796     | 2.892     | 3.000
p0.v_vtt         | 1.296      | Volts      | ok    | 0.696     | 0.900     | 1.092     | 1.500     | 1.692     | 1.896
p0.fail          | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
p0.d0.fail       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
p0.d1.fail       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
p0.d2.fail       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
p0.d3.fail       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na
p1.t_core        | 44.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 60.000    | 65.000    | 75.000
p1.v_vdd         | 1.392      | Volts      | ok    | 0.792     | 0.900     | 0.996     | 1.596     | 1.692     | 1.800
p1.v_vddio       | 2.628      | Volts      | ok    | 1.800     | 1.992     | 2.196     | 2.796     | 2.892     | 3.000
p1.v_vtt         | 1.308      | Volts      | ok    | 0.696     | 0.900     | 1.092     | 1.500     | 1.692     | 1.896
p1.fail          | 0x0        | discrete   | 0x0100| na        | na        | na
p1.d0.fail       | 0x0        | discrete   | 0x0100| na        | na        | na
p1.d1.fail       | 0x0        | discrete   | 0x0100| na        | na        | na
p1.d2.fail       | 0x0        | discrete   | 0x0100| na        | na        | na
p1.d3.fail       | 0x0        | discrete   | 0x0100| na        | na        | na
ft0.fm0.fail     | 0x0        | discrete   | 0x0100| na        | na        | na
ft0.fm1.fail     | 0x0        | discrete   | 0x0100| na        | na        | na
ft0.fm2.fail     | 0x0        | discrete   | 0x0100| na        | na        | na
ft1.fm0.fail     | 0x0        | discrete   | 0x0100| na        | na        | na
ft1.fm1.fail     | 0x0        | discrete   | 0x0100| na        | na        | na
ft1.fm2.fail     | 0x0        | discrete   | 0x0100| na        | na        | na
ft0.fm0.f0.speed | 10000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft0.fm1.f0.speed | 10000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft0.fm2.f0.speed | 10000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft1.fm0.f0.speed | 11000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft1.fm1.f0.speed | 11000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft1.fm2.f0.speed | 10000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft0.fm0.f1.speed | 9000.000   | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft0.fm1.f1.speed | 10000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft0.fm2.f1.speed | 10000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft1.fm0.f1.speed | 11000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft1.fm1.f1.speed | 11000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0
ft1.fm2.f1.speed | 11000.000  | RPM        | ok    | 1000.000  | 0.000     | 0.0

To see a smaller, more concise version of the above:

# ipmitool sdr list
sys.id           | 0x02              | ok
sys.intsw        | 0x00              | ok
sys.psfail       | 0x01              | ok
sys.tempfail     | 0x01              | ok
sys.fanfail      | 0x01              | ok
mb.t_amb         | 29 degrees C      | ok
mb.v_bat         | 3.10 Volts        | ok
mb.v_+3v3stby    | 3.29 Volts        | ok
mb.v_+3v3        | 3.30 Volts        | ok
mb.v_+5v         | 4.99 Volts        | ok
mb.v_+12v        | 12.22 Volts       | ok
mb.v_-12v        | -12.28 Volts      | ok
mb.v_+2v5core    | 2.56 Volts        | ok
mb.v_+1v8core    | 1.84 Volts        | ok
mb.v_+1v2core    | 1.22 Volts        | ok
bp.power         | 0x02              | ok
bp.locate        | 0x01              | ok
bp.locate.btn    | 0x01              | ok
bp.alert         | 0x01              | ok
fp.prsnt         | 0x02              | ok
fp.t_amb         | 24 degrees C      | ok
fp.usbfail       | 0x01              | ok
fp.power         | 0x02              | ok
fp.locate        | 0x01              | ok
fp.locate.btn    | 0x01              | ok
fp.alert         | 0x01              | ok
fp.ledbd.prsnt   | 0x02              | ok
pdb.t_amb        | 23 degrees C      | ok
ps0.prsnt        | 0x02              | ok
ps0.pwrok        | 0x02              | ok
ps0.vinok        | 0x02              | ok
ps1.prsnt        | 0x01              | ok
ps1.pwrok        | Not Readable      | ns
ps1.vinok        | Not Readable      | ns
io.t_amb         | 22 degrees C      | ok
io.id0.prsnt     | 0x01              | ok
io.id1.prsnt     | 0x02              | ok
io.hdd0.fail     | 0x01              | ok
io.hdd1.fail     | 0x01              | ok
io.hdd2.fail     | 0x01              | ok
io.hdd3.fail     | 0x01              | ok
p0.t_core        | 42 degrees C      | ok
p0.v_vdd         | 1.39 Volts        | ok
p0.v_vddio       | 2.62 Volts        | ok
p0.v_vtt         | 1.30 Volts        | ok
p0.fail          | 0x01              | ok
p0.d0.fail       | 0x01              | ok
p0.d1.fail       | 0x01              | ok
p0.d2.fail       | 0x01              | ok
p0.d3.fail       | 0x01              | ok
p1.t_core        | 42 degrees C      | ok
p1.v_vdd         | 1.39 Volts        | ok
p1.v_vddio       | 2.63 Volts        | ok
p1.v_vtt         | 1.31 Volts        | ok
p1.fail          | 0x01              | ok
p1.d0.fail       | 0x01              | ok
p1.d1.fail       | 0x01              | ok
p1.d2.fail       | 0x01              | ok
p1.d3.fail       | 0x01              | ok
ft0.fm0.fail     | 0x01              | ok
ft0.fm1.fail     | 0x01              | ok
ft0.fm2.fail     | 0x01              | ok
ft1.fm0.fail     | 0x01              | ok
ft1.fm1.fail     | 0x01              | ok
ft1.fm2.fail     | 0x01              | ok
ft0.fm0.f0.speed | 10000 RPM         | ok
ft0.fm1.f0.speed | 10000 RPM         | ok
ft0.fm2.f0.speed | 10000 RPM         | ok
ft1.fm0.f0.speed | 11000 RPM         | ok
ft1.fm1.f0.speed | 10000 RPM         | ok
ft1.fm2.f0.speed | 10000 RPM         | ok
ft0.fm0.f1.speed | 10000 RPM         | ok
ft0.fm1.f1.speed | 10000 RPM         | ok
ft0.fm2.f1.speed | 10000 RPM         | ok
ft1.fm0.f1.speed | 11000 RPM         | ok
ft1.fm1.f1.speed | 11000 RPM         | ok
ft1.fm2.f1.speed | 11000 RPM         | ok

To “drill down” into one of the above MIBS:

# ipmitool sensor get ft1.fm2.f1.speed
Locating sensor record...
Sensor ID              : ft1.fm2.f1.speed (0x4c)
 Entity ID             : 29.5
 Sensor Type (Analog)  : Fan
 Sensor Reading        : 11000 (+/- 0) RPM
 Status                : ok
 Lower Non-Recoverable : 1000.000
 Lower Critical        : 0.000
 Lower Non-Critical    : 0.000
 Upper Non-Critical    : 0.000
 Upper Critical        : 0.000
 Upper Non-Recoverable : 22000.000
 Assertions Enabled    : lnr- unr+
 Deassertions Enabled  : lnr- unr+

This barely scratches the surface of what can be done with ipmitool. Again, see the man page for more info.

os/bsd/ipmitool.txt · Last modified: 2007/05/25 16:02 by crustymonkey