{
    "content": [
        {
            "type": "text",
            "text": "# freeipmi-faq (info)\n\n## Sections\n\n- **The IPMI specifications define standardized, abstracted interfaces to** (1 subsections)\n- **FreeIPMI is a collection of Intelligent Platform Management IPMI system**\n- **Interface (IPMI v1.5 and v2.0) standards.  FreeIPMI also supports** (1 subsections)\n- **In October 2003, California Digital Corp.  (CDC) was contracted by**\n- **Lawrence Livermore National Laboratory (LLNL) for the assembly of**\n- **Thunder, a 1024 node Itanium2 cluster.  This led to software developers**\n- **Jim Garlick at LLNL contributed 'ipmipower', 'bmc-watchdog', 'ipmiping',** (1 subsections)\n- **FreeIPMI was originally developed on GNU/Linux.  It has been confirmed**\n- **Fedora, Suse, and Debian.  FreeIPMI has been ported and confirmed to**\n- **If it doesn't, it should be easily portable to them.  Please contact the** (1 subsections)\n- **There are multiple implementations, APIs, interfaces, end user** (1 subsections)\n- **In our eyes, there are several reasons why FreeIPMI is particularly** (1 subsections)\n- **Unfortunately, there are no universally defined mechanisms for**\n- **Assuming IPMI is set up correctly for over LAN communication, a fairly** (1 subsections)\n- **Please see the README.build instructions provided with FreeIPMI or on** (1 subsections)\n- **FreeIPMI requires the libgcrypt library to be installed for a variety of**\n- **File: freeipmi-faq.info,  Node: x86-64 Compilation,  Next: Installing FreeIPMI on FreeBSD,  Prev: libgcrypt requirement,  Up: Top** (1 subsections)\n- **By default, FreeIPMI's build autotools (e.g.  configure) should detect**\n- **However, some multi-architecture installs (e.g.  you have 32 bit and 64** (1 subsections)\n- **You can install a binary package of freeipmi or use the port, located in** (1 subsections)\n- **Good question, here are some terms and acronyms with general definition** (1 subsections)\n- **Please see the ipmi-config.conf(5) manpage provided with FreeIPMI for** (1 subsections)\n- **The setup of Serial-over-LAN (SOL) and/or 'Ipmiconsole' is highly** (1 subsections)\n- **FreeIPMI also includes support of a Linux SSIF driver through the SSIF**\n- **Intel DCMI/MEI driver (i.e.  '/dev/dcmi').  If you communicate through**\n- **Some motherboards may require you to determine alternate configurations** (2 subsections)\n- **There are additional details in the Powerman** (1 subsections)\n- **There are additional details in the Conman** (1 subsections)\n- **You can find more details in the conserver.cf** (1 subsections)\n- **Scripts to monitor IPMI via FreeIPMI in Ganglia and Nagios have been** (1 subsections)\n- **Times reported by various FreeIPMI tools (such as 'ipmi-sel') are** (1 subsections)\n- **Internally the IPMI kernel driver chooses to spin while polling for a** (1 subsections)\n- **Due to minor implementation differences and or incorrect IPMI firmware,**\n- **Here are some of the more common inconsistencies that have been seen** (1 subsections)\n- **The IPMI specification is very large.  At last check, the IPMI** (1 subsections)\n- **Most of the FreeIPMI tools and libraries have flags to workaround a** (1 subsections)\n- **In some Linux distributions (atleast with Redhat Enterprise Linux 6.4 /**\n- **FreeIPMI can perform inband communication with the BMC through its own** (1 subsections)\n- **If you are looking for a high level library to do Serial-over-LAN (SOL)** (1 subsections)\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "freeipmi-faq",
        "section": "",
        "mode": "info",
        "summary": null,
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "The IPMI specifications define standardized, abstracted interfaces to",
                "lines": 18,
                "subsections": [
                    {
                        "name": "2 What is FreeIPMI?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "FreeIPMI is a collection of Intelligent Platform Management IPMI system",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "Interface (IPMI v1.5 and v2.0) standards.  FreeIPMI also supports",
                "lines": 5,
                "subsections": [
                    {
                        "name": "3 How did FreeIPMI start?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "In October 2003, California Digital Corp.  (CDC) was contracted by",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "Lawrence Livermore National Laboratory (LLNL) for the assembly of",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "Thunder, a 1024 node Itanium2 cluster.  This led to software developers",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "Jim Garlick at LLNL contributed 'ipmipower', 'bmc-watchdog', 'ipmiping',",
                "lines": 15,
                "subsections": [
                    {
                        "name": "4 What operating systems does FreeIPMI run on?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "FreeIPMI was originally developed on GNU/Linux.  It has been confirmed",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "Fedora, Suse, and Debian.  FreeIPMI has been ported and confirmed to",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "If it doesn't, it should be easily portable to them.  Please contact the",
                "lines": 4,
                "subsections": [
                    {
                        "name": "5 FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "There are multiple implementations, APIs, interfaces, end user",
                "lines": 13,
                "subsections": [
                    {
                        "name": "6 What is special about FreeIPMI?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "In our eyes, there are several reasons why FreeIPMI is particularly",
                "lines": 141,
                "subsections": [
                    {
                        "name": "7 Does my system support IPMI?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Unfortunately, there are no universally defined mechanisms for",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "Assuming IPMI is set up correctly for over LAN communication, a fairly",
                "lines": 40,
                "subsections": [
                    {
                        "name": "8 How do I compile FreeIPMI?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Please see the README.build instructions provided with FreeIPMI or on",
                "lines": 5,
                "subsections": [
                    {
                        "name": "9 libgcrypt requirement",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "FreeIPMI requires the libgcrypt library to be installed for a variety of",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "File: freeipmi-faq.info,  Node: x86-64 Compilation,  Next: Installing FreeIPMI on FreeBSD,  Prev: libgcrypt requirement,  Up: Top",
                "lines": 1,
                "subsections": [
                    {
                        "name": "10 x86-64 Compilation",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "By default, FreeIPMI's build autotools (e.g.  configure) should detect",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "However, some multi-architecture installs (e.g.  you have 32 bit and 64",
                "lines": 10,
                "subsections": [
                    {
                        "name": "11 Installing FreeIPMI on FreeBSD",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "You can install a binary package of freeipmi or use the port, located in",
                "lines": 10,
                "subsections": [
                    {
                        "name": "12 What are some IPMI terminology or acronyms I should be aware of?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Good question, here are some terms and acronyms with general definition",
                "lines": 77,
                "subsections": [
                    {
                        "name": "13 What setup is needed for FreeIPMI to communicate over LAN?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Please see the ipmi-config.conf(5) manpage provided with FreeIPMI for",
                "lines": 5,
                "subsections": [
                    {
                        "name": "14 What setup is needed for Serial over LAN (SOL) or Ipmiconsole?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "The setup of Serial-over-LAN (SOL) and/or 'Ipmiconsole' is highly",
                "lines": 28,
                "subsections": [
                    {
                        "name": "15 Do I need to install or configure a driver to perform IPMI inband?",
                        "lines": 4
                    }
                ]
            },
            {
                "name": "FreeIPMI also includes support of a Linux SSIF driver through the SSIF",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "Intel DCMI/MEI driver (i.e.  '/dev/dcmi').  If you communicate through",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "Some motherboards may require you to determine alternate configurations",
                "lines": 15,
                "subsections": [
                    {
                        "name": "16 SSIF Driver Configuration",
                        "lines": 30
                    },
                    {
                        "name": "17 How do you setup Powerman with ipmipower?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "There are additional details in the Powerman",
                "lines": 67,
                "subsections": [
                    {
                        "name": "18 How do you setup Conman with ipmiconsole or libipmiconsole?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "There are additional details in the Conman",
                "lines": 38,
                "subsections": [
                    {
                        "name": "19 How do you setup Conserver with libipmiconsole?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "You can find more details in the conserver.cf",
                "lines": 23,
                "subsections": [
                    {
                        "name": "20 How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Scripts to monitor IPMI via FreeIPMI in Ganglia and Nagios have been",
                "lines": 6,
                "subsections": [
                    {
                        "name": "21 Why are times reported by FreeIPMI tools wrong?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Times reported by various FreeIPMI tools (such as 'ipmi-sel') are",
                "lines": 14,
                "subsections": [
                    {
                        "name": "22 Why is the IPMI kernel driver faster than the KCS driver?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Internally the IPMI kernel driver chooses to spin while polling for a",
                "lines": 12,
                "subsections": [
                    {
                        "name": "23 Why is the output from FreeIPMI different than another software?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Due to minor implementation differences and or incorrect IPMI firmware,",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "Here are some of the more common inconsistencies that have been seen",
                "lines": 94,
                "subsections": [
                    {
                        "name": "24 Why are there so many IPMI compliance bugs?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "The IPMI specification is very large.  At last check, the IPMI",
                "lines": 15,
                "subsections": [
                    {
                        "name": "25 How do I get around an IPMI compliance bug on my motherboard?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "Most of the FreeIPMI tools and libraries have flags to workaround a",
                "lines": 10,
                "subsections": [
                    {
                        "name": "26 Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "In some Linux distributions (atleast with Redhat Enterprise Linux 6.4 /",
                "lines": 25,
                "subsections": []
            },
            {
                "name": "FreeIPMI can perform inband communication with the BMC through its own",
                "lines": 27,
                "subsections": [
                    {
                        "name": "27 How do I program with the FreeIPMI libraries?",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "If you are looking for a high level library to do Serial-over-LAN (SOL)",
                "lines": 21,
                "subsections": [
                    {
                        "name": "28 Where can I get additional help or support?",
                        "lines": 3
                    }
                ]
            }
        ],
        "sections": {
            "The IPMI specifications define standardized, abstracted interfaces to": {
                "content": "the platform management subsystem.  IPMI includes the definition of\ninterfaces for extending platform management between the board within\nthe main chassis and between multiple chassis.\n\nThe term platform management is used to refer to the monitoring and\ncontrol functions that are built in to the platform hardware and\nprimarily used for the purpose of monitoring the health of the system\nhardware.  This typically includes monitoring elements such as system\ntemperatures, voltages, fans, power supplies, bus errors, system\nphysical security, etc.  It includes automatic and manually driven\nrecovery capabilities such as local or remote system resets and power\non/off operations.  It includes the logging of abnormal or out-of-range\nconditions for later examination and alerting where the platform issues\nthe alert without aid of run-time software.  Lastly it includes\ninventory information that can help identify a failed hardware unit.\n\nFile: freeipmi-faq.info,  Node: What is FreeIPMI?,  Next: How did FreeIPMI start?,  Prev: What is IPMI?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "2 What is FreeIPMI?",
                        "content": ""
                    }
                ]
            },
            "FreeIPMI is a collection of Intelligent Platform Management IPMI system": {
                "content": "software.  It provides in-band and out-of-band software and a\ndevelopment library conforming to the Intelligent Platform Management",
                "subsections": []
            },
            "Interface (IPMI v1.5 and v2.0) standards.  FreeIPMI also supports": {
                "content": "IPMI-related specifications such as the Data Center Management Interface\n(DCMI) and Intel Node Manager.\n\nFile: freeipmi-faq.info,  Node: How did FreeIPMI start?,  Next: What operating systems does FreeIPMI run on?,  Prev: What is FreeIPMI?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "3 How did FreeIPMI start?",
                        "content": ""
                    }
                ]
            },
            "In October 2003, California Digital Corp.  (CDC) was contracted by": {
                "content": "",
                "subsections": []
            },
            "Lawrence Livermore National Laboratory (LLNL) for the assembly of": {
                "content": "",
                "subsections": []
            },
            "Thunder, a 1024 node Itanium2 cluster.  This led to software developers": {
                "content": "from CDC and LLNL merging the IPMI software developed by both\norganizations into FreeIPMI.\n\nAnand Babu, Balamurugan and Ian Zimmerman at CDC contributed the\nin-band KCS driver, 'ipmi-sensors', 'ipmi-sel', 'bmc-info', core\nportions of 'ipmi-config', and portions of libfreeipmi.  Albert Chu and",
                "subsections": []
            },
            "Jim Garlick at LLNL contributed 'ipmipower', 'bmc-watchdog', 'ipmiping',": {
                "content": "'rmcpping', portions of libfreeipmi, and IPMI support in Powerman.  In\nOctober 2004, FreeIPMI 0.1.0 was officially released.\n\nSince the 0.1.0 release, Z Research developers have contributed\n'ipmi-chassis', 'ipmi-raw', 'ipmi-locate', and PEF portions of\n'ipmi-config'.  LLNL has contributed IPMI 2.0 support, hostrange\nsupport, 'ipmiconsole', libipmiconsole, 'ipmidetect', 'bmc-device',\n'ipmi-oem', 'ipmi-dcmi', libipmimonitoring, and the chassis and sensor\nportions of 'ipmi-config'.\n\n(Note: The original FreeIPMI developers from California Digital Corp.\nare now at Zresearch Inc.)\n\nFile: freeipmi-faq.info,  Node: What operating systems does FreeIPMI run on?,  Next: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil,  Prev: How did FreeIPMI start?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "4 What operating systems does FreeIPMI run on?",
                        "content": ""
                    }
                ]
            },
            "FreeIPMI was originally developed on GNU/Linux.  It has been confirmed": {
                "content": "to be built on most major GNU/Linux distributions such as Redhat,",
                "subsections": []
            },
            "Fedora, Suse, and Debian.  FreeIPMI has been ported and confirmed to": {
                "content": "work on atleast FreeBSD, OpenBSD, Solaris, OpenSolaris, and Windows via\nCygwin.  We imagine it would build cleanly on other operating systems.",
                "subsections": []
            },
            "If it doesn't, it should be easily portable to them.  Please contact the": {
                "content": "maintainers on the <freeipmi-devel@gnu.org> mailing lists.\n\nFile: freeipmi-faq.info,  Node: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil,  Next: What is special about FreeIPMI?,  Prev: What operating systems does FreeIPMI run on?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "5 FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil",
                        "content": ""
                    }
                ]
            },
            "There are multiple implementations, APIs, interfaces, end user": {
                "content": "requirements, etc.  that one can choose when developing IPMI drivers,\nlibraries, and tools.  FreeIPMI has taken some different approaches than\nother open-source projects.\n\nThe section below points out a number of the reasons why we feel\nFreeIPMI is particularly special compared to the other projects.\n\nThe Ipmiutil project has a good chart describing many of the\ndifferences between the projects:\n<http://ipmiutil.sourceforge.net/docs/ipmisw-compare.htm>.\n\nFile: freeipmi-faq.info,  Node: What is special about FreeIPMI?,  Next: Does my system support IPMI?,  Prev: FreeIPMI vs OpenIPMI vs Ipmitool vs Ipmiutil,  Up: Top\n",
                "subsections": [
                    {
                        "name": "6 What is special about FreeIPMI?",
                        "content": ""
                    }
                ]
            },
            "In our eyes, there are several reasons why FreeIPMI is particularly": {
                "content": "special.\n\n1. Support for HPC, clusters, and large data centers\n\nA number of features have been added into the tools to support HPC,\nclusters, and/or large data centers.  Much of this original support\nwas added to support the large cluster environments at Lawrence\nLivermore National Laboratory (LLNL).\n\nScalable parallel execution of many FreeIPMI tools ('ipmi-sensors',\n'ipmi-sel', 'bmc-info', etc.)  across a cluster is supported\nthrough hostranged input and output.  For example:\n\nDevice ID             : 34\nDevice Revision       : 1\nDevice SDRs           : unsupported\nFirmware Revision     : 1.0c\nDevice Available      : yes (normal operation)\nIPMI Version          : 2.0\nSensor Device         : supported\nSDR Repository Device : supported\nSEL Device            : supported\nFRU Inventory Device  : supported\nIPMB Event Receiver   : unsupported\nIPMB Event Generator  : unsupported\nBridge                : unsupported\nChassis Device        : supported\nManufacturer ID       : Peppercon AG (10437)\nProduct ID            : 4\nDevice ID             : 34\nDevice Revision       : 1\nDevice SDRs           : unsupported\nFirmware Revision     : 1.17\nDevice Available      : yes (normal operation)\nIPMI Version          : 2.0\nSensor Device         : supported\nSDR Repository Device : supported\nSEL Device            : supported\nFRU Inventory Device  : supported\nIPMB Event Receiver   : unsupported\nIPMB Event Generator  : unsupported\nBridge                : unsupported\nChassis Device        : supported\nManufacturer ID       : Peppercon AG (10437)\nProduct ID            : 4\nAuxiliary Firmware Revision Information : 38420000h\n\nIn the above example, its clear to see that pwopr[2-4] have\ndifferent firmware than pwopr[0-1,5].  More information about\nhostrange support can be found in the document\n'freeipmi-hostrange.txt'\n(<http://www.gnu.org/software/freeipmi/freeipmi-hostrange.txt>).\n\n'Ipmipower' is capable of scaling to large nodes for cluster\nsupport and is supported by Powerman\n(<https://github.com/chaos/powerman>) for scalable power\nmanagement.  At LLNL, in conjunction with Powerman, ipmipower is\nused for power control on clusters ranging from sizes of 4 to 2000.\nIt has been used to determine power status or power control LLNL's\nlargest clusters in under a second.\n\n'libipmiconsole' is currently supported by Conman\n(<https://github.com/dun/conman>) and Conserver\n(<http://www.conserver.com/>) for scalable console management.\n\n'Ipmi-sensors' and libipmimonitoring are capable of interpreting\nsensor readings as well as just reporting them.  It can be used for\nhost monitoring IPMI sensor severity on a cluster.  By mapping\nsensor readings into NOMINAL, WARNING, or CRITICAL states, it makes\nmonitoring sensors easier across large numbers of nodes.  Skummee\n(<http://sourceforge.net/projects/skummee>) currently uses\nlibipmimonitoring to monitoring sensors on LLNL clusters of up to\n2000 nodes in size.  FreeIPMI sensor monitoring plugins for Ganglia\n(<http://ganglia.info/>) and Nagios (<http://www.nagios.org/>) have\nalso been developed and made available for download\n(<http://www.gnu.org/software/freeipmi/download.html>).\n\n'Ipmi-sel' and libipmimonitoring are capable of interpreting system\nevent log (SEL) entries as well as just reporting them.  It can be\nused for host monitoring IPMI event severity on a cluster.  By\nmapping events into NOMINAL, WARNING, or CRITICAL states, it makes\nmonitoring system events easier across large numbers of nodes.\nSkummee (<http://sourceforge.net/projects/skummee>) currently uses\nlibipmimonitoring to monitoring the SEL on LLNL clusters of up to\n2000 nodes in size.\n\nThe 'ipmi-config' configuration file and command-line interface are\nused to easily copy the BMC configuration from one node to every\nother node in a cluster quickly.  It has been used to modify the\nBMC configuration across large LLNL clusters in a few minutes.\nThey also have the capability to verify (via the diff option) that\nthe desired configuration has been properly stored to firmware.\n\n'Ipmidetect' can be used to enhance the efficiency of the\nhostranged input by eliminating those nodes in the cluster that\nhave been temporarily removed for servicing.\n\nFreeIPMI is supported within Slurm for energy consumption\nmonitoring.\n\n2. Additional OEM support\n\nFreeIPMI contains support for a number of OEM extensions and OEM\nsensors and/or events.  'Ipmi-oem' currently supports OEM command\nextensions for motherboards made by Dell, Fujitsu, IBM, Intel,\nInventec, Quanta, Sun Microsystems, Supermicro, and Wistron.\n'Ipmi-sensors' and 'ipmi-sel' support OEM sensors and/or events for\nmotherboards made from Dell, Fujitsu, HP, Intel, Inventec, Quanta,\nSun Microsystems, Supermicro, and Wistron.  (Some of the\nmotherboards may have been rebranded by vendors, see manpages for\nofficial list of confirmed supported motherboards.)\n\n3. Additional flexibility and features\n\nBy implementing various IPMI sub-sections into multiple tools, each\ntool is capable of providing the user with more flexibility and\nultimately more features in addition to those listed above.  It may\nnot be as easy (or architecturally possible) to do in an all-in-one\ntool.\n\n4. Extra IPMI support\n\nIn addition to the features listed above, FreeIPMI also supports\nspecifications related to IPMI.  The Data Center Management\nInterface, or DCMI, is supported via the FreeIPMI tool 'ipmi-dcmi'.\nSome aspects of the Intel Power Node Manager are supported in\n'ipmi-oem'.\n\n5. Easy setup\n\nBy implementing drivers in userspace libraries, there is no need to\nbuild/setup/manage any kernel modules/drivers.\n\n6. Portability\n\nLikewise, by implementing everything in userspace libraries and\ntools, portability to multiple operating systems and architectures\nshould be easier.\n\nFile: freeipmi-faq.info,  Node: Does my system support IPMI?,  Next: How do I compile FreeIPMI?,  Prev: What is special about FreeIPMI?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "7 Does my system support IPMI?",
                        "content": ""
                    }
                ]
            },
            "Unfortunately, there are no universally defined mechanisms for": {
                "content": "determining if a system supports IPMI via Inband communication.",
                "subsections": []
            },
            "Assuming IPMI is set up correctly for over LAN communication, a fairly": {
                "content": "reliable mechanism exists out-of-band.  Here are some suggestions.\n\n1. FreeIPMI's 'ipmi-locate' can be used to determine if IPMI can be\nfound on your system.  Users are cautioned though, the failure to\ndiscover IPMI via 'ipmi-locate' is not sufficient to disprove that\nIPMI exists on your system.  Your system may not publish such\ninformation or may expect clients to communicate at default\nlocations.\n\n2. 'dmidecode' may be similarly used to probe for devices that support\nIPMI on your system.  You may grep for IPMI or specify the IPMI DMI\ntype on the command line.\n\n# > dmidecode --type 38\n# dmidecode 2.10\nSMBIOS 2.5 present.\n\nHandle 0x0049, DMI type 38, 18 bytes\nIPMI Device Information\nInterface Type: KCS (Keyboard Control Style)\nSpecification Version: 2.0\nI2C Slave Address: 0x10\nNV Storage Device: Not Present\nBase Address: 0x0000000000000CA2 (I/O)\nRegister Spacing: Successive Byte Boundaries\n\n3. FreeIPMI's 'ipmi-ping' can be used to see if a machine has an IPMI\nservice at a specific host/IP address.  For more wide scale IPMI\ndiscovery, the 'ipmi-detectd' daemon and 'ipmi-detect' tool can be\nused.\n\nAgain, the failure to find an IPMI supported device is not sufficient\nto show lack of IPMI support.\n\nUltimately, some amount of information from product documents or\ntrial and error may be necessary to determine if IPMI is supported on\nyour system.\n\nFile: freeipmi-faq.info,  Node: How do I compile FreeIPMI?,  Next: libgcrypt requirement,  Prev: Does my system support IPMI?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "8 How do I compile FreeIPMI?",
                        "content": ""
                    }
                ]
            },
            "Please see the README.build instructions provided with FreeIPMI or on": {
                "content": "the FreeIPMI website's documentation\n(<http://www.gnu.org/software/freeipmi/README.build>).\n\nFile: freeipmi-faq.info,  Node: libgcrypt requirement,  Next: x86-64 Compilation,  Prev: How do I compile FreeIPMI?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "9 libgcrypt requirement",
                        "content": ""
                    }
                ]
            },
            "FreeIPMI requires the libgcrypt library to be installed for a variety of": {
                "content": "encryption requirements in IPMI 2.0.  If you are building FreeIPMI and\nreceive a 'libgcrypt required to build libfreeipmi' error, please\ninstall libgcrypt.  For Linux users, this may require the install of the\nlibgcrypt-devel package as well.  For those who do not need IPMI 2.0\nencryption, FreeIPMI may be built without it by specifying\n'--without-encryption' when executing configure.\n",
                "subsections": []
            },
            "File: freeipmi-faq.info,  Node: x86-64 Compilation,  Next: Installing FreeIPMI on FreeBSD,  Prev: libgcrypt requirement,  Up: Top": {
                "content": "",
                "subsections": [
                    {
                        "name": "10 x86-64 Compilation",
                        "content": ""
                    }
                ]
            },
            "By default, FreeIPMI's build autotools (e.g.  configure) should detect": {
                "content": "if you are on a 64 bit system and should build against 64 bit libraries.",
                "subsections": []
            },
            "However, some multi-architecture installs (e.g.  you have 32 bit and 64": {
                "content": "bit libraries installed) may lead to builds and installs of 32 bit\ninstead of 64 bit.  For those noticing this, pass libdir appropriately\nto the configure script to workaround this problem.  (e.g.\n'--libdir=/usr/lib64')\n\nExample:\n# ./configure  --prefix=/usr --libdir=/usr/lib64\n\nFile: freeipmi-faq.info,  Node: Installing FreeIPMI on FreeBSD,  Next: What are some IPMI terminology or acronyms I should be aware of?,  Prev: x86-64 Compilation,  Up: Top\n",
                "subsections": [
                    {
                        "name": "11 Installing FreeIPMI on FreeBSD",
                        "content": ""
                    }
                ]
            },
            "You can install a binary package of freeipmi or use the port, located in": {
                "content": "ports/sysutils/freeipmi, to build it from the source.  See ports(7) and\n'Packages and Ports' section\n(<http://www.freebsd.org/doc/enUS.ISO8859-1/books/handbook/ports.html>)\nin The FreeBSD Handbook.\n\nPlease contact port maintainer (MAINTAINER line in the port's\nMakefile), if you have problems building from the port.\n\nFile: freeipmi-faq.info,  Node: What are some IPMI terminology or acronyms I should be aware of?,  Next: What setup is needed for FreeIPMI to communicate over LAN?,  Prev: Installing FreeIPMI on FreeBSD,  Up: Top\n",
                "subsections": [
                    {
                        "name": "12 What are some IPMI terminology or acronyms I should be aware of?",
                        "content": ""
                    }
                ]
            },
            "Good question, here are some terms and acronyms with general definition": {
                "content": "you might want to know.\n\n*BMC*\n\nThe *Baseboard Management Controller* is the management chip on the\nsystem that is responsible for IPMI.  It is common to refer to\nconfiguring the \"BMC\" as synonymous for configuring IPMI.\n\n*inband*\n\n*inband* IPMI communication refers to communication on a system\nlocally (i.e.  not over a network).\n\n*outofband*\n\n*outofband* and *IPMI over LAN* refer to IPMI communication over a\nnetwork, typically ethernet.\n\n*SDR*\n\nThe *Sensor Data Repository* is a database of system information\nthat is needed by many other IPMI functions.  It is commonly read\nbefore some IPMI action can be taken.  For example, it contains a\nlist of all sensors on a system, so it must be downloaded before\nsensors on a system can be read.  In FreeIPMI, the SDR is cached in\na common location and can be used by a number of tools, such as\n'ipmi-sensors', 'ipmi-sel', and 'ipmi-fru'.\n\n*SEL*\n\nThe *System Event Log* is a log of events stored on the system for\nlater diagnostics.  In FreeIPMI, 'ipmi-sel' can be used to read the\nSEL.\n\n*FRU*\n\nThe *Field Replaceable Unit* is a general computing term refering\nto a replaceable unit of electronics.  In IPMI it is common to\nrefer to the \"FRU\" as the database of all FRU components on a\nsystem.  In FreeIPMI, 'ipmi-fru' can be used to read the FRU\ncomponents on a system.\n\n*PEF*\n\n*Platform Event Filtering* refers to the rules that determine when\nPETs are generated and where they are sent.  In FreeIPMI, PEF can\nbe configured via 'ipmi-config'.\n\n*PET*\n\n*Platform Event Trap* refers to a trap that can be sent by a system\nto an SNMP agent to indicate an event has occurred on the system.\nIn FreeIPMI, a PET trap can be interpreted via 'ipmi-pet'.\n\n*DCMI*\n\nThe *Data Center Management Interface* is a management interface\ndefined by a group of vendors that use IPMI as the backend for\ntheir system management definition.  In FreeIPMI, 'ipmi-dcmi' can\nbe used to read/configuring DCMI.\n\n*SOL*\n\n*Serial over LAN* refers to the forwarding of serial system traffic\nover a network, typically an ethernet network.  It is typically\nused to access a remote system console.  In FreeIPMI, ipmiconsole\nis used to access a remote console via SOL.\n\n*RMCP*\n\nThe *Remote Management Control Protocol* protocol is another remote\nmanagement protocol which IPMI is defined within for outofband\ncommunication.  For most IPMI users, you will never need to know\nabout RMCP.\n\nFile: freeipmi-faq.info,  Node: What setup is needed for FreeIPMI to communicate over LAN?,  Next: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?,  Prev: What are some IPMI terminology or acronyms I should be aware of?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "13 What setup is needed for FreeIPMI to communicate over LAN?",
                        "content": ""
                    }
                ]
            },
            "Please see the ipmi-config.conf(5) manpage provided with FreeIPMI for": {
                "content": "details, or you can read it on the FreeIPMI website's documentation\n(<http://www.gnu.org/software/freeipmi/manpages/man5/ipmi-config.conf.5.html>).\n\nFile: freeipmi-faq.info,  Node: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?,  Next: Do I need to install or configure a driver to perform IPMI inband?,  Prev: What setup is needed for FreeIPMI to communicate over LAN?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "14 What setup is needed for Serial over LAN (SOL) or Ipmiconsole?",
                        "content": ""
                    }
                ]
            },
            "The setup of Serial-over-LAN (SOL) and/or 'Ipmiconsole' is highly": {
                "content": "dependent on your system.  However, most motherboardss require the\nfollowing:\n\n1. Adjust the BIOS COM port for serial redirection over SOL instead of\nthe normal serial port and set the appropriate baud rate.  If you\ndo not know which port is the SOL port, you may need to play around\nand guess.  It is likely a non-default setting, since many\nmanufacturers may still assume the default redirection is out of\nthe normal serial port.  If you do not have a serial port on your\nmotherboard, this part can probably be skipped.\n\n2. Configure IPMI on the motherboard to use SOL.  Many motherboards\nmay have this enabled by default, however you may wish to verify\nwith FreeIPMI's 'ipmi-config'.  More information can be found in\nthe ipmi-config.conf(5) manpage on the settings.  However, the key\nsettings are to enable SOL on the system, enable SOL for individual\nusers, and select the appropriate baud.  On many motherboards, the\nselected baud must match what is configured in the BIOS.\n\n3. Adjust your operating systems serial console settings to use the\nappropriate COM port.  For Linux, the following guide\n(<http://www.vanemery.com/Linux/Serial/serial-console.html>)\nprovides a pretty good overview of setting of a serial console on\nLinux.  The only difference for setting up a serial console with\n'Ipmiconsole' or SOL, is the ttySX terminal may need to be changed.\n\nFile: freeipmi-faq.info,  Node: Do I need to install or configure a driver to perform IPMI inband?,  Next: SSIF Driver Configuration,  Prev: What setup is needed for Serial over LAN (SOL) or Ipmiconsole?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "15 Do I need to install or configure a driver to perform IPMI inband?",
                        "content": "For most people the answer is no.\n\nFreeIPMI includes a userspace driver that works on most motherboards\nwithout any driver installation, loading, or configuration required."
                    }
                ]
            },
            "FreeIPMI also includes support of a Linux SSIF driver through the SSIF": {
                "content": "device (i.e.  '/dev/i2c-0'), the OpenIPMI Linux kernel driver (i.e.\n'/dev/ipmi0'), the Sun/Solaris BMC driver (i.e.  '/dev/bmc'), and the",
                "subsections": []
            },
            "Intel DCMI/MEI driver (i.e.  '/dev/dcmi').  If you communicate through": {
                "content": "one of these mechanisms, the appropriate drivers for them should be\nloaded.  Most systems should automatically load the appropriate drivers\nyou need.\n\nUnder most scenarios, the FreeIPMI tools should automatically\ndiscover which in-band interface to use and the proper settings to use.",
                "subsections": []
            },
            "Some motherboards may require you to determine alternate configurations": {
                "content": "for addresses, paths, etc.  on your own and pass them as command line\noptions to the tools.\n\nEvery system is different and your situation may differ.  Please see\nyour manufacturer and operating system instructions.\n\nSpecial note: At the time of this writing the Intel DCMI/MEI Linux\ndevice drivers are not distributed widely.  Please work with your vendor\nto obtain the Intel MEI and DCMI device drivers.\n\nThere are some additional Linux OpenIPMI kernel driver notes here:\n<http://www.gnu.org/software/freeipmi/README.openipmi>.\n\nFile: freeipmi-faq.info,  Node: SSIF Driver Configuration,  Next: How do you setup Powerman with ipmipower?,  Prev: Do I need to install or configure a driver to perform IPMI inband?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "16 SSIF Driver Configuration",
                        "content": "FreeIPMI's SSIF driver works on top of kernel'2 i2c device interface.\n\nUnder GNU/Linux load these kernel modules: i2c-dev, i2c-i801,\ni2c-core before using FreeIPMI.\n\nTo identify SSIF device address:\n\nExample:\n$> lspci  (in the output look for this entry)\n00:1f.3 SMBus: Intel Corp. 6300ESB SMBus Controller (rev 01)\nSubsystem: Intel Corp.: Unknown device 342f\nFlags: medium devsel,  IRQ 17\n$> cat /proc/bus/i2c\nMake sure the \"0400\" above matches with the \"0400\" address under\nproc.  Also make sure \"i2c-0\" is not different. If it appears\ndifferent then grep for \"i2c-0\" in this code \"ipmitool.c\" and\nchange. \"i2c-X\" is the label assigned to each slave device attached on\nthe i2c bus.\n\nBMC address Locator:\nRefer to the SM BIOS IPMI Device Information Record\nType 38,  record 06h and 08h. Use the value of record\n06h as the IPMBAddress and load the SMBus controller\ndriver at the address value read from record 08h.\n\nUsual values for record 06h -> 0x42\nUsual values for record 08h -> 0x400\n\nFile: freeipmi-faq.info,  Node: How do you setup Powerman with ipmipower?,  Next: How do you setup Conman with ipmiconsole or libipmiconsole?,  Prev: SSIF Driver Configuration,  Up: Top\n"
                    },
                    {
                        "name": "17 How do you setup Powerman with ipmipower?",
                        "content": ""
                    }
                ]
            },
            "There are additional details in the Powerman": {
                "content": "(<https://github.com/chaos/powerman>) documentation, however here are\nthe basics.  In the powerman.conf file, you want to include the\n'ipmipower.dev' device file, setup an ipmipower device in co-process\nmode, then configure hosts to use that device.\n\ninclude \"/etc/powerman/ipmipower.dev\"\n\ndevice \"ipmi0\" \"ipmipower\" \"/usr/sbin/ipmipower -h mynodes[0-10] |&\"\n\nnode \"mynodes[0-10]\"  \"ipmi0\" \"mynodes[0-10]\"\n\nYou may wish to add some additional ipmipower configuration on the\ndevice line:\n\ndevice \"ipmi0\" \"ipmipower\" \"/usr/sbin/ipmipower --wait-until-on --wait-until-off -h mynodes[0-10] -u username -p password |&\"\n\nalthough you will probably want to do some of this configuration\n(especially the username and password) in 'freeipmi.conf'.\n\nIf you use an alternate set of hostnames for IPMI from the primary\nhostname, that can configured like this:\n\ndevice \"ipmi0\" \"ipmipower\" \"/usr/sbin/ipmipower -h altname[0-10] |&\"\n\nnode \"primaryname[0-10]\"  \"ipmi0\" \"altname[0-10]\"\n\nConfiguration can be trickier if you want to configure Powerman to\nuse ipmipower with an OEM extension specified through\n'--oem-power-type'.  Many OEM extensions in ipmipower must include\nadditional arguments, which can be passed in via the node argument.  In\naddition, while 'ipmipower' can take a host range as an additional\nargument, Powerman may not.\n\nFor example, the following would be suitable to configure OEM\nextension support the Dell Poweredge C410x.  A specific node identifier\nis used to map to a specific node and additional argument (i.e.\nmynodes0-1 maps to mynodes0+1).\n\ninclude \"/etc/powerman/ipmipower.dev\"\n\ndevice \"ipmi0\" \"ipmipower\" \"/usr/sbin/ipmipower -h mynodes[0-10]+[1-16] --oem-power-type=c410x -l admin |&\"\n\nnode \"mynodes[0-10]-1\" \"ipmi0\" \"mynodes[0-10]+1\"\nnode \"mynodes[0-10]-2\" \"ipmi0\" \"mynodes[0-10]+2\"\nnode \"mynodes[0-10]-3\" \"ipmi0\" \"mynodes[0-10]+3\"\nnode \"mynodes[0-10]-4\" \"ipmi0\" \"mynodes[0-10]+4\"\nnode \"mynodes[0-10]-5\" \"ipmi0\" \"mynodes[0-10]+5\"\nnode \"mynodes[0-10]-6\" \"ipmi0\" \"mynodes[0-10]+6\"\nnode \"mynodes[0-10]-7\" \"ipmi0\" \"mynodes[0-10]+7\"\nnode \"mynodes[0-10]-8\" \"ipmi0\" \"mynodes[0-10]+8\"\nnode \"mynodes[0-10]-9\" \"ipmi0\" \"mynodes[0-10]+9\"\nnode \"mynodes[0-10]-10\" \"ipmi0\" \"mynodes[0-10]+10\"\nnode \"mynodes[0-10]-11\" \"ipmi0\" \"mynodes[0-10]+11\"\nnode \"mynodes[0-10]-12\" \"ipmi0\" \"mynodes[0-10]+12\"\nnode \"mynodes[0-10]-13\" \"ipmi0\" \"mynodes[0-10]+13\"\nnode \"mynodes[0-10]-14\" \"ipmi0\" \"mynodes[0-10]+14\"\nnode \"mynodes[0-10]-15\" \"ipmi0\" \"mynodes[0-10]+15\"\nnode \"mynodes[0-10]-16\" \"ipmi0\" \"mynodes[0-10]+16\"\n\nAs noted in the manpage, the Dell Poweredge C410x appears to have\ndifficulty handling new slot power control requests until prior ones\nhave completed.  Users may wish to configure 'ipmipower' with\n'--wait-until-on', '--wait-until-off', and consider using the\n'ipmipower-serial.dev' device file instead of 'ipmipower.dev'.\n\nFile: freeipmi-faq.info,  Node: How do you setup Conman with ipmiconsole or libipmiconsole?,  Next: How do you setup Conserver with libipmiconsole?,  Prev: How do you setup Powerman with ipmipower?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "18 How do you setup Conman with ipmiconsole or libipmiconsole?",
                        "content": ""
                    }
                ]
            },
            "There are additional details in the Conman": {
                "content": "(<https://github.com/dun/conman>) documentation and manpages, however\nhere are some basics.\n\nTo configure Conman to connect via the ipmiconsole tool, Conman comes\nwith an expect script named ipmiconsole.exp, typically installed into\n'/usr/lib/conman/exec/ipmiconsole.exp'.  Consoles can be setup by adding\nlines to 'conman.conf' like:\n\nCONSOLE name=\"myserver\"   dev=\"/usr/lib/conman/exec/ipmiconsole.exp myserver myusername mypassword\"\n\nOne of the useful aspects of using the ipmiconsole.exp script is that\nthe same configuration options you may have already configured into\n'freeipmi.conf', may be loaded automatically when ipmiconsole is\nexecuted via this expect script.\n\nHowever, as can be expected, scalability may be a problem as you must\nlaunch a process for every node in your cluster.\n\nConman is also capable of connecting to servers natively through the\nlibipmiconsole library, so that no additional processes are launched.\nThey can be configured as follows:\n\nCONSOLE name=\"myserver\" IPMIOPTS=\"U:myusername,P:mypassword\" dev=\"ipmi:myserver\"\n\non some older versions of Conman, you would instead use\n\nCONSOLE name=\"myserver\" IPMIOPTS=\"myusername,mypassword\" dev=\"ipmi:myserver\"\n\nPlease see the Conman documentation for current version options and\nadditional configuration options available.  Alternate defaults for\nlibipmiconsole can also be set via the 'libipmiconsole.conf' file.\n\nOne of the additional advantages of configuring Conman to use the\nlibipmiconsole library natively is that Conman is able to detect and\nmanage additional IPMI error cases.\n\nFile: freeipmi-faq.info,  Node: How do you setup Conserver with libipmiconsole?,  Next: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?,  Prev: How do you setup Conman with ipmiconsole or libipmiconsole?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "19 How do you setup Conserver with libipmiconsole?",
                        "content": ""
                    }
                ]
            },
            "You can find more details in the conserver.cf": {
                "content": "(<https://www.conserver.com/docs/conserver.cf.man.html>) manpage.\n\nHere is an example configuration entry from the conserver.cf file\nthat should illustrate the basics:\n\nbreak 3 { string '\"\\d\\z\"'; delay 250; }\n\ndefault ipmisol {\nbreak 3;\nmotd \"Generic IPMI SOL. Use \\\"Ctrl+E c ?\\\" for help, \\\"Ctrl+E c l 0 <key>\\\" for SysRq, \\\"Return [ ?\\\" for ipmi sol help\";\nusername myusername;\ntype ipmi;\n}\n\nconsole node42 {\ninclude ipmisol;\nmaster conserver.example.com;\npassword mypassword;\nhost node42.bmc.example.com;\n}\n\nFile: freeipmi-faq.info,  Node: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?,  Next: Why are times reported by FreeIPMI tools wrong?,  Prev: How do you setup Conman with ipmiconsole or libipmiconsole?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "20 How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?",
                        "content": ""
                    }
                ]
            },
            "Scripts to monitor IPMI via FreeIPMI in Ganglia and Nagios have been": {
                "content": "developed and are downloadable on the FreeIPMI homepage\n(<http://www.gnu.org/software/freeipmi/download.html>).  Instructions\nfor setup can be found at the top of the scripts.\n\nFile: freeipmi-faq.info,  Node: Why are times reported by FreeIPMI tools wrong?,  Next: Why is the IPMI kernel driver faster than the KCS driver?,  Prev: How do you setup Ganglia or Nagios to monitor IPMI sensors via FreeIPMI?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "21 Why are times reported by FreeIPMI tools wrong?",
                        "content": ""
                    }
                ]
            },
            "Times reported by various FreeIPMI tools (such as 'ipmi-sel') are": {
                "content": "reported under the assumption that timestamps are written in localtime.\nThis is by definition in the IPMI specification.\n\nWhether or not a system truly stored the timestamps in localtime\nvaries on many factors, such as the vendor, BIOS, and operating system.\n\nIf the times reported by the tool are off, there is a strong\nlikelihood the time may be stored in GMT/UTC and needs to be converted\ninto localtime.  In FreeIPMI tools that have time outputs, the\n'--utc-to-localtime' option can be specified or the 'utc-to-localtime'\noption can be specified in 'freeipmi.conf'.\n\nFile: freeipmi-faq.info,  Node: Why is the IPMI kernel driver faster than the KCS driver?,  Next: Why is the output from FreeIPMI different than another software?,  Prev: Why are times reported by FreeIPMI tools wrong?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "22 Why is the IPMI kernel driver faster than the KCS driver?",
                        "content": ""
                    }
                ]
            },
            "Internally the IPMI kernel driver chooses to spin while polling for a": {
                "content": "response from the base management controller (BMC) while the KCS driver\nelects to sleep between poll attempts.  An operating system's scheduler\ngranularity may be larger than the time it takes to perform a IPMI\ntransaction, thus the wall clock time of the KCS driver is far worse\nthan the IPMI kernel driver.  FreeIPMI's KCS driver implements the sleep\nbetween poll attempts because it is believed to provide better overall\nsystem use.  To force the KCS driver to have similar wall clock response\ntime to the IPMI kernel driver, users can specify the 'spinpoll'\nworkaround.\n\nFile: freeipmi-faq.info,  Node: Why is the output from FreeIPMI different than another software?,  Next: Why are there so many IPMI compliance bugs?,  Prev: Why is the IPMI kernel driver faster than the KCS driver?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "23 Why is the output from FreeIPMI different than another software?",
                        "content": ""
                    }
                ]
            },
            "Due to minor implementation differences and or incorrect IPMI firmware,": {
                "content": "the resulting output from FreeIPMI tools can differ from other software.",
                "subsections": []
            },
            "Here are some of the more common inconsistencies that have been seen": {
                "content": "before.  More inconsistencies can be seen/fixed by specifying a number\nof the workarounds available to many of the FreeIPMI tools.\n\n* In FreeIPMI's 'ipmi-sel' and 'ipmi-sensors' there are options for\nFreeIPMI to interpret the SEL or sensor readings and give them a\nNOMINAL, WARNING, or CRITICAL status.  Other IPMI software may have\ndifferent interpretations for their sensors and/or SEL readings\nthat map to NOMINAL, WARNING, or CRITICAL differently.  These\ninterpretations are configurable in FreeIPMI via the\n'freeipmiinterpretsel.conf' and 'freeipmiinterpretsensor.conf'\nconfiguration files.\n\n* In some IPMI software, sensor and/or FRU records are bridged by\ndefault and read off satellite controllers.  In FreeIPMI they are\nnot due to the discovery that many vendors do not implement their\nbridging correctly or publish invalid slave addresses in the SDR.\nIn order to bridge sensors the '--bridge-sensors' option must be\nspecified in 'ipmi-sensors'.  In order to bridge FRU records, the\n'--bridge-fru' must be specified in 'ipmi-fru'.\n\n* In some IPMI software, shared sensors may be read by default.  In\nFreeIPMI's 'ipmi-sensors', they are not read by default due to\ndiscovery that too many systems implement this incorrectly.  Shared\nsensors can be read by specifying the '--shared-sensors' option.\n\n* In vendor provided IPMI software, OEM specific sensors, SEL\nrecords, or FRU records may be output correctly because the vendor\nis aware of how to properly read/output OEM specific information.\nFreeIPMI may not be able to do this by default.  For the\nmotherboards in which OEM information is known, it can be output\nusing the '--interpret-oem-data'.  This option is available in\n'ipmi-sensors', 'ipmi-sel', and 'ipmi-fru'.\n\n* In some vendor IPMI software, sensor \"names\" are constructured\nthrough a combination of the multiple data in the SDR, rather than\njust the device name listed in the SDR. This can lead to different\nsensor names listed in tools like 'ipmi-sensors' and 'ipmi-sel'.\nIn both tools, this can be alleviated through the use of the\n'--entity-sensor-names' option.\n\n* On several HP systems (observed on HP Proliant DL380 G7 and HP\nProLiant ML310 G5), the SDR lists sensors using inconsistent\ninformation.  Some analog sensors are listed as discrete sensors or\nvice versa.  This inconsistency, and implementation differences\nbetween 'ipmi-sensors' and other IPMI software lead to different\noutputs.  For example, this is one such sensor that was seen in\n'ipmi-sensors':\n\n2  | Power Supply 1  | Power Supply | N/A        | N/A   | 'Presence detected'\n\nbut this same sensor was see in 'ipmitool' as\n\nPower Supply 1   | 120 Watts         | nc\n\nIn this example, 'ipmi-sensors' did not output a Watts reading but\noutputs the proper \"Presence Detected\" state.  'Ipmitool' outputs\nthe correct watts reading, but outputs the invalid non-critical\n\"nc\" state.\n\nIn FreeIPMI, this problem can be worked around using the\n'discretereading' workaround flag.\n\n* In FreeIPMI's 'ipmi-fru', all multirecord FRU entries are output by\ndefault.  In 'ipmitool' and perhaps other software, they are not.\nThe resulting output from 'ipmi-fru' is much larger than other\nsoftware.  To get similar output in 'ipmitool', the '-v' option\nmust be set.\n\n* In FreeIPMI's 'ipmi-fru', FRU record checksums are automatically\nchecked and errors are output if a FRU record cannot assumed to be\nvalid due to a failed checksum check.  Other IPMI software has been\nshown to ignore the checksums and assume records are valid.  If\nyour system has invalid checksummed FRU entries, the 'skipchecks'\nworkaround can be used to get around them.\n\n* In FreeIPMI's 'ipmi-sensors', sensors may output an \"OK\" if no\nevents are set.  In other IPMI software (such as 'ipmitool' and the\ncommand \"sdr list\"), \"OK\" means that a sensor was simply read\ncorrectly.  The \"OK\" may not mean that the device behind the sensor\nis actually functioning properly.  For example, here is an output\nfrom an 'ipmitool' sdr list entry.\n\nPSU 1 Status     | 0x0b              | ok\n\nThe 0x0b indicates that the power supply has errors (you normally\nwant to see 0x00 or 0x01), however the sensor outputs \"ok\" because\nthe sensor reading was read correctly.  When using FreeIPMI's\n'ipmi-sensors', the 0x0b is properly converted into the event\nmessages indicating an error.\n\n54  | PSU 1 Status | Power Supply | N/A | N/A | 'Presence detected' 'Power Supply Failure detected' 'Power Supply input lost (AC/DC)'\n\nFile: freeipmi-faq.info,  Node: Why are there so many IPMI compliance bugs?,  Next: How do I get around an IPMI compliance bug on my motherboard?,  Prev: Why is the output from FreeIPMI different than another software?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "24 Why are there so many IPMI compliance bugs?",
                        "content": ""
                    }
                ]
            },
            "The IPMI specification is very large.  At last check, the IPMI": {
                "content": "specification was 601 pages.  This does not count the various side\nspecifications related to IPMI, including DCMI, PET, FRU, and the\nvarious OEM extension specifications (e.g.  Intel Node Manager).  Many\nsections of text can be ambiguous.  Many components of IPMI are optional\nand aren't required to be implemented.  There is some leeway for\nimplementation interpretation as well.  Ultimately, bugs will happen.\nIn all fairness, FreeIPMI has had bugs too.\n\nA number of the IPMI compliance bugs found by FreeIPMI are documented\nin the freeipmi-bugs-issues-and-workarounds.txt document (you can find\nit on the website here:\n<http://www.gnu.org/software/freeipmi/freeipmi-bugs-issues-and-workarounds.txt>).\n\nFile: freeipmi-faq.info,  Node: How do I get around an IPMI compliance bug on my motherboard?,  Next: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?,  Prev: Why are there so many IPMI compliance bugs?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "25 How do I get around an IPMI compliance bug on my motherboard?",
                        "content": ""
                    }
                ]
            },
            "Most of the FreeIPMI tools and libraries have flags to workaround a": {
                "content": "large number of IPMI compliance bugs found on motherboards.  Please see\nthe appropriate tool manpages or library header files for details on the\nworkarounds available and for what motherboards.\n\nIf you believe there is a compliance issue on your motherboard that\nhas not yet been implemented, please contact the maintainers on the\n<freeipmi-devel@gnu.org> mailing list.\n\nFile: freeipmi-faq.info,  Node: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?,  Next: How do I program with the FreeIPMI libraries?,  Prev: How do I get around an IPMI compliance bug on my motherboard?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "26 Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?",
                        "content": ""
                    }
                ]
            },
            "In some Linux distributions (atleast with Redhat Enterprise Linux 6.4 /": {
                "content": "RHEL 6.4 and CentOS 6.4), the distributions began compiling the IPMI\nkernel driver (i.e.  ipmimsghandler and ipmisi modules) into the\nkernel instead of as loadable modules.  This was apparently due to a\nneed for the IPMI kernel drivers to work with ACPI.\n\nDue to compiling the IPMI kernel driver into the kernel, there is the\npotential for inband IPMI communication to occur in the kernel w/o any\nknowledge of it from outside software in userspace.  Normally, the IPMI\nservice (i.e.  /etc/init.d/ipmi) is started to create a device file\n(i.e.  /dev/ipmi0) so that userspace software will know to communicate\nthrough this device.  However, some of these distros disable the ipmi\nservice so that a device file is never created.\n\nBecause of this, multiple IPMI software can communicate inband to the\nBMC simultaneously, subsequently racing with each other.  Ultimately,\nthis can lead to communication problems.  In FreeIPMI, this is most\ncommonly seen through 'internal IPMI error' or 'driver busy' messages.\n\nThere are several possible solutions for this in FreeIPMI. If you\nstart the ipmi service (i.e.  /etc/init.d/ipmi start), a device file\nwill be created which FreeIPMI will recognize.  FreeIPMI will\nsubsequently communicate via inband IPMI through this device file, thus\neliminating racing with the IPMI occurring in the kernel.\n\nThe other option is to disable the IPMI kernel thread so that",
                "subsections": []
            },
            "FreeIPMI can perform inband communication with the BMC through its own": {
                "content": "mechanisms.  The following is from the Linux kernel documentation.\n\nWhen compiled into the kernel, the parameters can be specified on the\nkernel command line as:\n\nipmisi.type=<type1>,<type2>...\nipmisi.ports=<port1>,<port2>... ipmisi.addrs=<addr1>,<addr2>...\nipmisi.irqs=<irq1>,<irq2>... ipmisi.trydefaults=[0|1]\nipmisi.regspacings=<sp1>,<sp2>,...\nipmisi.regsizes=<size1>,<size2>,...\nipmisi.regshifts=<shift1>,<shift2>,...\nipmisi.slaveaddrs=<addr1>,<addr2>,...\nipmisi.forcekipmid=<enable1>,<enable2>,...\nipmisi.kipmidmaxbusyus=<ustime1>,<ustime2>,...\n\n...\n\nIf your IPMI interface does not support interrupts and is a KCS or\nSMIC interface, the IPMI driver will start a kernel thread for the\ninterface to help speed things up.  This is a low-priority kernel\nthread that constantly polls the IPMI driver while an IPMI operation\nis in progress.  The forcekipmid module parameter will all the user to\nforce this thread on or off.  If you force it off and don't have\ninterrupts, the driver will run VERY slowly.\n\nFile: freeipmi-faq.info,  Node: How do I program with the FreeIPMI libraries?,  Next: Where can I get additional help or support?,  Prev: Why am I seeing so many 'internal IPMI error' or 'driver busy' messages?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "27 How do I program with the FreeIPMI libraries?",
                        "content": ""
                    }
                ]
            },
            "If you are looking for a high level library to do Serial-over-LAN (SOL)": {
                "content": "or IPMI sensor/SEL monitoring, you may wish to look at the\nlibipmiconsole and libipmimonitoring libraries.  These libraries attempt\nto abstract a large amount of the underlying IPMI detail from\ndevelopers.  The majority of the documentation can be found in the\nheader files.  Some examples can be found in the documentation and the\nFreeIPMI tools that use them.\n\nThe libfreeipmi library is the core library used by other FreeIPMI\nlibraries and tools.  However, it is quite detailed in regards to the\nIPMI specification and many components of the library will be quite\nconfusing to those unfamiliar with the finer details of the IPMI\nspecification.  It is recommended most use the higher level libraries\ndescribed above.\n\nA more detailed description of the available FreeIPMI libraries can\nbe found in the 'freeipmi-libraries.txt' document (you can find it on\nthe website here:\n<http://www.gnu.org/software/freeipmi/freeipmi-libraries.txt>).\n\nFile: freeipmi-faq.info,  Node: Where can I get additional help or support?,  Prev: How do I program with the FreeIPMI libraries?,  Up: Top\n",
                "subsections": [
                    {
                        "name": "28 Where can I get additional help or support?",
                        "content": "For help, please email the <freeipmi-users@gnu.org> mailing list.\n\n"
                    }
                ]
            }
        }
    }
}