{
    "mode": "man",
    "parameter": "ipmi_sim",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/ipmi_sim/1/json",
    "generated": "2026-10-09T17:00:34Z",
    "synopsis": "ipmisim [-c config-file] [-f command-file] [-x command] [-s state-dir] [-d] [-n]",
    "sections": {
        "NAME": {
            "content": "ipmisim - IPMI LAN BMC Simulator\n\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "ipmisim [-c config-file] [-f command-file] [-x command] [-s state-dir] [-d] [-n]\n\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The ipmisim daemon emulates an IPMI BMC simulator that may be accessed using the IPMI 1.5 or\n2.0 LAN protocol, or via various serial protocols.  It is useful stand-along for prototyping,\nit  may  be  used with a virtual machine such as QEMU to provide an IPMI BMC emulator, and it\nmay be used to implement an actual BMC (where it's not such a simulator any more)\n\nipmisim supports the full authentication capabilities of the IPMI LAN protocol.\n\nipmisim supports multiple IP addresses for fault-tolerance.  Note that messages coming in on\nan address are always sent back out on the same address they came in.\n\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-c _",
                    "content": "Set the configuration file to one other than the default of /etc/ipmi/lan.conf  .  See\nipmilan(5) for details.\n",
                    "flag": "-c"
                },
                {
                    "name": "-f _",
                    "content": "Specify  a  command file to execute when ipmisim is starting.  This is generally used\nto set up the IPMI environment.  See ipmisimcmd(5) for details.\n",
                    "flag": "-f"
                },
                {
                    "name": "-x  command",
                    "content": "Execute a single command.\n",
                    "flag": "-x"
                },
                {
                    "name": "-s _",
                    "content": "Specify a state directory for ipmisim to use instead of the default.  The  state  di‐\nrectory  must  exist,  and ipmisim will store information there for when it restarts.\nFor instance, if someone changes user information, then it will store the new user in‐\nformation there and what is in the config file will no longer be used.\n",
                    "flag": "-s"
                },
                {
                    "name": "-d",
                    "content": "syslog.\n",
                    "flag": "-d"
                },
                {
                    "name": "-n",
                    "content": "",
                    "flag": "-n"
                }
            ]
        },
        "CONFIGURATION": {
            "content": "Configuration is accomplished through the file /etc/ipmi/lan.conf.  A file with another  name\nor  path  may be specified using the -c option.  See the ipmilan(5) config file man page for\nmore details.\n\n",
            "subsections": []
        },
        "COMMANDS": {
            "content": "When ipmisim starts up, it has an empty environment with no BMC or  management  controllers.\nYou  have  to execute commands to set things up.  The commands can also be used to set sensor\nstates, inject events, and other things you might want to do when simulating a BMC.  See  the\nipmisimcmd(5) man page for details.\n\n",
            "subsections": []
        },
        "SECURITY": {
            "content": "ipmisim  implements  normal  IPMI security.  The default is no access for anyone, so the de‐\nfault is pretty safe, but be careful what you add, because this is  access  to  control  your\nbox.   straight  and  none authorizations are not recommended, you should probably stick with\nmd2 or md5 if you are not using RMCP+.\n\n",
            "subsections": []
        },
        "PERSISTENCE": {
            "content": "Things that are supposed  to  be  persistent  in  a  BMC  are  kept  in  files,  generall  in\n/var/ipmisim/<name>,  where  <name>  is  the  name of the BMC specified in the configuration\nfile.  The following things are persistent:\n\n\nSDRs   - This is named sdr.<mcnum>.main and is the main SDR repository.\n\nSEL    - This is named sel.<mcnum>.\n\nUsers  - This is named users.mc<mcnum>.\n",
            "subsections": [
                {
                    "name": "LAN parameters",
                    "content": "- This is named lanparm.mc<mcnum>.<channel>.\n"
                },
                {
                    "name": "SOL parameters",
                    "content": "- This is named sol.mc<mcnum>.\n\n\nThe <mcnum> is the hexadecimal number of the MC.\n\n"
                }
            ]
        },
        "Serial Over LAN (SOL)": {
            "content": "ipmisim implements Serial Over LAN for hooking an RMCP+ connection to a standard Unix serial\nport.  This is configured in the ipmilan(5) configuration file.\n\nA SOL interface is done on a per-MC basis.  So if the MC is set to a non-BMC, you can  define\na SOL interface on it and it will work if you reroute the commands to that MC.  It's a little\nweird, but it works.  Only interface 1 is supported at the moment.\n\nA  SOL  interface  can also hold history that is kept even if nothing is connected to the SOL\ninterface from the LAN.  So if you want to see what has happened on the serial port, you  can\nconnect  to  interface 2 and it will dump the history.  The history is optionally persistent,\nif the program terminates normally and is restarted, the history is restored if it is config‐\nured to do so.\n\nA SOL interface can create a FRU on the MC to let you fetch the history via  the  FRU  inter‐\nface.\n\n",
            "subsections": []
        },
        "SIGNALS": {
            "content": "SIGHUP\nipmisim  should handle SIGHUP and reread it's configuration files.  However, it doesn't\nright now.  It might in the future, for now you will have to kill  it  and  restart  it.\nClients should handle reconnecting in this case.  If they don't, they are broken.\n\n",
            "subsections": []
        },
        "ERROR OUTPUT": {
            "content": "At startup, all error output goes to stderr.  After that, all error output goes to syslog.\n\n",
            "subsections": []
        },
        "FILES": {
            "content": "/etc/ipmilan.conf\n\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "ipmilan(5),ipmisimcmd(5),ipmiui(1),openipmish(1)\n\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Corey Minyard <cminyard@mvista.com>\n\nOpenIPMI                                      06/26/12                                   ipmisim(1)",
            "subsections": []
        }
    },
    "summary": "ipmisim - IPMI LAN BMC Simulator",
    "flags": [
        {
            "flag": "-c",
            "long": null,
            "arg": null,
            "description": "Set the configuration file to one other than the default of /etc/ipmi/lan.conf . See ipmilan(5) for details."
        },
        {
            "flag": "-f",
            "long": null,
            "arg": null,
            "description": "Specify a command file to execute when ipmisim is starting. This is generally used to set up the IPMI environment. See ipmisimcmd(5) for details."
        },
        {
            "flag": "-x",
            "long": null,
            "arg": null,
            "description": "Execute a single command."
        },
        {
            "flag": "-s",
            "long": null,
            "arg": null,
            "description": "Specify a state directory for ipmisim to use instead of the default. The state di‐ rectory must exist, and ipmisim will store information there for when it restarts. For instance, if someone changes user information, then it will store the new user in‐ formation there and what is in the config file will no longer be used."
        },
        {
            "flag": "-d",
            "long": null,
            "arg": null,
            "description": "syslog."
        },
        {
            "flag": "-n",
            "long": null,
            "arg": null,
            "description": ""
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "ipmilan",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/ipmilan/5/json"
        },
        {
            "name": "ipmisimcmd",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/ipmisimcmd/5/json"
        },
        {
            "name": "ipmiui",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/ipmiui/1/json"
        },
        {
            "name": "openipmish",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/openipmish/1/json"
        }
    ]
}