ipmi_sim(1)
π ipmi_sim β the IPMI LAN BMC Simulator, bestie edition π
okay so you found the ipmi_sim(1) page, and honestly? it's giving iconic daemon energy. it lives in the OpenIPMI manual, and it's here to let you pretend to be a BMC without actually having a BMC. let's get into it π«Ά
β¨ NAME β¨
ipmi_sim β IPMI LAN BMC Simulator. that's the whole vibe. a fake BMC. a simulation. a little guy who thinks he's a baseboard management controller. π
πΈ SYNOPSIS πΈ
ipmi_sim [-c config-file] [-f command-file] [-x command] [-s state-dir]
[-d] [-n]
π¦ DESCRIPTION π¦
so the ipmi_sim daemon emulates an IPMI BMC simulator, and you can talk to it over the IPMI 1.5 or 2.0 LAN protocol, or through various serial protocols. versatile queen. π
it's useful standing alone for prototyping (very "just me and my fake BMC against the world"), and you can also pair it up with a virtual machine like QEMU so it acts as an IPMI BMC emulator. and β plot twist β you can even use it to implement an actual BMC, at which point it's not so much a simulator anymore. glow-up arc fr fr. π
ipmi_sim supports the full authentication capabilities of the IPMI LAN protocol. the whole thing. all of it. no cap.
ipmi_sim also supports multiple IP addresses for fault-tolerance. but here's the lil detail you gotta remember: messages coming in on an address are always sent back out on the same address they came in on. always. every time. it's loyal like that. π«Ά
π OPTIONS π
-cconfig-file β sets the configuration file to something other than the default of/etc/ipmi/lan.conf. peek atipmi_lan(5)for the deets. π-fcommand-file β tells it a command file to execute whenipmi_simstarts up. this is generally used to set up the IPMI environment. seeipmi_sim_cmd(5)for details. π-xcommand β executes a single command. one and done. β¨-sstate-dir β specifies a state directory foripmi_simto use instead of the default. the state directory must exist, andipmi_simwill store information there for when it restarts. for instance, if someone changes user information, then it stores the new user information there and what's in the config file will no longer be used. so likeβ¦ the state dir ate and the config file is just sitting there like π-dβ turns on debugging to standard output (if-nis not specified) and the debug output of syslog. debugging bestie mode. π₯-nβ disables console and I/O on standard input and output. quiet mode. shhh. π
π CONFIGURATION π
configuration is accomplished through the file /etc/ipmi/lan.conf. a file with another name or path may be specified using the -c option. see the ipmi_lan(5) config file man page for more details. iykyk. π
π COMMANDS π
when ipmi_sim starts up, it has an empty environment. no BMC, no management controllers. nothing. a blank canvas. a fresh face. π₯Ί
so you have to execute commands to set things up. that's the assignment.
the commands can also be used to set sensor states, inject events, and do other things you might want to do when simulating a BMC. see the ipmi_sim_cmd(5) man page for details. go off. π
π SECURITY π
ipmi_sim implements normal IPMI security. the default is no access for anyone, so the default is pretty safe. bestie is locked down. π
but be careful what you add, because this is access to control your box. like, actual control. of your actual box. π
straight and none authorizations are not recommended β you should probably stick with md2 or md5 if you are not using RMCP+. fr fr, choose wisely. π
β PERSISTENCE β
things that are supposed to be persistent in a BMC are kept in files, generally in /var/ipmi_sim/<name>, where <name> is the name of the BMC specified in the configuration file. the following things are persistent:
- SDRs β this is named
sdr.<mcnum>.mainand is the main SDR repository. π - SEL β this is named
sel.<mcnum>. π - Users β this is named
users.mc<mcnum>. π₯ - LAN parameters β this is named
lanparm.mc<mcnum>.<channel>. π - SOL parameters β this is named
sol.mc<mcnum>. π₯οΈ
the <mcnum> is the hexadecimal number of the MC. hex girlies rise. π’
π§ Serial Over LAN (SOL) π§
ipmi_sim implements Serial Over LAN for hooking an RMCP+ connection to a standard Unix serial port. this is configured in the ipmi_lan(5) configuration file. β¨
a SOL interface is done on a per-MC basis. so if the MC is set to a non-BMC, you can define a SOL interface on it and it will work if you reroute the commands to that MC. it's a little weird, but it works. lowkey relatable. π only interface 1 is supported at the moment.
a SOL interface can also hold history that is kept even if nothing is connected to the SOL interface from the LAN. so if you want to see what has happened on the serial port, you can connect to interface 2 and it will dump the history. iconic. the history is optionally persistent β if the program terminates normally and is restarted, the history is restored if it is configured to do so. π«Ά
a SOL interface can create a FRU on the MC to let you fetch the history via the FRU interface. bonus content. π
π SIGNALS π
SIGHUP
ipmi_sim should handle SIGHUP and reread it's configuration files. however, it doesn't right now. it might in the future, but for now you will have to kill it and restart it. π
clients should handle reconnecting in this case. if they don't, they are broken. no cap, that's just the truth. π
π ERROR OUTPUT π
at startup, all error output goes to stderr. after that, all error output goes to syslog. phase one vs phase two, basically. β¨
π FILES π
/etc/ipmi_lan.conf
πΈ SEE ALSO πΈ
ipmi_lan(5), ipmi_sim_cmd(5), ipmi_ui(1), openipmish(1)
π AUTHOR π
Corey Minyard <cminyard@mvista.com> β the legend, the moment, the icon. π
and that's the whole page bestie, brought to you by OpenIPMI, dated 06/26/12. stay safe, lock down your auth, and go simulate a BMC responsibly. mwah. π β¨π
π¦ where this page comes from
- alpine 3.24: openipmi-doc 2.0.36-r1 Β· LGPL-2.0-or-later and GPL-2.0-or-later or BSD-3-Clause
- arch rolling: openipmi 2.0.37-4 Β· LGPL2.1
- centos-stream 10: OpenIPMI-lanserv 2.0.36-3.el10 Β· LGPL-2.1-or-later AND GPL-2.0-or-later OR BSD-3-Clause
- centos-stream 9: OpenIPMI-lanserv 2.0.36-1.el9 Β· LGPLv2+ and GPLv2+ or BSD
- centos-stream 9: OpenIPMI-lanserv 2.0.36-1.el9 Β· LGPLv2+ and GPLv2+ or BSD
- debian bookworm: openipmi 2.0.33-1+b1 Β· LGPL
- debian trixie: openipmi 2.0.37-1 Β· LGPL-2.0-only
- fedora 43: OpenIPMI-lanserv 2.0.36-3.fc43 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- fedora 43: OpenIPMI-lanserv 2.0.36-3.fc43 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- fedora 44: OpenIPMI-lanserv 2.0.36-7.fc44 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- fedora 44: OpenIPMI-lanserv 2.0.36-7.fc44 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- nixpkgs unstable: OpenIPMI 2.0.37
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- ubuntu jammy: openipmi 2.0.29-0.1ubuntu6 Β· LGPL
- ubuntu noble: openipmi 2.0.33-1.1build3 Β· LGPL
- ubuntu questing: openipmi 2.0.37-1
- ubuntu resolute: openipmi 2.0.37-1build1 Β· LGPL-2.0-only
- ubuntu stonking: openipmi 2.0.37-1ubuntu3 Β· LGPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms