ICMD(8)

πŸ’… ICMD(8) β€” ipmiutil_cmd, bestie edition

okay so this is the manual page for ipmiutil_cmd in section 8 of the System Manager's Manual, and it's literally the tool you use to yeet specific IPMI commands at your firmware from the command line. sit down, get comfy, we're doing this together 🫢


✨ NAME ✨

ipmiutil_cmd β€” a tool to send specific IPMI commands via the command line. that's it, that's the whole job. she's simple, she's powerful, she's iconic πŸ’…


🌸 SYNOPSIS 🌸

ipmiutil cmd [-pqsx -NUPREFJTVY] bus rsSa netFn/lun cmd [data bytes]

like. look at her. beautiful. all those flags are optional, the rest is not, and we're gonna go through every single one, no cap πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

so this ipmiutil cmd tool sends specific IPMI commands to the firmware. the commands get composed as hex values right there on the command line β€” you're hand-crafting bytes, main character energy fr fr.

this tool was written so you can do in-band use that matches the DOS CMDTOOL.EXE or IPMITOOL.EXE program, which is distributed with many Intel servers. so like, certain scripts or pre-written commands that got supplied for the DOS tool? you can now use them while the system is running Linux or Windows. glow up πŸ’–

this utility can use either 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 if -N. so many options, she's flexible ✨

⚠️ bestie, listen. this tool should only be used if you are familiar with the IPMI 1.5 specification, or you have specific pre-written commands to send. do not freestyle this. i'm serious. πŸ™ˆ

πŸ‘‘ OPTIONS πŸ‘‘

command line options are described below. buckle up, there's a lot of them and they're all important.

  • -p β€” port to use. defaults to RMCP port 623.
  • -q β€” quiet mode. show only minimal header information. shy girl vibes 🀫
  • -s β€” skips the GetDeviceID command.
  • -x β€” causes extra debug messages to be displayed. chaos mode, love that for us πŸ”₯
  • -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.
  • -U rmt_user β€” remote username for the nodename given. the default is a null username.
  • -P/-R rmt_pswd β€” remote password for the nodename given. the default is a null password.
  • -E β€” use the remote password from environment variable IPMI_PASSWORD.
  • -F drv_t β€” force the driver type to one of the followng: 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. (yes the original says "followng", we're keeping her exactly as she is, character for character πŸ’€)
  • -J β€” use the specified 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.

πŸ“ PARAMETERS πŸ“

the following parameters are used by icmd. each is represented as a two-digit hex byte. the parameters have no default values β€” you gotta supply them all, no shortcuts ✨

  • bus β€” this byte contains the bus number for this command, usually 00.
  • rsSa β€” this is the resource slave address, usually 0x20 for the BMC.
  • netFn/lun β€” this byte combines the net Function and Lun. the 2 low-order bits are the Lun and the 6 high-order bits are the net Function. this representation is consistent with the DOS CMDTOOL/IPMITOOL.
  • cmd β€” this byte contains the IPMI command.
  • [data bytes] β€” this is a sequence of zero to 16 bytes that represent data bytes specific to this command.

🌈 EXAMPLES 🌈

okay this is the part where it clicks, watch πŸ‘€

icmd 00 20 18 01

sends the GetDevice ID command to the BMC. slay.

icmd 00 20 28 43 00 00 ff ff 00 ff

sends a Get SEL entry command for the last entry in the firmware log. ate, no crumbs πŸ’…


πŸ’œ SEE ALSO πŸ’œ

she has friends. a whole squad actually:

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

the whole friend group showed up 🫢


πŸ’€ 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. (capital letters, they mean it 😭)


⭐ AUTHOR ⭐

Andy Cress <arcress at users.sourceforge.net> β€” legend behavior, honestly πŸ‘‘


and that's the whole page bestie!! Version 1.0: 10 Aug 2004 β€” yeah she's an old queen but she still runs the game, periodt πŸ’–βœ¨πŸŽ€πŸ¦‹