IPMI UTILITIES AND LINUX PANIC HANDLER ENHANCEMENTS ------------------------ CONTENTS ------------------------ 1.0 Overview 2.0 Dependencies 2.1 Configuration 3.0 Utility Man Pages showsel hwreset sensor pefconfig tmconfig fruconfig alarms wdt icmd 4.0 Use Cases 5.0 Problems 6.0 More Information ------------------------ 1.0 OVERVIEW ------------------------ This feature includes both IPMI utilities and a kernel patch for panic handler enhancements. The kernel panic handler patch (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. The panicsel 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 pefconfig - show and configure the Platform Event Filter table to allow BMC LAN alerts from OS Critical Stop messages, also shows and sets the BMC LAN configuration parameters. tmconfig - to set up the BMC Serial port for various modes, such as Terminal Mode. fruconfig - show the FRU chassis, board, and product data, and optionally write an asset tag to the FRU product area. hwreset - to cause the BMC to hard reset the system sensor - show all Sensor Data Records and full sensor readings alarms - show and set alarm indicators wdt - show and set watchdog timer parameters icmd - send specific IPMI commands to the BMC, mainly for testing and debug purposes. ------------------------ 2.0 DEPENDENCIES ------------------------ 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 this project as hpiutil.tar.gz. The Panic Handler kernel enhancements (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. The panicsel utilities require an IPMI Driver, either the MontaVista OpenIPMI driver (/dev/ipmi0), Intel IPMI package (ipmidrvr /dev/imb), or the valinux IPMI Driver (/dev/ipmikcs). 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. 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. ------------------------ 2.1 CONFIGURATION ------------------------ 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 SSU is used instead of pefconfig) The pefconfig utility can be used instead of SSU to configure the BMC LAN Alerting while Linux is running. The panicsel rpm runs pefconfig during the rpm installation. By default, the panicsel IPMI utilities rpm sets the panic timeout to 5 seconds by adding "append="panic=5" to /etc/lilo.conf. If a different timeout is desired, change this value 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 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, 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. Note that the checksel script will be copied to /etc/cron.daily 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. ------------------------ 3.0 UTILITY MAN PAGES ------------------------ SHOWSEL(8) SHOWSEL(8) NAME showsel - show firmware System Event Log records SYNOPSIS showsel [-cswvx] 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, incrementally 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 MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from valinux. 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. -s By default, all SEL records are displayed. This option causes only the records with sensor_type = 0x20 (OS Critical Stop) to be displayed. -w This option writes SEL records to the Linux syslog (/var/log/messages). 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/panicsel/sel.idx. -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. -x Causes extra debug messages to be displayed. SEE ALSO pefconfig(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of showsel and any bug fix list. HWRESET(8) HWRESET(8) NAME hwreset - perform a hardware reset on the system SYNOPSIS hwreset [-dcnorsx] DESCRIPTION hwreset is a program that uses IPMI commands to perform a hardware reset of the chassis. This utility can use either the /dev/ipmi0 driver from MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from val­ inux. OPTIONS Command line options are described below. -c Power Cycle the system chassis -d Power Down the system chassis -n Send NMI to the system -o Do a soft shutdown of the OS -r Hard Reset the system chassis (default action) -s Reset and boot to the Service Partition -x Causes extra debug messages to be displayed. SEE ALSO showsel(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of hwreset and any bug fix list. SENSOR(8) SENSOR(8) NAME sensor - show Sensor Data Records SYNOPSIS sensor [-stx -n num -h val -l val] 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 system. The readings are only retrieved for Full SDR records. This utility can use either the /dev/ipmi0 driver from MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from val- inux. 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 avail- able via IPMI. OPTIONS Command line options are described below. -h val High threshold value to set for the specified sen- sor. This val can be in decimal, or of the form 0x1a, to match the value shown by sensor following the " = ". -l val Low threshold value to set for the specified sen- sor. This val can be in decimal, or of the form 0x1a, to match the value shown by sensor following the " = ". -n num 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 "sensor: 20 ". -s Show sensor list in a simpler format without unin- terpreted binary values. -t Show any thresholds for each sensor also. -x Causes eXtra debug messages to be displayed. SEE ALSO showsel(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver- sion of sensor and any bug fix list. PEFCONFIG(8) PEFCONFIG(8) NAME pefconfig - 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 [-drsx -n pefnum -i eth1 ] [-I ipadr -M macadr -S subnet] [-G gwyip -H gwymac -P password ] [-A alertip -B alertmac -C community ]" [-L lan_channel_num ] 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 MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from valinux. 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. -d This option disables the new PEF entry for SEL 0x20 events. -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 interface to use. By default, pefconfig will scan up to 32 eth interfaces for the onboard one that BMC LAN uses. -n num By default, the new PEF entry is inserted at offset 12 into the table. It can be changed to insert it at an offset > 12 if another entry already exists at offset 12. -r This option just reads the PEF table without writ­ ing any new entries to the table. -s This option will also display some of the Serial parameters. -x Causes extra debug messages to be displayed. -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 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 automati­ cally 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 default is to automati­ cally 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 parame- ter. The alert destination will see these traps with the enterprises.3183.1.1 OID. -B alert_mac_addr This specifies the default gateway's MAC address to use for the BMC LAN. The default is to attempt to obtain this from the Linux arp cache. -C snmp_community This specifies the SNMP Community name to use for BMC LAN Alerts. The default community string is "public". -P password This specifies the firmware password to use for BMC LAN access. If not specified, the user and pass­ word 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 technical specifications. By default, pefconfig scans all IPMI channels to find a LAN channel for BMC LAN. SEE ALSO showsel(8) tmconfig(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of pefconfig and any bug fix list. TMCONFIG(8) TMCONFIG(8) NAME tmconfig - configure a system for Serial/EMP functions, such as Terminal Mode. SYNOPSIS tmconfig [-bclrsx -m[0,1] -n ser_chan -u user -p passwd ] DESCRIPTION tmconfig is a program that uses an IPMI driver to send IPMI commands which configure a system to enable EMP/serial Terminal Mode functions within the firmware, so that an administrator can use command-line character com­ mands 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/password login, which can be specified with this utility. This utility can use either the /dev/ipmi0 driver from MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from valinux. OPTIONS Command line options are described below. -b Set up and enable the Serial Port EMP parameters for Basic Mode functions. This does not set a username or password. -c Configure and enable the Serial Port EMP parameters for Terminal Mode functions. This sets a new user­ name and password. -d Disable the serial port access for IPMI commands. A side-effect of this option is that it sets the default user (1) back to admin access. -n ser_chan Sets the IPMI channel number for the EMP serial port. The default for this channel number is 1. -r Read Only. This option just reads the Serial Parameter configuration without writing any values. -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 (null) will be assumed. The username, if specified, will be set for user 3. -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. -l Show LAN Parameters. This option reads and displays the LAN Parameter configuration also. -m0 Switch the Serial Port MUX to Normal operation from the Baseboard. Set no other configuration parame­ ters. -m1 Switch the Serial Port MUX to Terminal Mode. Set no other configuration parameters. -s Set up and enable the Serial Port EMP parameters for Shared operation between Basic Mode functions and Baseboard (BIOS) Remote Console. This is the same as option -b except that it switches the Serial Port MUX to Baseboard operation. -x Causes extra debug messages to be displayed. DEPENDENCIES 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 func­ tions. 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 man­ agement with character commands available on the serial port without a special remote client application. 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 func­ tions. SEE ALSO pefconfig(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of tmconfig and any bug fix list. FRUCONFIG(8) FRUCONFIG(8) NAME fruconfig - show Field Replacable Unit configuration data SYNOPSIS fruconfig [-ax] DESCRIPTION fruconfig is a program that uses IPMI commands to show FRU configuration 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 identify the unit, even if the storage devices are removed or changed. This utility can use either the /dev/ipmi0 driver from Mon­ taVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from valinux. OPTIONS Command line options are described below. -a This option specifies an asset tag string to be written to the system FRU Product area. The asset tag length is limited by the existing FRU Product data, but is usually allowed up to 16 characters. -x Causes eXtra debug messages to be displayed. SEE ALSO showsel(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of fruconfig and any bug fix list. ALARMS(8) ALARMS(8) NAME alarms - display and set alarm indicators SYNOPSIS alarms [-r -i -c -m -n -p -o -x] 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 MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from valinux. Note that this utility may not be the only logic setting alarm states. The BMC firmware, system management soft­ ware, or cluster fault manager may also want to set alarm states. Intel provides a Telco Alarms Manager API which presents a consolidated interface for all alarm management 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. Note that this function may not be supported on all systems, and specifying it will display an error if unsupported. -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. -o Sets all alarms off, including the Chassis ID. -x Causes extra debug messages to be displayed. SEE ALSO showsel(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of alarms and any bug fix list. WDT(8) WDT(8) NAME wdt - display and set WatchDog Timer parameters SYNOPSIS wdt [-d -e -r -t -x] 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 MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from val­ inux. Note that the device-independent way to manipulate watch­ dog timers in Linux is to use the /dev/watchdog interface. This utility is an example of how to access the IPMI watchdog parameters directly. OPTIONS Command line options are described below. -d Disables the watchdog timer. -e Enables the watchdog timer. The timer is not actu­ ally started, however, until the timer is reset. The pre-timeout action is not enabled. -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 seconds (2 minutes). -x Causes extra debug messages to be displayed. SEE ALSO showsel(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver­ sion of wdt and any bug fix list. ICMD(8) ICMD(8) NAME icmd - a tool to send specific IPMI commands via the com- mand line. SYNOPSIS icmd [-x] rsSa netFn/lun cmd bus [data bytes] DESCRIPTION icmd This tool sends specific IPMI commands to the firmware. The commands are composed as hex values on the command line. This tool was written to allow in-band use to match the DOS IPMITOOL.EXE program which is distributed with many Intel servers. Certain 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 MontaVista, the /dev/imb driver from Intel, or the /dev/ipmikcs driver from valinux. 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. -x Causes extra debug messages to be displayed. PARAMETERS The following parameters are used by icmd. Each is repre- sented as a two-digit hex byte. The parameters have no default values. rsSa This is the resource slave address, usually 0x20 for the BMC. netFn/lun This byte combines the net Function and Lun. The 2 low-order bits are the Lun and the 6 high-order bits are the net Function. This representation is consistent with the DOS IPMITOOL.EXE. cmd This byte contains the IPMI command. bus This byte contains the bus number for this command, usually 00. [data bytes] This is a sequence of zero to 16 bytes that repre- sent data bytes specific to this command. EXAMPLES icmd 20 18 01 00 Sends the GetDevice ID command to the BMC. icmd 20 28 43 00 00 00 ff ff 00 ff Sends a Get SEL entry command for the last entry in the firmware log. SEE ALSO showsel(8) WARNINGS See http://panicsel.sourceforge.net/ for the latest ver- sion of icmd and any bug fix list. -------------------------- 4.0 USE CASES -------------------------- For IPMI utilities: 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 = 21 OK 33.00 degrees C hi-crit 65.00 hi-noncr 60.00 lo-crit 5.00 lo-noncr 10.00 [...] Using sensnum 30 and the hex raw reading (21) as a baseline from above. # sensor -t -n 0x30 -l 0x0a [...] GetThreshold[30]: 30 1b 0a 05 00 3c 41 00 SetThreshold[30]: 30 03 0c 0b 0a 00 00 00 SetSensorThreshold[30] to lo=0a hi=ff, ret = 0 # This sets the lower non-crit to 12 C, and lower crit to 11 C. 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 [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] [ssh connection] # gpg --import mykey.file # mynode=`uname -n` # my_enc_psw=`grep $mynode |cut -f2` # pefconfig -P `gpg --decrypt $my_enc_psw` [ssh exit] For 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 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. -------------------------- 5.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 panicsel-developer mailing list: http://lists.sourceforge.net/lists/listinfo/panicsel-developers Return code = 0 means success, negative numbers indicate failure. Completion Codes are defined in IPMI 1.5, Table 5-2, and are also included below: Code Description ---- ----------------------------------------- 0x00, "Command completed successfully", 0xC0, "Node Busy", 0xC1, "Invalid Command", 0xC2, "Command invalid for given LUN", 0xC3, "Timeout while processing command", 0xC4, "Out of space", 0xC5, "Invalid Reservarion ID, or cancelled", 0xC6, "Request data truncated", 0xC7, "Request data length invalid", 0xC8, "Request data field length limit exceeded", 0xC9, "Parameter out of range", 0xCA, "Cannot return requested number of data bytes", 0xCB, "Requested sensor, data, or record not present", 0xCC, "Invalid data field in request", 0xCD, "Command illegal for this sensor/record type", 0xCE, "Command response could not be provided", 0xCF, "Cannot execute duplicated request", 0xD0, "SDR Repository in update mode, no response", 0xD1, "Device in firmware update mode, no response", 0xD2, "BMC initialization in progress, no response", 0xD3, "Destination unavailable", 0xD4, "Cannot execute command. Insufficient privilege level", 0xD5, "Cannot execute command. Request parameters not supported", 0xFF, "Unspecified error" -------------------------- 6.0 MORE INFORMATION -------------------------- panicsel project on sourceforge http://panicsel.sourceforge.net Carrier Grade Linux Working Group http://www.osdl.org/projects/cgl/ Carrier Grade Linux Edition http://developer.osdl.org Intel Carrier Linux Technology http://carrierlinux.org/ IPMI Specification http://www.intel.com/design/servers/ipmi/index.htm OpenIPMI project http://sourceforge.net/projects/openipmi/ by Corey Minyard of MontaVista (home=http://openipmi.sourceforge.net) Intel imb ipmidrvr http://downloadfinder.intel.com/scripts-df/Product_Search.asp?Prod_nm=ipmi*driver*source valinux IPMI driver http://cvs.sf.net/cgi-bin/viewcvs.cgi/ipmitools/ipmitools/kernel/kcs/patches/2.4.x/ Intel/Radisys combined IPMI driver http://cvs.developer.osdl.org/viewcvs/viewcvs.cgi/kernel/linux-2.4.18/patches/ipmi_comb/ BMC WatchDog Timer patch http://cvs.developer.osdl.org/viewcvs/viewcvs.cgi/kernel/linux-2.4.18/patches/bmcwdt/ San Mehat's ipmitools project http://sourceforge.net/projects/ipmitools/ FreeIPMI project http://sourceforge.net/projects/freeipmi/ IPMI-BSD project http://sourceforge.net/projects/ipmi-bsd/ PHP Poor-Man's Sys Mgt Software http://sourceforge.net/projects/phppmsms/ lm-sensors project http://secure.netroedge.com/~lm78/