IPMI UTILITIES AND LINUX PANIC HANDLER ENHANCEMENTS USER GUIDE ------------------------ CONTENTS ------------------------ 1.0 Overview 1.1 Features 2.0 Dependencies 2.1 Configuration 2.2 References 3.0 Utility Man Pages 3.1 IPMIUTIL (ipmiutil) 3.2 ALARMS (ipmiutil alarms) 3.3 BMCHEALTH (ipmiutil health) 3.4 FRUCONFIG (ipmiutil fru) 3.5 GETEVENT (ipmiutil getevt) 3.6 HWRESET (ipmiutil reset) 3.7 ICMD (ipmiutil cmd) 3.8 PEFCONFIG (ipmiutil lan) 3.9 SENSOR (ipmiutil_sensor) 3.10 SHOWSEL (ipmiutil sel) 3.11 TMCONFIG (ipmiutil serial) 3.12 WDT (ipmiutil wdt) 3.13 ISOLCONSOLE (ipmiutil sol) 3.14 IDISCOVER (ipmiutil discover) 3.15 EVENTS (events) 3.16 BMCCONFIG (ipmiutil config) 4.0 Use Cases 4.1 Usage of IPMI utilities for sensor thresholds 4.2 Usage to configure a system for IPMI LAN 4.3 Usage of IPMI utilities for Automated IPMI LAN configuration 4.4 Usage of IPMI utilities to Set Watchdog timer 4.5 Usage of kernel panic handler code 4.6 Interpreting BMC LAN SNMP Traps from Platform Events 4.7 Interpreting newer PECI sensors for CPU Temperature 4.8 How to configure a system for IPMI Serial-Over-LAN Console 4.9 Using libipmiutil.a APIs for custom programs 5.0 IPMI Utilities on Windows 6.0 Problems 7.0 Related Information ------------------------ 1.0 OVERVIEW ------------------------ The IPMI Specification provides a standard way to do both simple and complex server management functions. Everything from remote reset/power-off to sending an SNMP alert from a sensor event even if the OS is down. Being able to perform these tasks in Baseboard Management Controller (BMC) firmware allows OS-independent management. What many integrators need, however, is a set of utilities and/or sample code to perform these functions within their enterprise management subsystem without a learning curve. The IPMI Management Utilities project provides a series of utilities that perform common IPMI server management functions, such as viewing the firmware log (showsel), or configuring the BMC LAN & PEF features (pefconfig). The utilities are designed for end-users, so that they should not require intimate knowledge of how to build IPMI commands. Each of the utilities detects or reasonably assigns default values so that a working configuration can be easily obtained. More detailed options allow changes to these default values. These utilities can be used separately, or merged with a larger server management subsystem. The source license is BSD and ipmiutil compiles under Linux (Makefile) and Windows (buildwin.cmd). There are also corresponding standard HPI utilities that run with two different HPI implementations, including OpenHPI. These were the basis of the current openhpi/clients. This project includes both IPMI utilities and a kernel patch for panic handler enhancements. The ipmiutil IPMI utilities below allow the user to access the firmware System Event Log and configure the Platform Event Filter table for the new 'OS Critical Stop' records, as well as other common IPMI system management functions. showsel - show the firmware System Event Log records sensor - show all Sensor Data Records, sensor readings, and thresholds hwreset - cause the BMC to hard reset or power down the system pefconfig - show and configure the BMC LAN port and Platform Event Filter table to allow BMC LAN alerts from firmware events and OS Critical Stop messages, tmconfig - show and configure the BMC Serial port for various modes, such as Terminal Mode. fruconfig - show the FRU chassis, board, and product inventory data, and optionally write a FRU asset tag. alarms - show and set front panel alarms (LEDs and relays) wdt - show and set watchdog timer parameters getevent - receive any IPMI events and display them bmchealth - check and report the basic health of the IPMI BMC icmd - send specific IPMI commands to the BMC, mainly for testing and debug purposes. ipmiutil - a meta-command to invoke all of the above as sub-commands Other supporting files: checksel = cron script using showsel to check the SEL, write new events to the syslog, and clear the SEL if nearly full. ipmi_port.sh = init.d script to reserve the RMCP port from portmap, this also restores saved sensor thresholds, if any. ipmi_port = daemon to bind the RMCP port and sleep to prevent Linux portmap from stealing the RMCP port ipmi_if.sh = script using dmidecode to determine the IPMI Interface Type bmclanpet.mib = SNMP MIB for BMC LAN Platform Event Traps bmclanaol.mib = SNMP MIB for BMC LAN Alert-Over-Lan traps test/* = scripts and utilities used in testing ipmiutil/panicsel kern/* = kernel patches for panic handling The kernel panic handler patch (kern/bmcpanic.patch) adds additional features to the Linux Panic Handler so that more information can be saved and passed along if a Linux panic condition occurs. bmc_panic features: 1. Write an OS Critical Stop event to firmware System Event Log (SEL) This is in bmcpanic.patch and in OpenIPMI. 2. Send SNMP trap via BMC LAN Alerting mechanism Accomplished by configuring the BMC with 'pefconfig'. 3. Turn on the Critical Alarm LED on the Telco Alarms Panel This is in bmcpanic.patch, but not in OpenIPMI due to platform-specific issues with the alarms panel. The kernel portion of this, except item 3, is now included in the OpenIPMI project with the CONFIG_IPMI_PANIC_EVENT option, and the OpenIPMI driver has merged into Linux kernel 2.4.21 and beyond. The latest version of the OpenIPMI driver can be obtained from http://openipmi.sourceforge.net. ------------------------ 1.1 FEATURES ------------------------ These are the key strengths, user features and functions that are supported by ipmiutil. Key Strengths = supports any IPMI server platforms, top-down user-friendly IPMI functions, detection, portability, incorporates fixes and new features quickly Target Market = Administrators, Developers, and OEMs OS Support = Linux and Windows (supports Windows natively for remote or local interface) License = BSD Drivers = openipmi, imb, valinux ipmikcs, lan, lanplus, freeipmi, landesk, and driverless direct KCS & SSIF. LEDs = Show/set ATCA LEDs, set identify LED, Intel OEM LEDs health = show overall health and product information discovery = find all IPMI LAN servers on a given subnet fru = Display all FRU and SPD inventory data, also Set some FRU product fields (asset tag, serial number) sensor = Show SDRs and sensor readings, also set sensor thresholds getevent = Receive any IPMI events and decode them, Perform soft-shutdown from remote IPMI LAN hwreset, using imb. reset = IPMI local and remote reset/power-control, IPMI boot device selection, remote IPMI soft-shutdown (with getevent -a) cmd = Execute raw IPMI commands locally or remotely lan = Show/set IPMI LAN and PEF configuration parameters, adds more PEF rules, or can add a custom PEF rule serial = Show/set IPMI serial configuration parameters sel = Show decoded System Event Log records, clear SEL, see checksel script to automate SEL management sol console = Start/stop an SOL console session watchdog = Show, set, and reset the IPMI watchdog timer and its actions, see also wdt.sh script to automate this via cron events = Standalone app to decode IPMI or PET event data, see also SNMP PET MIB (bmclanpet.mib) ipmi_port.sh = Automatically prevent Linux port mapper from stealing the RMCP port used by IPMI. ------------------------ 2.0 DEPENDENCIES ------------------------ The IPMI Utilities will run on both Linux and Windows, and should be portable to other OSs, if an IPMI driver for that OS can be obtained. The IPMI Utilities and Panic Handler Enhancements currently work with platforms that support the IPMI standard. If the platform does not support IPMI, these changes are inert. The Service Availability Forum has developed a Hardware Platform Interface (HPI) specification that can be used to group IPMI and other system management interfaces together. A set of comparable HPI utilities is included in the ipmiutil project source as hpiutil/*. The Panic Handler kernel enhancements (via kern/bmcpanic.patch) are now included in the OpenIPMI driver via the CONFIG_IPMI_PANIC_EVENT and CONFIG_IPMI_PANIC_STRING parameters in the kernel config file (/usr/src/linux/.config), assuming kernel 2.4.21 or greater. If run locally (as superuser), the ipmiutil utilities above use an IPMI Driver, which can be either: . the MontaVista OpenIPMI driver (/dev/ipmi0), . the Intel IMB IPMI driver (/dev/imb, via 'ipmidrvr' or 'ipmi_imb'), . the valinux IPMI Driver (/dev/ipmikcs), . the LANDesk ldipmi daemon, . the GNU FreeIPMI library (libfreeipmi.so), . or direct user-space I/Os to the IPMI KCS or SSIF/SMBus interfaces, if no other driver is detected. For Windows, only the imbdrv.sys (Intel IMB) driver is supported. For Linux, each of the IPMI management utilities will detect which IPMI driver is present, and if none are found, it will attempt to use raw KCS or SSIF I/Os to communicate with the IPMI BMC. If using the IPMI LAN interface, neither the local or remote system requires any IPMI driver, but the remote target system must have had IPMI LAN enabled, (e.g. via pefconfig) which is done locally on the target system. Note that the IPMI LAN session password is sent with either MD5 or MD2 encryption by default. See http://openipmi.sourceforge.net for the OpenIPMI driver. See http://downloadfinder.intel.com/scripts-df/Product_Search.asp?Prod_nm=ipmi*driver*source for Intel IMB driver See http://cvs.sf.net/cgi-bin/viewcvs.cgi/ipmitools/ipmitools/kernel/kcs/patches/2.4.x/ for the valinux driver. See http://www.landesk.com/ or the CD supplied with your server for LANDesk. See http://www.gnu.org/software/freeipmi/ for GNU FreeIPMI. List of companies that have adopted IPMI (over 195): http://www.intel.com/design/servers/ipmi/adopterlist.htm Example IPMI Server Platforms tested with ipmiutil: Intel RackMount Servers (both 32-bit and 64-bit) Intel ATCA SuperMicro (with LMC) Dell PowerEdge 2800 Sun (product id 0x4701) NSC (National SemiConductor) NEC Tyan Tatung ------------------------ 2.1 CONFIGURATION ------------------------ To find the base address of the IPMI KCS interface, or to find the IPMI SMBus slave address, you can use the 'dmidecode' utility provided with most Linux distributions. See also http://www.nongnu.org/dmidecode/. The ipmiutil rpm will run the ipmi_if.sh script to determine the IPMI Interface Type when the rpm is installed. For some IPMI systems, a minimum firmware version may be needed to support the BMC LAN/PEF feature. On an Intel TSRLT2 system, for instance, these are the minimum levels: BMC Firmware ver 54 or greater SSU ver 2.RC.1 or greater (if DOS SSU is used instead of pefconfig) Systems with IPMI versions prior to 1.5 do not support BMC LAN or PEF features. By default, the ipmiutil IPMI utilities rpm does not set the panic timeout. If a different kernel panic timeout is desired, add 'append="panic=10"' in lilo.conf, or do "echo 10 >/proc/sys/kernel/panic" in one of the /etc/init.d scripts to set it to 10 seconds, for instance. The pefconfig utility can be used instead of DOS utilities like SSU to configure the BMC LAN Alerting while the OS is running. The ipmiutil rpm runs pefconfig during the rpm installation, if the BMC LAN has not already been configured. The tmconfig utility is intended to configure the EMP serial port on the server for shared access between BMC/IPMI functions and BIOS Console Redirection. Some platforms only support only Basic Mode for BMC/IPMI functions. Basic Mode requires a remote client application to utilize it (Windows ISC Console/DPC applet, or a special modified Linux telnet). There are some platforms which implement Terminal Mode via IPMI v1.5 Appendix E to make remote management with character commands available on the serial port without a special remote client application. Notes about BMC Users: Most IPMI 1.5 systems support at least 3 users, numbered 1,2,3, where user 1 is the default and has a null username. Users 2 and 3 are alternate users whose usernames can be set. For ipmiutil, these are currently implemented by default as follows: user 1: used by default for BMC LAN and Serial (pefconfig & tmconfig) user 2: set for BMC LAN if pefconfig -u is specified user 3: set for BMC Serial/EMP if tmconfig -u is specified Also note that the -q option can be used to set different users by number. Note that the checksel script will be copied to /etc/cron.daily when the Linux rpm is installed, so that showsel will automatically save SEL records to syslog and clear the SEL if it gets nearly full. If you do not want this to happen automatically, remove the checksel script from the /etc/cron.daily directory. In order for the showsel -w function to work cleanly on a Windows system, the showselmsg.dll should be copied to %SystemRoot%\system32, and the showsel.reg should be run to set up the corresponding EventLog service registry values. ------------------------ 2.2 REFERENCES ------------------------ The IPMI 1.5 spec, Table 36-3 defines the sensor types for SEL records, as used by showsel. The IPMI 1.5 spec, Table 15-2 defines the Platform Event Filter table entries, as used by pefconfig. The IPMI 1.5 spec, Table 19-4 defines the LAN Configuration Parameters, as used by pefconfig. The enterprises.3183 SNMP traps come from the BMC firmware, and are defined in bmclan*.mib files in the ipmiutil project. Details about the format of these Platform Event Traps are available in section 12.2 through 12.5 of the ISM (Intel Server Management) 5.x Technical Product Specification at http://www.intel.com/support/motherboards/server/isc/sb/cs-008024.htm The enterprises.343 SNMP traps come from ISM or SNMPSA and are defined in mapbase*.mib files on the platform CD. The enterprises.412 SNMP traps come from ISM/DMTF, defined in dmtf*.mib files on the platform CD. ------------------------ 3.0 UTILITY MAN PAGES ------------------------ 3.1 IPMIUTIL (ipmiutil) IPMIUTIL(8) IPMIUTIL(8) NAME ipmiutil - a meta-command to invoke various IPMI functions. SYNOPSIS ipmiutil [-x -NUPETVF] [other command options] DESCRIPTION This utility performs various IPMI functions. Each of the individual commands in the ipmiutil project can be invoked via this meta-command. The is one of the following: alarms show/set the front panel alarm LEDs and relays (alarms) leds show/set the front panel alarm LEDs and relays (alarms) cmd send a specified raw IPMI command to the BMC (icmd) config list/save/restore BMC configuration parameters (bmcconfig) discover discover all IPMI servers on this LAN (idiscover) health check and show the basic health of the BMC (bmchealth) fru show FRU inventory data, write asset tag (fruconfig) getevt receive any IPMI events and display them (getevent) lan show/set IPMI LAN parameters and PEF table (pefconfig) reset cause the BMC to reset or power down the system (hwreset) sel show/clear firmware System Event Log records (showsel) sensor show Sensor Data Records, readings, thresholds (sensor) serial show/set IPMI Serial & Terminal Mode parameters (tmconfig) sol start/stop an SOL console session (isolconsole) wdt show/set/reset the watchdog timer (wdt) For help on each command (e.g. 'sel') enter: ipmiutil sel -? For man pages on each command, see the man page in parenthesis, or refer to SEE ALSO below. 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. OPTIONS Command options are described in the man page for each command. Below are a few of the common options. -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. EXAMPLES ipmiutil sel Shows the IPMI System Event Log entries. ipmiutil wdt Shows the watchdog timer values. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) pefcon- fig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) icmd(8) bmcconfig(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of icmd and any bug fix list. 3.2 ALARMS (ipmiutil alarms) ALARMS(8) ALARMS(8) NAME alarms (ipmiutil alarms) - display and set alarm indicators SYNOPSIS alarms [-abcdimnoprx -N node -U user -P/-R pswd -ETVFY] DESCRIPTION alarms is a program that uses IPMI commands to display and set alarm indicators, which are usually LEDs on the system chassis front panel. 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. Note that a LAN user must have Administrative privileges to read or write the alarm LEDs. Note that this utility may not be the only logic setting alarm states. The BMC firmware, system management software, or cluster fault manager may also want to set alarm states. Intel provides a Telco Alarms Man- ager API which presents a consolidated interface for all alarm manage- ment applications. OPTIONS Command line options are described below. -r Read-only. Show the alarms status, but do not set any states. This is also the default mode if no parameters are specified. -iN Sets the Chassis Identify feature, which can be an LED or some other alarm. If N=0, turn off the Chassis ID, otherwise turn the ID on for N seconds. N=255 will turn on the ID indefi- nitely, if it is IPMI 2.0. -aN Sets Disk A Fault LED. If N=0, turn it off. If N=1, turn it on. Used only for TIGPT1U platform. -bN Sets Disk B Fault LED. If N=0, turn it off. If N=1, turn it on. Used only for TIGPT1U platform. -dXN Sets Disk X Fault LED, where X=0-6. If N=0, turn it off. If N=1, turn it on. Used only for NSC2U platform. -cN Sets the Critical Alarm. If N=0, turn it off. If N=1, turn it on. -mN Sets the Major Alarm. If N=0, turn it off. If N=1, turn it on. -nN Sets the Minor Alarm. If N=0, turn it off. If N=1, turn it on. -pN Sets the Power Alarm. If N=0, turn it off. If N=1, turn it on. Note that the Power LED is also wired to the System Fault LED in the back of the system, so this state may be off for Power, but the LED could be lit for a System Fault reason instead. Refer to the system Technical Product Specification for System Faults. -o Sets all alarms off, including the Chassis ID. -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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 this IPMI LAN Authentication Type: 0=None, 1=MD2, 2=MD5, 4=Straight Password, 5=OEM. -V Use this 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. SEE ALSO bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) ipmiutil(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of alarms and any bug fix list. 3.3 BMCHEALTH (ipmiutil health) BMCHEALTH(8) BMCHEALTH(8) NAME bmchealth (ipmiutil health)- show BMC health SYNOPSIS bmchealth [-hx -N node -U user -P/-R pswd -ETVF] DESCRIPTION bmchealth is a program that uses IPMI commands to show the health of the BMC. 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. OPTIONS Command line options are described below. -h Check the health of the HotSwap Controller also. -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of alarms and any bug fix list. 3.4 FRUCONFIG (ipmiutil fru) FRUCONFIG(8) FRUCONFIG(8) NAME fruconfig (ipmiutil fru) - show Field Replacable Unit configuration data SYNOPSIS fruconfig [-abmsx -N node -U user -P/-R pswd -ETVF] DESCRIPTION fruconfig is a program that uses IPMI commands to show FRU configura- tion data and optionally write an asset tag string into the FRU data. Setting the asset tag is a function that can be used to uniquely iden- tify the unit, even if the storage devices are removed or changed. 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. OPTIONS Command line options are described below. -a asset_string This option specifies an asset tag string to be written to the baseboard FRU Product area. The asset tag length is limited by the existing FRU Product data, but is usually allowed up to 16 characters. -b Only show the Baseboard FRU data. The default behavior is to also scan for any SDR FRU data or DIMM SPD data referenced by the SDRs. -m 002000 Show FRU for a specific MC (e.g. bus 00, sa 20, lun 00). This would be used for PICMG or ATCA blade systems. -s serial_num This option specifies a serial number string to be written to the baseboard FRU Product area. The serial number can be any string up to 16 characters. -x Causes eXtra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, 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_PASS- WORD. -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. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) bmchealth(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of frucon- fig and any bug fix list. 3.5 GETEVENT (ipmiutil getevt) GETEVENT(8) GETEVENT(8) NAME getevent (ipmiutil getevt) - wait for IPMI events SYNOPSIS getevent [-abosx -t secs -N node -U user -P/-R pswd -ETVF] DESCRIPTION getevent is a program that uses IPMI commands to wait for IPMI events sent from the BMC firmware. These events are also sent to the IPMI System Event Log (SEL). 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. Some server management functions want to trigger custom actions or alerts when IPMI hardware-related events occur, but do not want to track all events, just newly occurring events. This utility waits a specified timeout period for any events, and returns interpreted out- put for each event. It is designed as a scriptable command-line util- ity, but if the timeout is infinite (-t 0), then this code could be used for a sample service as well. There are several methods to do this which are implemented here. The SEL method: This method polls the SEL once a second, keeps track of the last SEL event read, and only new events are processed. This ensures that in a series of rapid events, all events are received in order, however, some transition-to-OK events may not be configured to write to the SEL on certain platforms. This method is used if getevent -s is speci- fied. This is the only method supported over IPMI LAN, i.e. with -N. The ReadEventMessageBuffer method: This uses an IPMI Message Buffer in the BMC firmware to read each new event. This receives any event, but if two events occur nearly simul- taneously, only the most recent of the two will be returned with this method. An example of simultaneous events might be, if a fan stops/fails, both the non-critical and critical fan threshold events would occur at that time. This is the default method for getevent. The OpenIPMI custom method: Different IPMI drivers may have varying behavior. For instance, the OpenIPMI driver uses the IPMI GetMessage commands internally and does not allow client programs to use those commands. It has its own cus- tom mechanism, see getevent_mv(). This method is used if the OpenIPMI driver is detected, and no other method is specified. The IMB Async Event method: This only gets certain IMB Async events from the BMC to an SMS OS ser- vice, like a remote OS shutdown, and get_software_id. This method is disabled by default and only turned on if the getevent -a option is specified. OPTIONS Command line options are described below. -a Use the Async method with the IMB driver, which receives SMS OS requests from the BMC using the Intel IMB driver interface. This services remote SMS bridge agent requests, like remote OS shutdown and get software_id. -b Run in Background as a daemon. If this option is specified, normal output will be redirected to /var/log/ipmiutil_evt.log. The default is to run in foreground. -o Only run one pass to wait for the first event. Default is to loop for multiple events for the timeout period. -s Use the SEL method to get events. This polls the SEL once a second for new events. The last SEL record read is saved in /usr/share/ipmiutil/evt.idx. Otherwise, the default is to use the ReadEventMessageBuffer method to get new events. -t N Set the timeout period to N seconds. Default is 120 seconds. A timeout of 0 means an infinite period. -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of alarms and any bug fix list. 3.6 HWRESET (ipmiutil reset) HWRESET(8) HWRESET(8) NAME hwreset (ipmiutil reset) - perform a hardware reset on the system SYNOPSIS hwreset [-dcnorsx -N node -U user -P/-R pswd -ETVF] DESCRIPTION hwreset is a program that uses IPMI commands to perform a hardware reset of the chassis, or boot to a specific device. 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. OPTIONS Command line options are described below. -c Power Cycle the system chassis -d Power Down the system chassis -u Power Up the system chassis -n Send NMI to the system -p Reboots to PXE network boot, for this reboot only. -o Do a soft shutdown of the OS, and then reset. Note that remote soft shutdown (-o -N) requires getevent -a on the target server. -D Do a soft shutdown of the OS, and then power down. Note that remote soft shutdown (-o -N) requires getevent -a on the target server. -s Do a hard reset and reboot to the Service Partition, for this reboot only. Reboots to the default if no service partition is configured. -b Do a hard reset and reboot to the BIOS Setup menu, for this reboot only. -e Reboots to EFI, if EFI boot is enabled, for this reboot only. -f Reboots to Floppy/Removable, for this reboot only. -h Reboots to a Hard Disk, for this reboot only. -m Reboots to CDROM Media, for this reboot only. -p Reboots to PXE -r Hard Reset the system chassis (default action) -s Reset and boot to the Service Partition -w Wait for BMC ready after a reset before exiting the utility. -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of hwreset and any bug fix list. 3.7 ICMD (ipmiutil cmd) ICMD(8) ICMD(8) NAME icmd (ipmiutil cmd) - a tool to send specific IPMI commands via the command line. SYNOPSIS icmd [-sx -NUPRETVF] bus rsSa netFn/lun cmd [data bytes] DESCRIPTION This icmd tool sends specific IPMI commands to the firmware. The com- mands are composed as hex values on the command line. This tool was written to allow in-band use to match the DOS CMDTOOL.EXE or IPMI- TOOL.EXE program which is distributed with many Intel servers. Cer- tain scripts or pre-written commands may have been supplied for the DOS tool that can now be used while the system is running Linux or Windows. 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. 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. OPTIONS Command line options are described below. -s Skips the GetDeviceID command -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. 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 Func- tion. This representation is consistent with the DOS CMD- TOOL/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 icmd 00 20 18 01 Sends the GetDevice ID command to the BMC. 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. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) pefcon- fig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of icmd and any bug fix list. 3.8 PEFCONFIG (ipmiutil lan) PEFCONFIG(8) PEFCONFIG(8) NAME pefconfig (ipmiutil lan) - show and configure BMC LAN parameters and set up a PEF entry to send BMC LAN Alerts for OS Critical Stop log events SYNOPSIS pefconfig [-degjklq#rstx -n pefnum -i eth1 -a alertnum ] [-I ipadr -M macadr -S subnet -B baud_sol ] [-G gwyip -H gwymac -L lan_channel_num ] [-A alertip -X alertmac -C community ] [-u user_to_set -p password_to_set ] [-N nodename -U rmt_username -Fimb ] [-P/-R rmt_node_pswd -E -T1 -V2 ] DESCRIPTION pefconfig is a program that uses an IPMI driver to send IPMI commands which configure a new Platform Event Filter table entry for an OS Critical Stop (0x20) SEL firmware log event, so that it will be enabled to send a BMC LAN Alert. This utility also sets up all of the BMC LAN Parameters to enable sending the BMC LAN Alerts. The IP address and MAC address of the local system, the default gateway, and the alert destination can be defaulted to those specified in Linux, or can be overridden by user parameters. 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. This utility is designed to be used on systems with IPMI 1.5 or greater in order to support PEF records. OPTIONS Command line options are described below. Note that without options, pefconfig behaves as if option -r were used. To configure IPMI LAN & PEF, use option -e. -a alertnum Specify which PEF alert number is to be used. Default is 1. This would only be used if extra PEF alert destinations had been set. -d This option disables the BMC LAN and PEF parameters, so as not to allow BMC LAN connections or alerts. -e This option enables the BMC LAN configuration and PEF event alerts. The utility will attempt to obtain the default BMC LAN parameters from the OS automatically, or they can be specified with command options below. -i ethif By default, the eth0 interface is used to find IP and MAC addresses. Sometimes, however, the first ethernet port on the baseboard may be represented by Linux as eth1 or eth2 instead. If so, use this option to indicate the correct ethernet inter- face to use. By default, pefconfig will scan up to 32 eth interfaces for the onboard one that BMC LAN uses. -g This specifies the secondary gateway IP address to use for the BMC LAN. The default is to omit this parameter and only use the default gateway. See also -G. -j This sets a custom PEF rule as the last PEF entry. The input is a series of 10 hex bytes, forming the PEF entry. For example, this sample PEF entry would perform a power down action if the Baseboard Temp reached its threshold. "ipmiutil lan -e -j020110ffff013001950a" -k This causes pefconfig to also insert two rules to send alerts for transition-to-OK events, including Power Redundancy OK and Temperature OK. -l This option enables the BMC LAN configuration, but not PEF events. The utility will attempt to obtain the default BMC LAN parameters from the OS automatically, or they can be specified with command options below. -n num By default, the new PEF entry for OS Critical Stop is inserted at offset 12 into the table. This can be changed to insert it at an offset > 12 if another entry already exists at offset 12. -# Same as -q below. -q Specify an alternate user number for the LAN username from the -u option. This is normally user number 2, 3, or 4, where 2 is the default. The maximum number of users is 15. -r This option just reads the configuration without writing any BMC LAN parameters or writing any new entries to the PEF table. -s This option will also display some of the Serial parameters. -t Test if the BMC LAN has already been configured. Returns 0 if so. -x Causes extra debug messages to be displayed. -B baud_sol This specifies the Baud rate for SerialOverLan. The possible values are: 9600, 19.2k, 38.4k, 57.6k, and 115.2k. The default is 19.2k. -D This causes the local IP address to be determined by DHCP instead of a static IP address. -I ip_addr This specifies the local IP address to use for the BMC LAN on eth0. The default is to automatically obtain this from the Linux ifconfig. -M mac_addr This specifies the local MAC address to use for the BMC LAN on eth0. The format can be either 11:22:33:44:55:66 or 11-22-33-44-55-66. The default is to automatically obtain this from the Linux ifconfig. -S subnet This specifies the local subnet mask to use for the BMC LAN on eth0. The default is to automatically obtain this from the Linux ifconfig. -G gwy_ip_addr This specifies the default gateway IP address to use for the BMC LAN. The default is to automatically obtain this from the Linux route table. -H gwy_mac_addr This specifies the default gateway’s MAC address to use for the BMC LAN. The format can be either 11:22:33:44:55:66 or 11-22-33-44-55-66. The default is to automatically obtain this from the Linux arp cache. -A alert_ip_addr This specifies the SNMP Alert Destination IP address to use for the BMC LAN. By default, this utility will attempt to obtain this from the /etc/snmp/snmpd.conf file, via the trapsink parameter. The alert destination will see the BMC LAN traps with the enterprises.3183.1.1 OID. If no alert IP address is specified in either snmpd.conf or this parameter, or if that IP address does not respond, the other SNMP parameters for BMC LAN will be skipped. -X alert_mac_addr This specifies the SNMP Alert Destinations’s MAC address to use for the BMC LAN. The format can be either 11:22:33:44:55:66 or 11-22-33-44-55-66. The default is to attempt to obtain this from the Linux arp cache. This parameter is ignored if there is no Alert IP address. -C snmp_community This specifies the SNMP Community name to use for BMC LAN Alerts. The default community string is "public". This param- eter is ignored if there is no Alert IP address. -u username_to_set This specifies the firmware username to set for BMC LAN access. If a username is specified, user 3 will be set. If not speci- fied, the default user 1 will be used. -p password_to_set This specifies the firmware password to set for BMC LAN access. If not specified, the user and password configuration will not be changed. -L lan_ch_num This specifies the IPMI LAN channel number used for BMC LAN. This varies by platform, and can be found in the platform tech- nical specifications. By default, pefconfig scans all IPMI channels to find a LAN channel for BMC LAN. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. EXAMPLES To read existing settings: pefconfig -r To enable IPMI LAN with default settings detected: pefconfig -e To set up IPMI LAN for a unique IP address and set PEF SNMP Alerts: pefconfig -e -I 192.168.1.1 -A 192.168.1.10 To set the IPMI LAN password for the default user: pefconfig -e -p mypassword To disable access to the IPMI LAN channel: pefconfig -d SAMPLE PEF TABLE These 11 PEF table entries are configured from the factory for various Intel Sahalee BMC systems, and will be applied as the defaults for a system with an empty PEF table: PEF(01): 01 Temperature Sensor event - enabled for alert 01 c0 01 01 00 ff ff 01 ff 01 95 0a 00 00 00 00 00 00 00 00 00 PEF(02): 02 Voltage Sensor event - enabled for alert 02 c0 01 01 00 ff ff 02 ff 01 95 0a 00 00 00 00 00 00 00 00 00 PEF(03): 04 Fan Failure event - enabled for alert 03 c0 01 01 00 ff ff 04 ff 01 95 0a 00 00 00 00 00 00 00 00 00 PEF(04): 05 Chassis Intrusion event - enabled for alert 04 c0 01 01 00 ff ff 05 05 6f 01 00 00 00 00 00 00 00 00 00 00 PEF(05): 08 Power Supply Fault event - enabled for alert 05 c0 01 01 00 ff ff 08 ff 6f 06 00 00 00 00 00 00 00 00 00 00 PEF(06): 0c Memory ECC Error event - enabled for alert 06 c0 01 01 00 ff ff 0c 08 6f 02 00 00 00 00 00 00 00 00 00 00 PEF(07): 0f FRB Failure event - enabled for alert 07 c0 01 01 00 ff ff 0f 06 6f 01 00 00 00 00 00 00 00 00 00 00 PEF(08): 07 BIOS POST Error event - enabled for alert 08 c0 01 01 00 ff ff 07 ff 6f 1c 00 00 00 00 00 00 00 00 00 00 PEF(09): 13 Fatal NMI event - enabled for alert 09 c0 01 01 00 ff ff 13 ff 6f 3e 03 00 00 00 00 00 00 00 00 00 PEF(10): 23 Watchdog Timer Reset event - enabled for alert 0a c0 01 01 00 ff ff 23 03 6f 0e 00 00 00 00 00 00 00 00 00 00 PEF(11): 12 System Restart event - enabled for alert 0b c0 01 01 00 ff ff 12 ff 6f 02 00 00 00 00 00 00 00 00 00 00 SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of pefcon- fig and any bug fix list. 3.9 SENSOR (ipmiutil sensor) SENSOR(8) SENSOR(8) NAME sensor (ipmiutil sensor) - show Sensor Data Records SYNOPSIS sensor [-acmprstuvwx -i id -n snum -h tval -l tval -NUPRETVF] DESCRIPTION sensor is a program that uses IPMI commands to show and decode Sensor Data Records and current sensor readings for all sensors in the sys- tem. The readings are only retrieved for Full SDR records. 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. Note that this utility currently only displays Sensor Data Records reported by from the BMC chipset. Some systems may have other devices with sensors that are also available via IPMI. OPTIONS Command line options are described below. -a snum ReArms the sensor number for events -c Shows SDRs for the Child MCs on a PICMG or ATCA system. -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 is set as the highest threshold value, with the less critical ones set by the utility as incrementally lower. This simplifies the interface and ensures that the threshold values do not get out of order. 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 sen- sor readings for changes, or to set just one sensor quickly without reading all of the SDRs. -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 is set as the lowest threshold value, with the less critical ones set by the utility as incrementally higher. This simplifies the interface and ensures that the threshold values do not get out of order. This requires specifying the sensor number via -n. -m 002000 Show SDRs for a specific MC (e.g. bus 00, sa 20, lun 00). This would be used for PICMG or ATCA blade systems. -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. -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 including it in /etc/init.d for the desired runlevel. For Windows, the filename is thresholds.cmd. -r Show Raw SDR bytes also. -s Show sensor list in a simpler format without uninterpreted binary values. Only the user-friendly interpreted sensor information is shown. -t Show any Thresholds for each sensor also. -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 thresh- olds, max/min, hysteresis, and BMC_TAM decoding. -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. This is useful along with -i. Default is one loop. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of sensor and any bug fix list. 3.10 SHOWSEL (ipmiutil sel) SHOWSEL(8) SHOWSEL(8) NAME showsel (ipmiutil sel) - show firmware System Event Log records SYNOPSIS showsel [-clswvx -N node -P/-R pswd -U user -ETVF] DESCRIPTION showsel is a program that uses IPMI commands to to read and display the System Event Log (SEL) which is stored by the BMC firmware. IPMI commands are issued to read each record, and, if specified, incremen- tally write records that have not previously been read into the Linux syslog (/var/log/messages). 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. OPTIONS Command line options are described below. -c Clears the SEL of all records. If the SEL becomes full (free space = 0), it no longer accepts new records, so the SEL should be cleared periodically. -l N Show last N SEL records, in reverse order (newest first). -r Show the 16 raw hex bytes for each SEL entry. The default is to display interpreted entries, and include relevant hex event bytes. -s By default, all SEL records are displayed. This option causes only the records with sensor_type = 0x20 (OS Critical Stop) to be displayed. -v Only show the version information. This shows: the showsel utility version, the BMC version, the IPMI version, the SEL version, and the amount of free space in the SEL. -w This option writes SEL records to the Linux syslog (/var/log/messages) or Windows Application Log. It only writes SEL records that have timestamps newer than the last record written to syslog. It saves the last timestamp in an index file named /usr/share/ipmiutil/sel.idx (.\sel.idx in Windows). -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of showsel and any bug fix list. 3.11 TMCONFIG (ipmiutil serial) TMCONFIG(8) TMCONFIG(8) NAME tmconfig (ipmiutil serial) - configure a system for Serial/EMP manage- ment functions, such as Terminal Mode, and optionally share the port with the Serial Console. SYNOPSIS tmconfig [-bcdflq#rsxB -m0 -m1 -n ser_chan -u user -p passwd -NUPRETVF] DESCRIPTION tmconfig is a program that uses an IPMI driver to send IPMI commands which configure a system to enable EMP/serial Terminal Mode management functions within the firmware, so that an administrator can use com- mand-line character commands via the serial port to power cycle the system and perform other functions, even if the system is not running an OS. This level of access needs to be protected by a username/pass- word login, which can be specified with this utility. 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. OPTIONS Command line options are described below. -b Set up and enable the Serial Port EMP parameters for Basic Mode management functions. This does not set a username or pass- word. -c Configure and enable the Serial Port EMP parameters for Termi- nal Mode management functions, shared with BIOS Console Redi- rection. This sets a new username and password. -d Disable the serial port access for IPMI commands. The serial port is then only available for BIOS console and OS functions. A side-effect of this option is that it sets the default user (1) back to admin access. -f Specifies the Flow Control for the Serial EMP. 0 means no flow control, and 1 means RTS/CTS flow control (default). This must match the BIOS Serial Console setting. -l Show LAN Parameters. This option reads and displays the LAN Parameter configuration also. -m0 Switch the Serial Port MUX to Baseboard/BIOS Console operation. Set no other configuration parameters. -m1 Switch the Serial Port MUX to Terminal Mode management. Set no other configuration parameters. -n ser_chan Sets the IPMI channel number for the EMP serial port. The default for this channel number is 1. -# Same as -q below. -q Specify an alternate user number for the EMP Username from the -u option. This is normally user number 2, 3, or 4, where 3 is the default. The maximum number of users is 15. -r Read Only. This option just reads the Serial Parameter config- uration without writing any values. -s Set up and enable the Serial Port EMP parameters for Shared operation between Basic Mode management functions and Baseboard (BIOS) Remote Console. This option switches the Serial Port MUX to Baseboard Console operation. -t Configure and enable the Serial Port EMP parameters for Termi- nal Mode management functions, shared with BIOS Console Redi- rection. Same as -c, but easier to remember. -u username This specifies a username for the EMP Terminal Mode login. It can be any string, up to 15 characters. If -u is not used, the default user 1 (null) will be assumed. The username, if speci- fied, will be set for user 3, unless option -q is specified. -p password This specifies a password for the EMP Terminal Mode login. It can be any string, up to 15 characters. A null password is used if none is specified. This password applies to user 3 if -u is used, to user 1 otherwise. -x Causes extra debug messages to be displayed. -B Set the Baud rate of the serial port to one of the following: 9600, 19,2K, 38.4K, 57.6K, or 115.2K. The default is 19.2K bps. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. EXAMPLES tmconfig -t (or -c) Enables Terminal Mode management functions, shared with BIOS Serial Console redirection. The user can switch between serial console operations and IPMI Terminal Mode commands by typing ESC ’)’ and ESC ’Q’. tmconfig -s Enables Basic Mode management functions shared with BIOS Serial Console redirection. The user can switch between serial con- sole operations and IPMI Basic Mode management programs on the same serial port. tmconfig -d Disables the serial port management functions. This would be used if only the BIOS Serial Console were used and no BMC serial management functions. How to login to a Terminal Mode console: ESC ( (switch to Terminal mode) [SYS PWD -N ] (login for default user, null psw) [SYS PWD -U ROOT -N PASSWORD] (syntax example for user 3) [SYS 000157 ACTIVATE] (activate advanced commands) [SYS HEALTH QUERY] [SYS HELP] [SYS PWD] (logoff) ESC Q (switch to BIOS console) See IPMI 1.5 Spec, Appendix E, and Intel TIGPR2U TPS for more informa- tion. DEPENDENCIES The tmconfig utility is intended to configure the EMP serial port on the server for shared access between BMC/IPMI functions and BIOS Con- sole Redirection. Some platforms only support only Basic Mode for BMC/IPMI functions. Basic Mode requires a remote client application to utilize it (Windows ISC Console/DPC, or a special modified Linux telnet). There are some platforms which implement Terminal Mode via IPMI v1.5 Appendix E to make remote management with character commands available on the serial port without a special remote client applica- tion. For example, Intel TSRLT2 systems would use "tmconfig -s" for Basic Mode shared functions, but Intel TIGPR2U systems could use "tmconfig -c" to configure Terminal Mode functions. On your system, run "tmcon- fig -r" to check whether Serial Param(29): "Terminal Mode Config" is supported. If not, configure Basic Mode via "tmconfig -s". PLATFORM SERIAL PORT CONFIGURATION EXAMPLES First, enter BIOS Setup for Serial Console Redirection parameters: (these vary by platform) Console Redirection = Serial Port B ACPI Redirection = Disabled Baud Rate = 115.2K Flow Control = CTS/RTS Terminal Type = VT100 Legacy Redirection = Enabled Note that the Baud Rate can vary, but it must match in all locations where it is used (BIOS, IPMI, and Linux). For some non-Intel platforms, the serial console would be COM1 instead of COM2, but should be enabled in BIOS. From Linux, run "tmconfig -c" for Terminal Mode shared configuration. Or, on older Intel TSRLT2 platforms: From Linux, run "tmconfig -s" for Basic Mode Shared configuration. LINUX CONFIGURATION FOR SERIAL CONSOLE If using lilo, in /etc/lilo.conf, add append="console=ttyS1,19200n8 console=tty0" (and comment out the "message=" line because it includes graphics) Note that the append line can be placed in the global section and removed from each kernel section if there are no other differences. Or, if using grub, edit /boot/grub/grub.conf as follows: #Omit the splashimage or gfxmenu # splashimage=(hd0,0)/grub/splash.xpm.gz #The serial and terminal lines are not usually needed # serial --unit=1 --speed=19200 --word=8 --parity=no --stop=1 # terminal --timeout=10 serial console #Add the console=ttyS* parameter to the kernel line kernel (hd0,0) /vmlinuz root=/dev/sda2 console=ttyS1,19200n8 Add this line to /etc/initab, if ttyS1 is not already there: co:2345:respawn:/sbin/agetty ttyS1 19200 vt100 Add this line to /etc/securetty, if ttyS1 is not already there: ttyS1 SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of tmcon- fig and any bug fix list. 3.12 WDT (ipmiutil wdt) WDT(8) WDT(8) NAME wdt (ipmiutil wdt)- display and set WatchDog Timer parameters SYNOPSIS wdt [-adelrtx -N node -P/-R pswd -U user -ETVF] DESCRIPTION wdt is a program that uses IPMI commands to display and set WatchDog Timer parameters. 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. This utility is an example of how to access the IPMI watchdog parame- ters directly, which allows changing the timer configuration. There is an init script provided with ipmiutil to automate the task of managing the watchdog timer in user-space. # cp /usr/share/ipmiu- til/wdt.sh /etc/init.d/wdt # chkconfig --add wdt (skip this if no chkconfig) # /etc/init.d/wdt start This sets the watchdog timer to reset the system if the wdt is not restarted within 90 seconds. It creates an /etc/cron.d/wdt file to restart wdt every 60 seconds. See also ipmiutil UserGuide section 4.4 for more information. OPTIONS Command line options are described below. -a N Set watchdog event Action to N. Values: 0 = No action, 1 = Hard Reset(default), 2 = Power down, 3 = Power cycle. -d Disables the watchdog timer. -e Enables the watchdog timer. The timer is not actually started, however, until the timer is reset. The pre-timeout action is not enabled. -l Set the watchdog dontLog bit to not log watchdog events in the SEL. -p N Set watchdog Pretimeout event action to N. Values: 0 = No action(default), 1 = SMI, 2 = NMI, 3 = Messaging Interrupt. If this is set to an action other than 0, the pretimeout will also be set to a value of half the timeout. -r Resets the watchdog timer. This should be done every N seconds if the timer is running to prevent the watchdog action (usually a system reset) from occurring. -tN Set the watchdog Timeout to N seconds. The default is 120 sec- onds (2 minutes). -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of wdt and any bug fix list. 3.13 ISOLCONSOLE (ipmiutil sol) ISOLCONSOLE(8) ISOLCONSOLE(8) NAME isolconsole (ipmiutil sol) - an IPMI Serial-Over-LAN Console applica- tion SYNOPSIS isolconsole [-a -d -e -l -r -x -NUPETVF] DESCRIPTION This utility starts an IPMI Serial-Over-LAN console session. A Serial-over-LAN console allows the client to see and modify functions before the OS boots, such as BIOS setup, grub, etc. This utility uses either the IPMI LAN 1.5 or 2.0 SOL interface. The 1.5 SOL interface is specific to Intel BMCs, while any IPMI 2.0 BMC should support 2.0 SOL. The target system/node must first have these parameters config- ured before SOL sessions can be started: - BIOS serial console redirection parameters, - IPMI serial (tmconfig) and lan (pefconfig) parameters, and - For Linux, the grub.conf, inittab, and securetty parameters Be sure that the baud rate matches in all of the above places. See the ipmiutil UserGuide section 4.8 for details. OPTIONS -a Activate the SOL Console session, and enter console mode. Use the escape character (’~’) to exit the session. -d Deactivate the SOL Console session. Use this if the previous session was aborted abnormally and starting a new session gives an error. -e Turn Encryption off in negotiation when activating a session. By default, encryption is on for Serial-Over-LAN console ses- sions. -l Use Legacy BIOS mapping for Enter key (CR+LF) instead of just LF. This is needed for BIOS Setup menus and DOS, but causes an extra LF to occur in Linux. So, only use this option if doing BIOS or DOS changes. -r (Windows only) Use Raw terminal I/O instead of custom VT100 to ANSI translation. Use this option if the server is configured in BIOS and BMC for ANSI and the utility is being invoked from Windows. -x Causes extra debug messages to be displayed. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, 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_PASS- WORD. -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 sup- ported driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. EXAMPLES isolconsole -a -N nodename -U username -P password Starts an SOL console session to the nodename. Detect the lan proto- col. isolconsole -a -N nodename -U username -P password -Flan2 Starts an SOL console session to the nodename. Force lan protocol to 2.0. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) pefcon- fig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) icmd(8) ipmiutil(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of icmd and any bug fix list. 3.14 IDISCOVER (ipmiutil discover) IDISCOVER(8) IDISCOVER(8) NAME idiscover (ipmiutil discover) - discover IPMI LAN-enabled nodes SYNOPSIS idiscover [-abegisx] DESCRIPTION idiscover is a program that uses IPMI LAN commands to discover any nodes on the LAN that are available, by probing the RMCP port (623.) on those nodes. This utility uses IPMI LAN, so no IPMI drivers are needed. There are three methods that can be used: -a = broadcast RMCP ping method -g = GetChannelAuthCap command method else = specific RMCP ping method For all methods, a beginning IP address must be specified with -b. An ending IP can be specified for non-broadcast methods. OPTIONS Command line options are described below. -a All nodes, use the broadcast ping method -b Beginning IP address, required. This would be a broadcast address, ending in 255, if the broadcast method is used. -e Endign IP address of the range. Not used for broadcast method. If this is not specified, a range of one IP address matching the beginning IP is assumed. -g Use the GetChannelAuthenticationCapabilities command method over IPMI LAN instead of the RMCP ping. Not compatible with broadcast. This may be useful if the vendor BMC does not sup- port RMCP ping for some reason. -r N Repeat the ping N times to each node. Default is to send 1 ping per node. -i eth0 The interface name to use when sending the probes. The default is eth0. -x Causes extra debug messages to be displayed. EXAMPLES idiscover -a -b 192.168.1.255 Sends a broadcast RMCP ping to discover IPMI LAN nodes on the speci- fied subnet. idiscover -b 192.168.1.100 -e 192.168.1.254 Sends RMCP pings to a range of IP addresses. idiscover -g -b 192.168.1.100 -e 192.168.1.254 Sends GetChannelAuthCap commands to a range of IP addresses. SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) ipmiutil(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of wdt and any bug fix list. 3.15 EVENTS (events) EVENTS(8) EVENTS(8) NAME events - decode IPMI and PET event data SYNOPSIS events [-fpsx] 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 DESCRIPTION events is a standalone utility delivered with ipmiutil, used to inter- pret raw hex data from IPMI events or from IPMI PET SNMP trap varbind data. Its default location is /usr/share/ipmiutil/events. This util- ity uses the same interpretation logic as is used by "ipmiutil sel" (showsel) and "ipmiutil getevt" (getevents). The data bytes in the input are always assumed to be in hex form. This could be useful if a utility other than "ipmiutil sel" were used to obtain IPMI SEL records or events and interpretation is needed. This would also be needed at an enterprise management station to interpret the PET SNMP trap hex data into human-readable form, see option -p. OPTIONS -f Interpret a file containing raw SEL data captured with ipmiutil sel -r, or some other similar utility. Otherwise, the default is to use the 16 bytes taken from the command-line arguments. -p Decode as PET event bytes, where the input is 34 PET hex data bytes, skipping the first 8 of the 47-byte PET data. The default assumes that the input is a 16-byte IPMI event. -s Sensor file with the output of "ipmiutil sensor", used to get the PET sensor_type from the sensor_num. The default is /usr/share/ipmiutil/sensor_out.txt as generated during the ipmiutil rpm installation. This is not needed except with PET interpretation (-p). -x show eXtra debug messages SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) pefconfig(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of ipmiu- til and any bug fix list. 3.16 BMCCONFIG (ipmiutil config) BMCCONFIG(8) BMCCONFIG(8) NAME bmcconfig (ipmiutil config) - list, save, and restore BMC configura- tion parameters SYNOPSIS bmcconfig [-lpxLNUPREFTJVY -r -s ] DESCRIPTION bmcconfig is a program that uses an IPMI driver to send IPMI commands which list, save and restore BMC configuration parameters for LAN, Serial, PEF, SOL, User, Channel. This combines the functionality of pefconfig (ipmiutil lan) and tmconfig (ipmiutil serial). Note that some of the LAN parameters cannot be restored remotely over the IPMI LAN, changing the configuration that is in use. 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. OPTIONS Command line options are described below. -l Lists BMC configuration parameters with a keyword, index, and its hex values. This is the default behavior if no options are specified. -r Restores BMC configuration from , which was produced with -s below. -s Saves BMC configuration to . This file could be edited, in certain cases, such as to vary the BMC IP address (LanParam 3), or with the UserPassword records. Note that lines begin- ning with ’#’ are comments and are ignored. -x Causes extra debug messages to be displayed. -p password_to_set This specifies the firmware password to set for BMC LAN access for all users during the restore. If not specified, the pass- word configuration will not be changed, unless a valid User- Password record is present in the file to be restored. Note that user passwords are write-only via standard IPMI commands. -L lan_ch_num This specifies the IPMI LAN channel number used for BMC LAN. This varies by platform, and can be found in the platform tech- nical specifications. By default, pefconfig scans all IPMI channels to find a LAN channel for BMC LAN. -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the local system management interface is used. -P/-R rmt_pswd 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_PASS- WORD. -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 avail- able driver type and use it. -J Use the specified LanPlus cipher suite (0 thru 14): 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. EXAMPLES To read existing settings: pefconfig -r To enable IPMI LAN with default settings detected: pefconfig -e To set up IPMI LAN for a unique IP address and set PEF SNMP Alerts: pefconfig -e -I 192.168.1.1 -A 192.168.1.10 To set the IPMI LAN password for the default user: pefconfig -e -p mypassword To disable access to the IPMI LAN channel: pefconfig -d SAMPLE PEF TABLE These 11 PEF table entries are configured from the factory for various Intel Sahalee BMC systems, and will be applied as the defaults for a system with an empty PEF table: PEF(01): 01 Temperature Sensor event - enabled for alert 01 c0 01 01 00 ff ff 01 ff 01 95 0a 00 00 00 00 00 00 00 00 00 PEF(02): 02 Voltage Sensor event - enabled for alert 02 c0 01 01 00 ff ff 02 ff 01 95 0a 00 00 00 00 00 00 00 00 00 PEF(03): 04 Fan Failure event - enabled for alert 03 c0 01 01 00 ff ff 04 ff 01 95 0a 00 00 00 00 00 00 00 00 00 PEF(04): 05 Chassis Intrusion event - enabled for alert 04 c0 01 01 00 ff ff 05 05 6f 01 00 00 00 00 00 00 00 00 00 00 PEF(05): 08 Power Supply Fault event - enabled for alert 05 c0 01 01 00 ff ff 08 ff 6f 06 00 00 00 00 00 00 00 00 00 00 PEF(06): 0c Memory ECC Error event - enabled for alert 06 c0 01 01 00 ff ff 0c 08 6f 02 00 00 00 00 00 00 00 00 00 00 PEF(07): 0f FRB Failure event - enabled for alert 07 c0 01 01 00 ff ff 0f 06 6f 01 00 00 00 00 00 00 00 00 00 00 PEF(08): 07 BIOS POST Error event - enabled for alert 08 c0 01 01 00 ff ff 07 ff 6f 1c 00 00 00 00 00 00 00 00 00 00 PEF(09): 13 Fatal NMI event - enabled for alert 09 c0 01 01 00 ff ff 13 ff 6f 3e 03 00 00 00 00 00 00 00 00 00 PEF(10): 23 Watchdog Timer Reset event - enabled for alert 0a c0 01 01 00 ff ff 23 03 6f 0e 00 00 00 00 00 00 00 00 00 00 PEF(11): 12 System Restart event - enabled for alert 0b c0 01 01 00 ff ff 12 ff 6f 02 00 00 00 00 00 00 00 00 00 00 SEE ALSO alarms(8) bmchealth(8) fruconfig(8) getevent(8) hwreset(8) icmd(8) sensor(8) showsel(8) tmconfig(8) wdt(8) WARNINGS See http://ipmiutil.sourceforge.net/ for the latest version of pefcon- fig and any bug fix list. -------------------------- 4.0 USE CASES -------------------------- ---------------------------------------------------------------- 4.1 Usage of IPMI utilities for sensor thresholds ---------------------------------------------------------------- Get and set the Baseboard Temperature sensor threshold with the 'sensor' utility like this: # sensor -t [...] 000e SDR Full 01 39 20 sensnum 30 Baseboard Temp = 1d OK 29.00 degrees C hi-crit 65.00 hi-noncr 60.00 lo-noncr 10.00 lo-crit 5.00 [...] Using sensor number 30, index 000e, and the hex raw reading (1d) as a baseline from above, we can set the lower threshold above the current reading, i.e. 0x1e or 30 C. # sensor -i 0e -t -n 0x30 -l 30 sensor: version 1.39 idx = 0e -- BMC version 0.48, IPMI version 1.5 _ID_ SDR_Type_xx Sz Own Typ S_Num Sens_Description Hex & Interp Reading 000e SDR Full 01 39 20 sensnum 30 Baseboard Temp = 1d OK 29.00 degrees C hi-crit 65.00 hi-noncr 60.00 lo-noncr 10.00 lo-crit 5.00 Setting SDR 000e sensor 30 to lo=1e hi=ff GetThreshold[30]: 30 1b 0a 05 00 3c 41 00 SetThreshold[30]: 30 03 20 1f 1e 00 00 00 SetSensorThreshold[30] to lo=1e(30.000) hi=ff(0.000), ret = 0 # This sets the lower non-crit to 1e (30 C), and lower crit to 1f (31 C), and would cause a sensor threshold event. Note that this utility takes the raw threshold value and increments it sequentially for each of the severities. Now we should set the lower threshold back to a more normal value of 5 C. # sensor -i 0e -t -n 0x30 -l 5 sensor: version 1.39 idx = 0e -- BMC version 0.48, IPMI version 1.5 _ID_ SDR_Type_xx Sz Own Typ S_Num Sens_Description Hex & Interp Reading 000e SDR Full 01 39 20 a 01 snum 30 Baseboard Temp = 1b Crit-lo 27.00 degrees C hi-crit 66.00 hi-noncr 60.00 lo-noncr 10.00 lo-crit 5.00 Setting SDR 000e sensor 30 to lo=05 hi=ff GetThreshold[30]: 30 1b 20 1f 00 3c 42 00 SetThreshold[30]: 30 03 07 06 05 00 00 00 SetSensorThreshold[30] to lo=05(5.000) hi=ff(0.000), ret = 0 # The threshold events can be displayed via showsel. # showsel -l4 4b18 07/17/06 14:33:14 BMC 01 Temperature 30 LoC thresh OK now act=1b thr=06 4b04 07/17/06 14:33:14 BMC 01 Temperature 30 LoN thresh OK now act=1b thr=07 4af0 07/17/06 14:26:38 BMC 01 Temperature 30 Lo Crit thresh act=1b thr=1f 4adc 07/17/06 14:26:38 BMC 01 Temperature 30 Lo Noncrit thresh act=1b thr=20 # ---------------------------------------------------------------- 4.2 How to configure a system for IPMI LAN ---------------------------------------------------------------- Below is a sample IPMI LAN configuration with IPMI LAN enabled, PEF Alerts enabled, and 2 users configured for IPMI LAN. The key unique LAN parameters that must be configured for basic IPMI LAN functionality are: 3,4,5,6,12,13, plus the Channel Access Mode and User Access. Additional parameters for PEF and SOL are shown below also. Defaults for required parameters are detected by ipmiutil lan, except for the username, password, and the BMC LAN IP if it is not shared. The detection uses the OS LAN configuration to find the gateway IP, MAC addresses, mask, etc. # ipmiutil -e -u user2 -p password2 [-I 192.168.1.1 ] Running "ipmiutil -e -u user2 -p password2" would set up all required IPMI LAN parameters if the OS and BMC share an IP address. If not, the -I parameter should be added to specify the BMC IP. Note that -e also sets up the PEF table for events, but the channel is not enabled for PEF events unless an Alert destination is specified, either in snmpd.conf or via -A. You can use -l instead of -e if you want to set up the LAN but not the PEF table. Note that the BMC LAN protocol works only from remote systems. The BMC LAN cannot recognize LAN commands from the local system because those requests never really go onto the physical network. Use the non-LAN form of a given ipmiutil command (without -N) to run locally. Below is sample output from a system after being configured for IPMI LAN. # ipmiutil lan -r ipmiutil ver 1.8 pefconfig ver 1.64 -- BMC version 0.53, IPMI version 2.0 pefconfig: GetPefEntry ... PEFilter(01): 01 Temperature Sensor event - enabled for alert PEFilter(02): 02 Voltage Sensor event - enabled for alert PEFilter(03): 04 Fan Failure event - enabled for alert PEFilter(04): 05 Chassis Intrusion event - enabled for alert PEFilter(05): 08 Power Supply Fault event - enabled for alert PEFilter(06): 0c Memory ECC Error event - enabled for alert PEFilter(07): 0f FRB Failure event - enabled for alert PEFilter(08): 07 BIOS POST Error event - enabled for alert PEFilter(09): 13 Fatal NMI event - enabled for alert PEFilter(10): 23 Watchdog Timer Reset event - enabled for alert PEFilter(11): 12 System Restart event - enabled for alert PEFilter(12): 20 OS Critical Stop event - enabled for alert PEFilter(13): 02 Power Redundancy Lost event - enabled for alert PEF Control: 01 PEFenable PEF Actions: 2f Alert PwrDn Reset PwrCyc DiagInt PEF Startup Delay: 60 sec PEF Alert Startup Delay: 60 sec PEF Alert Policy[1]: 01 18 11 00 Chan[1] Dest[1] Enabled PEF Alert Policy[2]: 02 00 00 00 Disabled PEF Alert Policy[3]: 03 00 00 00 Disabled PEF Alert Policy[4]: 04 00 00 00 Disabled pefconfig: GetLanEntry for channel 1 ... Lan Param(0) Set in progress: 00 Lan Param(1) Auth type support: 17 None MD2 MD5 Pswd Lan Param(2) Auth type enables: 16 16 16 16 00 Lan Param(3) IP address: 10 243 42 229 Lan Param(4) IP addr src: 01 Static Lan Param(5) MAC addr: 00 04 23 bc ac 12 Lan Param(6) Subnet mask: 255 255 255 0 Lan Param(7) IPv4 header: 40 40 10 Lan Param(10) BMC grat ARP : 01 Lan Param(11) grat ARP interval: 04 Lan Param(12) Def gateway IP: 10 243 42 251 Lan Param(13) Def gateway MAC: 00 d0 06 21 eb fc Lan Param(14) Sec gateway IP: 0 0 0 0 Lan Param(15) Sec gateway MAC: 00 00 00 00 00 00 Lan Param(16) Community string: public Lan Param(17) Num dest: 04 Lan Param(18) Dest type: 01 00 01 00 00 Lan Param(18) Dest type: 02 00 01 00 00 Lan Param(18) Dest type: 03 00 00 00 00 Lan Param(18) Dest type: 04 00 00 00 00 Lan Param(19) Dest address: 01 00 00 [10 243 42 217] 00 07 e9 06 15 80 Lan Param(19) Dest address: 02 00 00 [0 0 0 0] 00 00 00 00 00 00 Lan Param(19) Dest address: 03 00 00 [0 0 0 0] 00 00 00 00 00 00 Lan Param(19) Dest address: 04 00 00 [0 0 0 0] 00 00 00 00 00 00 Lan Param(192) DHCP Server IP: 0 0 0 0 Lan Param(193) DHCP MAC Address: 00 00 00 00 00 00 Lan Param(194) DHCP Enable: 00 GetChanAcc(lan), ret = 0, new value = 02 Access = Always Avail, PEF Alerts Enabled Channel Access Mode(Lan): 02 04 GetSOL for channel 1 ... SOL Enable: 01 enabled SOL Auth: 02 User SOL Accum Interval: 04 32 20 msec SOL Retry Interval: 06 14 200 msec SOL nvol Baud Rate: 07 19.2k SOL vol Baud Rate: 00 nobaud SOL Payload Access(1,1): 02 00 00 00 enabled SOL Payload Support(1): 03 00 15 00 00 00 00 00 Get User Access(1): 04 02 01 14 IPMI, Admin () Get User Access(2): 04 02 01 14 IPMI, Admin (root) Get User Access(3): 04 02 01 02 User (test) Get User Access(4): 04 02 01 02 User () pefconfig: completed successfully ---------------------------------------------------------------- 4.3 Usage of IPMI utilities for Automatic IPMI LAN configuration ---------------------------------------------------------------- Suppose there are a number of IPMI servers that need to have their BMC LAN interface configured. Shell access to the servers (via ssh or similar) is assumed. BMC LAN, Simple case, password is not changed: [ssh connection] # pefconfig -e [ssh exit] BMC LAN, Complex case, assuming that a password needs to be set and that the session text (or script) must encrypt the password. So, using the gnupg.org utilities with public/private keys would look something like this: [ Set up list (or db) of encrypted passwords & key by nodename. Note that the list and keyfile could reside locally, building the ssh script syntax, so that only the encrypted password is exposed remotely. ] [ssh connection] # gpg --import mykey.file # mynode=`uname -n` # my_enc_psw=`grep $mynode mylist.file |cut -f2` # pefconfig -e -p `gpg --decrypt $my_enc_psw` [ssh exit] ---------------------------------------------------------------- 4.4 Usage of IPMI Utilities to Set Watchdog timer ---------------------------------------------------------------- Watchdog timer coverage over the phases of boot and OS operation: Power-on to end-of-POST = BIOS FRB2 end-of-POST to OS Running = BIOS OS Boot Timeout OS User-space operation = SMS Timeout via "ipmiutil wdt" Each of these phases uses the same watchdog timer mechanism but initializes the timer with different values. For user-space watchdog control, use "ipmiutil wdt" to read, set, and reset the IPMI watchdog timer. There is an init script provided with ipmiutil to automate this task. # cp /usr/share/ipmiutil/wdt.sh /etc/init.d/wdt # chkconfig --add wdt (skip this if no chkconfig) # /etc/init.d/wdt start This sets the watchdog timer to reset the system if the wdt is not restarted within 90 seconds. It creates an /etc/cron.d/wdt file to restart wdt every 60 seconds. This user-space approach is desirable if you wish the watchdog to expire for such conditions as out-of-memory or out-of-processes, since the cron job will start a short process for each invocation. Note that this also does not require additional services or modules to be running all the time. Note that the device-independent way to start/stop watchdog timers in Linux is to use the /dev/watchdog interface via the OpenIPMI driver. For kernel-space watchdog management, you could build a custom kernel with embedded watchdog support by changing the CONFIG_IPMI_* driver parameters to =y in the Linux .config (including CONFIG_IPMI_WATCHDOG) and building the kernel. Then edit grub.conf to start the watchdog with the kernel parameter "ipmi_watchdog_start_now=1". ---------------------------------------------------------------- 4.5 Usage of kernel panic handler code (now CONFIG_IPMI_PANIC_EVENT): ---------------------------------------------------------------- If a Linux panic occurs, the bmc_panic module will automatically save the date/time of the panic, and minimal information about the panic. This information will also be sent via SNMP to the remote management console, and (if bmcpanic.patch) the Alarms panel LED will be turned on. If lkcd is also configured, a full crash-dump of the panic will be saved for later analysis. After this, the system will automatically reboot. This provides instant notification to the administrator, and significantly improved post-mortem diagnosis. Without these features, the administrator may never have any indication that the system had crashed, and no way to know how to diagnose and fix the problem. To enable this, set CONFIG_IPMI_PANIC_EVENT=y and CONFIG_IPMI_PANIC_STRING=y in the kernel .config file. You can also run pefconfig to enable sending an SNMP trap for a kernel panic as an "OS Critical Stop" event. Make sure that the panic timeout is not zero (infinite), by using echo "5" > /proc/sys/kernel/panic or by adding 'append="panic=5"' to the lilo or grub configuration. After a panic occurs, you can then use showsel to view the firmware SEL for that event. It should look something like this: # showsel [...] 2d04 07/21/04 07:54:22 SMI 20 OS Critical Stop 46 (Fat) 6f [a1 61 74] 2d18 OEM Event 20 00 Fatal excep 2d2c OEM Event 20 01 tion [...] ---------------------------------------------------------------- 4.6 Interpreting BMC LAN SNMP Traps from Platform Events. ---------------------------------------------------------------- There are MIB files provided for BMC LAN SNMP traps with this project. They are installed into /usr/share/ipmiutil/bmclan*.mib, and sym-linked into /usr/share/snmp/mibs/. The Platform Event Traps (enterprises.3183) are defined in bmclanpet.mib. The Alert-on-LAN traps (enterprises.3183) are defined in bmclanaol.mib. Note that Plaform Event Traps also have a 46-byte binary variable bindings field included with the trap. See Section 12.5 and 12.6 from the Intel ISM 5.x TPS for background. Actual PET Trap Data from a System Restart Event trap: snmputil: trap generic=6 specific=1208065 from -> 10.243.42.197 Variable = .iso.org.dod.internet.private.enterprises.3183.1.1.1 Value = String <0xa4><0x12><0x00><0x5f><0x62><0xa1><0xd5><0x11><0x00><0x80><0x60><0xff><0x94><0x47><0x03><0x00><0x21><0x19><0x0c><0x7f><0x3b><0x12><0xff><0xff><0x20><0x20><0x00><0x01><0x83><0x00><0x00><0x01><0xff><0xff><0x00><0x00><0x00><0x00><0x00><0x19><0x00><0x00> <0x01><0x57><0x00><0x0c><0xc1> Byte Mapping Bytes of the trap variable binding data are mapped. An extra byte of data is at the end (47). Byte Data Meaning 1 0xa4 System GUID (16 bytes) 2 0x12 3 0x00 4 0x5f 5 0x62 6 0xa1 7 0xd5 8 0x11 9 0x00 10 0x80 11 0x60 12 0xff 13 0x94 14 0x47 15 0x03 16 0x00 17 0x21 Sequence Number/Cookie (2 bytes) 18 0x19 19 0x0c Local Timestamp (4 bytes) 20 0x7f 21 0x3b 22 0x12 23 0xff UTC Offset (2 bytes) 24 0xff 25 0x20 Trap Source Type 26 0x20 Event Source Type 27 0x00 Event Severity 28 0x01 Sensor Device 29 0x83 Sensor Number 30 0x00 Entity 31 0x00 Entity Instance 32 0x01 Event Data (8 bytes max, 3 bytes used) 33 0xff 34 0xff 35 0x00 36 0x00 37 0x00 38 0x00 39 0x00 40 0x19 filler byte 41 0x00 Manufacturer ID (4 bytes, 000157=Intel) 42 0x00 43 0x01 44 0x57 45 0x00 Product ID (2 bytes) 46 0x0c 47 0xc1 extra byte Also, there is an optional "Extended Platform Event Trap" format defined for IPMI which breaks up the 46-byte binary varbind into separate varbinds for easier parsing. ---------------------------------------------------------------- 4.7 Interpreting newer PECI sensors for CPU Temperature ---------------------------------------------------------------- The newer CPUs do more monitoring internally rather that using absolute temperature thresholds from the BMC. The CPU knows best what its thresholds should be, and the thresholds may be different for different CPUs. So, there are several IPMI sensors that expose the state of the CPU temperature via the newer PECI interface. 1) Thermal Margin - A negative value indicating margin to throttling point. Once margin reaches 0, throttling begins 2) Therm Control % - Reports the percentage of time within a 5.8 second sliding window during which the processor was throttling 3) VRD Hot - Discrete sensor indicating one of the phases of the processor VRD circuit on the baseboard has exceeded it's limit. This is not indicative of CPU - just the VR circuit on the baseboard. Therm Margin is the one to watch if you want max performance without throttling. If it reaches 0, you will start losing performance to throttling. ---------------------------------------------------------------- 4.8 How to configure a system for IPMI Serial-Over-LAN Console ---------------------------------------------------------------- The Serial-Over-LAN (SOL) console configuration requires configuring BIOS, BMC/IPMI, and OS parameters. Enter BIOS Setup for Serial Console Redirection parameters: (these vary by platform) Console Redirection = Serial Port B ACPI Redirection = Disabled Baud Rate = 115.2K Flow Control = CTS/RTS Terminal Type = VT100 Legacy Redirection = Enabled Note that the Baud Rate can vary, but it must match in all locations where it is used (BIOS, IPMI, and Linux). Run this for IPMI serial configuration: (sample) ipmiutil serial -c -q2 -u user2 -p password2 [-B 115.2k] The Baud rate defaults to 19.2k if not specified. Run this for IPMI LAN & SOL configuration: (sample) ipmiutil lan -e -u user2 -p password2 [-B 115.2k] [-I 192.168.1.1] Use the -I portion if your BMC does not share a MAC address with the OS. If not specified, the baud rate defaults to that previously set with "ipmiutil serial". ---- FOR LINUX SERIAL CONSOLE ----- Edit /boot/grub/grub.conf to: add "console=ttyS1,115200n8" on the end of the kernel line, and comment out the "splashimage=" line Edit /etc/inittab to add: co:2345:respawn:/sbin/agetty ttyS1 115200 vt100 Edit /etc/securetty to add: ttyS1 ---- FOR WINDOWS SERIAL CONSOLE ----- To configure Windows for Serial (System Admin Console), these BOOTCFG.EXE commands manipulate the BOOT.INI for SAC: BOOTCFG /EMS ON /PORT BIOSSET /ID 1 (Enables SAC) BOOTCFG /EMS OFF /ID 1 (Disables SAC) ---------------------------------------------------------------- 4.9 Using libipmiutil.a APIs for custom programs ---------------------------------------------------------------- The various driver modules and LAN interfaces are included in libipmiutil.a which is build by "cd util; make libipmiutil.a". This library provides a common interface to use IPMI commands. For instance, as shown in ipmicmd.h, a raw IPMI command can be called with the ipmi_cmdraw subroutine. /* * ipmi_cmdraw * uchar cmd (input): IPMI Command * uchar netfn (input): IPMI NetFunction * uchar sa (input): IPMI Slave Address of the MC * uchar bus (input): BUS of the MC * uchar lun (input): IPMI LUN * uchar *pdata (input): pointer to ipmi data * uchar sdata (input): size of ipmi data * uchar *presp (output): pointer to response data buffer * int *sresp (input/output): on input, size of response buffer, * on output, length of response data * uchar *cc (output): completion code * char fdebugcmd(input): flag =1 if debug output desired * * This routine will use IPMI LAN if a remote node is specified with the * globals 'gnode','guser','gpswd', else it will detect whether the following * local IPMI * drivers are available: OpenIPMI, Intel imb, valinux ipmikcs, * and optionally LANDesk or FreeIPMI. If none of these drivers are detected, * direct user-space IOs will be used for either KCS or SSIF access to the * IPMI MC. */ int ipmi_cmdraw(uchar cmd, uchar netfn, uchar sa, uchar bus, uchar lun, uchar *pdata, uchar sdata, uchar *presp, int *sresp, uchar *pcc, char fdebugcmd); If you would prefer not to use the globals like 'gnode', you can explicitly call ipmi_open_lan() with the node, user, password parameters before the ipmi_cmdraw() call. ---------------------------------- 5.0 IPMI UTILITIES ON WINDOWS ---------------------------------- Files contained in the ipmiutil win32 zip file: README.txt - this file UserGuide.txt - the ipmiutil User Guide LICENSE.txt - the BSD License ipmiutil.exe - a meta-command for all of the functions alarms.exe bmchealth.exe fruconfig.exe getevent.exe hwreset.exe icmd.exe isolconsole.exe pefconfig.exe sensor.exe showsel.exe showselmsg.dll showsel.reg tmconfig.exe wdt.exe libeay32.dll - from openssl crypto ssleay32.dll - from openssl crypto The install and build instructions are below, all other information in the UserGuide.txt is the same for Windows and Linux. ---------------------------------- 5.1 WINDOWS INSTALL INSTRUCTIONS ---------------------------------- The showselmsg.dll needs to be copied into the %SystemRoot%\System32 directory and then run showsel.reg, so that the Windows EventLog service can find information about the showsel events. Note that the openssl crypto libraries (libeay32.dll and ssleay32.dll) should be copied to %SystemRoot%\System32 also to provide crypto functions for the lanplus logic, if they are not already present. The utilities can be run separately, or an ipmiutil directory can be added into the %PATH%. A sample install batch file: > set MYBIN=c:\bin > copy libeay32.dll %SystemRoot%\system32 > copy ssleay32.dll %SystemRoot%\system32 > copy showselmsg.dll %SystemRoot%\system32 > start showsel.reg > mkdir %MYBIN% > copy *.exe %MYBIN% The usage of the utilities is the same as in Linux OS, with one caveat: * The only IPMI driver supported is the Intel IMB driver (imbdrv.sys), which can be obtained from the Intel Resource CD for your system, from the ISM CD, or from http://www.intel.com by searching downloads for IMB driver. http://downloadfinder.intel.com/scripts-df-external/Product_Search.aspx?Prod_nm=imb+driver How to install the Windows IPMI driver (from Intel Resource CD): > cd c:\temp > copy d:\ism\software\win32\pi\common\imb*.* > copy d:\ism\software\win32\pi\common\win2k*.exe > ren imbdrv2k.sys imbdrv.sys > copy imbapi.dll %SystemRoot%\system32 > win2kinstall c:\temp\imbdrv.inf *IMBDRV > driverquery (shows the drivers currently installed/running) ---------------------------------- 5.2 WINDOWS BUILD INSTRUCTIONS ---------------------------------- To build the ipmiutil EXEs for Windows from source, the WIN32 compile flag is used. The ipmiutil buildwin.cmd shows how to compile and link the lib and exe files, although many people prefer to do builds with the Microsoft VisualStudio project GUI. The build environment assumes that VisualStudio 6.0 VC98 or later is installed. Before running buildwin.cmd, first download the contributed files for Windows (includes getopt.c and openssl). A copy of these files is available from http://ipmiutil.sf.net/FILES/ipmiutil-contrib.zip See getopt.c from one of these BSD getopt.c: http://www.openmash.org/lxr/source/src/getopt.c?c=gsm public domain getopt.c: http://www.koders.com/c/fid034963469B932D9D87F91C86680EB08DB4DE9AA3.aspx GNU LGPL getopt.c: http://svn.xiph.org/trunk/ogg-tools/oggsplit/ See openssl from http://www.openssl.org/source/openssl-0.9.7l.tar.gz. Below are sample directories where ipmiutil*.tar.gz was unpacked, and where the openssl*.tar.gz was unpacked. > set ipmiutil_dir=c:\dev\ipmiutil > set openssl_dir=c:\dev\openssl First, copy the getopt.c & getopt.h into the util directory. From the directory where ipmiutil-contrib.zip was unpacked, > copy getopt.* %ipmiutil_dir%\util The iphlpapi.lib comes from VS 2003 .Net or Win2003 DDK. > copy iphlpapi.lib %ipmiutil_dir%\lib > copy iphlpapi.h %ipmiutil_dir%\util If you do not have the iphlpapi.* files, you can build without it by copying the *-nohlp files. > copy %ipmiutil_dir%\util\pefconfig.c-nohlp %ipmiutil_dir%\util\pefconfig.c > copy %ipmiutil_dir%\util\ipmiutil.mak-nohlp %ipmiutil_dir%\util\ipmiutil.mak You then need to build a copy of openssl for Windows, and copy the built openssl files to lib & inc. Follow the openssl build instructions from INSTALL.W32 for VC++, then: > copy %openssl_dir%\out32dll\libeay32.lib %ipmiutil_dir%\lib > copy %openssl_dir%\out32dll\ssleay32.lib %ipmiutil_dir%\lib > copy %openssl_dir%\out32dll\libeay32.dll %ipmiutil_dir%\util > copy %openssl_dir%\out32dll\ssleay32.dll %ipmiutil_dir%\util > mkdir %ipmiutil_dir%\lib\lanplus\inc\openssl > copy %openssl_dir%\inc32\openssl\*.h %ipmiutil_dir%\lib\lanplus\inc\openssl -------------------------- 6.0 PROBLEMS -------------------------- Note that each tool has an option for additional debug output (-x). Contact maintainer for best-effort support: arcress@users.sourceforge.net or use the ipmiutil-developer mailing list: http://lists.sourceforge.net/lists/listinfo/ipmiutil-developers Return code = 0 means success, negative numbers indicate failure, and a positive return code represents a completion code. Completion Codes are defined in IPMI 1.5, Table 5-2, and are also included below in both hex and decimal format: Note: completion codes 0x80-0x9f may vary depending on the command Code Dec Description ---- --- ----------------------------------------- 0x00, 0, "Command completed successfully", 0x80, 128, "Invalid Session Handle or Empty Buffer", 0x81, 129, "Lost Arbitration", 0x82, 130, "Bus Error", 0x83, 131, "NAK on Write - busy", 0x84, 132, "Truncated Read", 0xC0, 192, "Node Busy", 0xC1, 193, "Invalid Command", 0xC2, 194, "Command invalid for given LUN", 0xC3, 195, "Timeout while processing command", 0xC4, 196, "Out of space", 0xC5, 197, "Invalid Reservation ID, or cancelled", 0xC6, 198, "Request data truncated", 0xC7, 199, "Request data length invalid", 0xC8, 200, "Request data field length limit exceeded", 0xC9, 201, "Parameter out of range", 0xCA, 202, "Cannot return requested number of data bytes", 0xCB, 203, "Requested sensor, data, or record not present", 0xCC, 204, "Invalid data field in request", 0xCD, 205, "Command illegal for this sensor/record type", 0xCE, 206, "Command response could not be provided", 0xCF, 207, "Cannot execute duplicated request", 0xD0, 208, "SDR Repository in update mode, no response", 0xD1, 209, "Device in firmware update mode, no response", 0xD2, 210, "BMC initialization in progress, no response", 0xD3, 211, "Destination unavailable", 0xD4, 212, "Cannot execute command. Insufficient privilege level", 0xD5, 213, "Cannot execute command. Request parameters not supported", 0xFF, 255, "Unspecified error" -------------------------- 7.0 RELATED INFORMATION -------------------------- History of ipmiutil: This project started in October 2001 as part of the Carrier Grade Linux effort. It was then known as 'panicsel' and included a kernel patch to write a Linux panic event to the IPMI firmware log, as well as utilities. This code was first included in MontaVista CGE Linux 2.1 in July 2002. The panicsel functionality was included in OSDL CGL 1.0 and 2.0 requirements. The kernel panic functionality was included in the OpenIPMI driver for 2.6 Linux kernels. Compile flags for Windows 2000 & 2003 support were added in Jan 2004. In August 2004, the project was moved from panicsel.sf.net to ipmiutil.sf.net. The new name more clearly reflects the purpose of the project in its current state. In November 2004, support for the FreeIPMI library was added. A Linux rpm and a Windows setup package for ipmiutil is included on the Resource CD with Intel carrier-grade servers. The ipmiutil (or panicsel) rpm is known to be included in the following distributions: MontaVista CGE 2.1/3.0/3.1/4.0, SuSE SLES9, RedFlag 5.0 Links with information related to the IPMI Management Utilities project. ipmiutil project, sourceforge http://ipmiutil.sourceforge.net panicsel project, sourceforge http://panicsel.sourceforge.net IPMI Specification http://www.intel.com/design/servers/ipmi/index.htm OSDL Carrier Grade Linux http://www.osdl.org/lab_activities/carrier_grade_linux/ Intel imb driver source http://downloadfinder.intel.com/scripts-df-external/Product_Search.asp?Prod_nm=ipmi*driver*source Intel imb driver for Windows http://downloadfinder.intel.com/scripts-df-external/Product_Search.aspx?Prod_nm=imb+driver OpenIPMI project http://sourceforge.net/projects/openipmi/ by Corey Minyard of MontaVista (home= http://openipmi.sourceforge.net) ipmitools project by San Mehat http://sourceforge.net/projects/ipmitools/ valinux IPMI driver http://cvs.sf.net/cgi-bin/viewcvs.cgi/ipmitools/ipmitools/kernel/kcs/patches/2.4.x/ GNU FreeIPMI library project http://www.gnu.org/software/freeipmi/ LANDesk IPMI driver/daemon http://www.landesk.com/Support/ (or see Intel System Resource CD for Intel servers) lm-sensors project http://secure.netroedge.com/~lm78/ dmidecode project http://www.nongnu.org/dmidecode/ IPMI vendor/mfg IDs http://www.iana.org/assignments/enterprise-numbers