ISENSOR(8)

🌸 NAME 🌸

okay so this is ISENSOR, aka ipmiutil_sensor β€” it's the section 8 (System Manager's Manual) page for showing Sensor Data Records. yes bestie, we're in the admin tools section, put your hair up πŸ’…


✨ SYNOPSIS ✨

ipmiutil sensor [-abcdefgjkmpqrstuvwxL -i id -n snum -h tval -l tval
-NUPREFJTVYZ]

that's the whole vibe check right there. short little command, SO many letters 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

ipmiutil sensor is the program that uses IPMI commands to show and decode Sensor Data Records plus the current sensor readings for all the sensors in your system. she's thorough, she's nosy, she reads everything. no cap.

she can talk to your hardware through any of these, whichever's around:

  • the /dev/ipmi0 driver from OpenIPMI
  • the /dev/imb driver from Intel
  • the /dev/ipmikcs driver from valinux
  • direct user-space IOs
  • or the IPMI LAN interface, but only if you pass -N
⚠️ heads up bestie: by default this utility only displays the Sensor Data Records reported by the Baseboard Management Controller. if you wanna see sensors from other controllers, that's what -b and -m are for (they're down below, keep scrolling πŸƒβ€β™€οΈ)

πŸ’– OPTIONS πŸ’–

all the command line options, described with love:

  • -a snum β€” ReArms the sensor number for events. yes the capital A is intentional, she's dramatic like that ✨
  • -b β€” Shows SDRs for Bladed (PICMG or ATCA) systems by traversing the child MCs (same as -e).
  • -c β€” Show sensor list in a simpler/Canonical format without uninterpreted binary values. only the user-friendly interpreted sensor information gets shown. (same as -s).
  • -d <file> β€” Dump the SDRs to a specified binary file. this file can then be used with -j to jumpstart getting the sensor readings πŸ‘‘
  • -e β€” Show Every SDR in a bladed system by traversing the child MCs (same as -b).
  • -f <file> β€” Restore the SDRs from the specified binary File. this is normally only done with the initial factory provisioning, so like… don't just do this for funsies.
  • -g sens_type β€” Shows only those SDRs matching the given sensor type group. the sens_type string can be "fan", "temp", "voltage", or any string or substring matching those in the IPMI 2.0 Table 42-3 for Sensor Types. you can list multiple types separated by a comma (,) but no spaces, okay? she's picky about that.
  • -h tval β€” Highest threshold value to set for the specified sensor. this tval can be in decimal, or of the form 0x1a, to match the raw reading value shown by sensor following the " = ". the value passed gets set as the non-critical threshold value, with the more critical ones set by the utility as incrementally lower. this simplifies the interface and makes sure the threshold values don't get out of order (iconic behavior honestly). this requires specifying the sensor number via -n.
  • -i ID β€” Show or set only the sensor Index corresponding to ID, where ID is the hex ID of the SDR as shown in the sensor output under "_ID_". the ID argument can be one hex number (e.g. 0x0e or 0e), or a range of hex numbers (e.g. 0e-1a or 1a,2a or 0x0e-0x2a). this is useful to repeatedly view just a few sensor readings for changes, or to set just one sensor quickly without reading all of the SDRs. efficiency queen πŸ’…
  • -j file β€” Jump-start by caching the SDRs from a file. this uses an SDR binary file to read the SDRs, so that only the sensor readings need to be read from the firmware. it avoids getting the SDR reservation and reading each SDR, which makes getting the sensor readings more efficient. the SDR binary file can be created using the -d option to dump the SDRs to a file, or -j will try to create the file if it's not there.
  • -k K β€” When looping with -L, wait K seconds between loops. Default is 1 second.
  • -l tval β€” Lowest threshold value to set for the specified sensor. this tval can be in decimal, or of the form 0x1a, to match the raw reading value shown by sensor following the " = ". the value passed gets set as the non-critical threshold value, with the more critical ones set by the utility as incrementally higher. this simplifies the interface and makes sure the threshold values don't get out of order. this requires specifying the sensor number via -n.
  • -m 002000s β€” Show SDRs for a specific MC (e.g. bus 00, sa 20, lun 00). this could be used for PICMG or ATCA blade systems. the trailing character, if present, indicates SMI addressing if 's', or IPMB addressing if 'i' or not present.
  • -n snum β€” Number of the sensor to set. this num can be in decimal, or of the form 0x1a, to match the value shown by sensor following the "snum" tag. this is required if setting hi/lo thresholds via -h/-l. no snum, no thresholds, periodt.
  • -o β€” Output the memory DIMM information from SMBIOS, including size. not available if using IPMI LAN via -N. sample output:
Memory Device (0,0): DIMM_A1 : size=2048MB
Memory Device (0,1): DIMM_A2 : not present
  • -p β€” Persist the threshold being set (as specified via -l or -h). this writes a "sensor -i" script line to the file /usr/share/ipmiutil/thresholds.sh, which can then be executed at each reboot by starting the /etc/init.d/ipmi_port service for the desired runlevels. for Windows, the filename is thresholds.cmd.
  • -q β€” Show threshold values in d:d:d format. thresholds are shown for each sensor in short format with ':' delimiters, which is useful as an example for setting thresholds with '-u'.
  • -r β€” Show Raw SDR bytes also.
  • -s β€” Show sensor list in a simpler/canonical format without uninterpreted binary values. only the user-friendly interpreted sensor information is shown. (same as -c).
  • -t β€” Show any Thresholds for each sensor also, in text format.
  • -u β€” Set unique threshold values. the values are specified in a string of threshold values. it can be in raw hex characters or in float values. all 6 possible thresholds must be specified, but only the ones that are valid for this sensor will be applied. these values are validated for ordering. for example:
-u 6:5:4:60:65:69 (float) or
-u 0x0605043c4145 (raw hex)

would mean 0x06=noncrit_lo, 0x05=crit_lo, 0x04=nonrec_lo, 0x3c=noncrit_hi, 0x41=crit_hi, 0x45=nonrec_hi.

  • -v β€” Show Verbose output, including volatile thresholds, SDR thresholds, max/min, hysteresis, and BMC_TAM decoding. she's giving you everything 🫢
  • -w β€” Wrap the threshold data onto the same line as the sensor. this may be convenient for scripting.
  • -x β€” Causes eXtra debug messages to be displayed.
  • -L n β€” Loop n times every K seconds. default is one loop and K defaults to 1 second. see option -k to change K seconds if desired. this is useful along with -i or -g to read some sensors as they change. using -j with this option makes it run quicker.
  • -N nodename β€” Nodename or IP address of the remote target system. if a nodename is specified, the IPMI LAN interface is used. otherwise the local system management interface is used.
  • -P/-R rmt_pswd β€” Password/Remote password for the nodename given. the default is a null password.
  • -U rmt_user β€” Remote Username for the nodename given. the default is a null username.
  • -E β€” Use the remote password from Environment variable IPMI_PASSWORD.
  • -F drv_t β€” Force the driver type to one of the following: imb, va, open, gnu, landesk, lan, lan2, lan2i, kcs, smb. note that lan2i means lan2 with intelplus. the default is to detect any available driver type and use it.
  • -J β€” Use the specified J LanPlus cipher suite (0 thru 17): 0=none/none/none, 1=sha1/none/none, 2=sha1/sha1/none, 3=sha1/sha1/cbc128, 4=sha1/sha1/xrc4_128, 5=sha1/sha1/xrc4_40, 6=md5/none/none, ... 14=md5/md5/xrc4_40. Default is 3.
  • -T β€” Use a specified IPMI LAN AuThentication Type: 0=None, 1=MD2, 2=MD5, 4=Straight Password, 5=OEM.
  • -V β€” Use a specified IPMI LAN priVilege level. 1=Callback level, 2=User level, 3=Operator level, 4=Administrator level (default), 5=OEM level.
  • -Y β€” Yes, do prompt the user for the IPMI LAN remote password. alternatives for the password are -E or -P.
  • -Z β€” Set the slave address for a local MC. last letter, last option, she's the finale πŸŽ€

🌈 EXAMPLES 🌈

ipmiutil sensor sample output is below. look at her go 😭

ipmiutil sensor sample output is below.
ipmiutil ver 2.21
sensor: version 2.21
-- BMC version 0.17, IPMI version 2.0
_ID_ SDR_Type_xx ET Own Typ S_Num Sens_Description   Hex & Interp
Reading
000b SDR Full 01 01 20 a 01 snum 30 Baseboard Temp   = 2e OK   46.00
degrees C
000e SDR Full 01 01 20 m 04 snum 50 Fan 1A           = 6f OK   7659.00
RPM
0042 SDR Comp 02 6f 20 a 21 snum e0 DIMM 1A          = 00 c0 04 00
Present
004e SDR FRU  11 1b dev: 20 03 80 00 0a 01 Pwr Supply 1 FRU
0050 SDR IPMB 12 1b dev: 20 00 bf 07 01 Basbrd Mgmt Ctlr
0051 SDR OEM  c0 09 Intel: 02 02 00 01 70 71
0065 SDR OEM  c0 11 Intel: SDR Package 17
[...]

πŸ” Output Columns

so like, what does any of that mean?? let me break it down bestie:

  • _ID_: this is an SDR ID or index number, in hex. this may vary from chassis to chassis.
  • SDR_Type_xx: this shows the SDR Type and its hex representation. some SDR types have a custom display. the OEM SDRs only show the OEM vendor by IANA number and then usually the data is listed in hex.
  • ET: for Full or Comp SDRs, this shows the Event Type. for other SDRs, this shows the size of the SDR entry in hex (Sz).
  • Own: this is the hex slave address of the SDR Owner, usually 20 if BMC.
  • a/m: this indicates whether this sensor is either automatically or manually rearmed, respectively.
  • Typ: this is the Sensor Type as defined in Table 42-3 of the IPMI 2.0 spec. (01 = Temperature, 02 = Voltage, 03 = Current, 04 = Fan, etc.)
  • S_Num: this is the sensor number in hex. this remains consistent across baseboards of the same type. the output can be parsed with the "snum" delimiter to extract this value.
  • Sens_Description: this is the text description of this SDR, which is stored within the SDR on the BMC.
  • Hex & Interp Reading: this is the raw hex value returned by GetSensorReading, and its interpreted meaning.

πŸ‘€ SEE ALSO πŸ‘€

the whole friend group, go say hi:

ipmiutil(8) ialarms(8) iconfig(8) icmd(8) idiscover(8) ievents(8) ifru(8) igetevent(8) ihealth(8) ilan(8) ireset(8) isel(8) iserial(8) isol(8) iwdt(8)


🚨 WARNINGS 🚨

See http://ipmiutil.sourceforge.net/ for the latest version of ipmiutil and any bug fix list. go check it, fr fr.


Copyright (C) 2009 Kontron America, Inc.

See the file COPYING in the distribution for more details regarding redistribution.

This utility is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. (all caps because she means it πŸ’€)


🫢 AUTHOR 🫢

Andy Cress <arcress at users.sourceforge.net>


and that's the whole page, bestie! this one is Version 1.6: 09 Nov 2011, from the System Manager's Manual, and she's filed under ISENSOR(8). mwah πŸ’‹