diff options
-rw-r--r-- | AUTHORS | 6 | ||||
-rw-r--r-- | ChangeLog | 11 | ||||
-rwxr-xr-x | configure | 20 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | debpkg/changelog | 6 | ||||
-rw-r--r-- | doc/Makefile | 29 | ||||
-rw-r--r-- | doc/Makefile.am | 1 | ||||
-rw-r--r-- | doc/Makefile.in | 1 | ||||
-rw-r--r-- | doc/UserGuide | 95 | ||||
-rw-r--r-- | doc/iekanalyzer.8 | 2 | ||||
-rw-r--r-- | doc/ifru.8 | 4 | ||||
-rw-r--r-- | doc/ifruset.8 | 2 | ||||
-rw-r--r-- | doc/ipmiutil.spec | 10 | ||||
-rw-r--r-- | doc/isel.8 | 4 | ||||
-rw-r--r-- | doc/iseltime.8 | 68 | ||||
-rw-r--r-- | doc/isensor.8 | 4 | ||||
-rw-r--r-- | lib/Makefile | 28 | ||||
-rw-r--r-- | lib/lanplus/Makefile.am | 4 | ||||
-rw-r--r-- | lib/lanplus/Makefile.in | 3 | ||||
-rw-r--r-- | lib/libipmiutil.pc | 2 | ||||
-rw-r--r-- | scripts/Makefile | 28 | ||||
-rwxr-xr-x | setver | 2 | ||||
-rw-r--r-- | util/Makefile.am | 111 | ||||
-rw-r--r-- | util/Makefile.in | 111 | ||||
-rw-r--r-- | util/ievents.c | 2 | ||||
-rw-r--r-- | util/ifru.c | 45 | ||||
-rw-r--r-- | util/ifruset.c | 37 | ||||
-rw-r--r-- | util/ipmicmd.c | 9 | ||||
-rw-r--r-- | util/ipmilan.h | 3 | ||||
-rw-r--r-- | util/ipmiutil.c | 2 | ||||
-rw-r--r-- | util/isel.c | 2 | ||||
-rw-r--r-- | util/isensor.c | 5 |
32 files changed, 391 insertions, 268 deletions
@@ -5,6 +5,8 @@ util/AnsiTerm.cpp util/oem_dell.c Harsha S <Harsha_S1 at dell.com> util/ihpm.c - Frederic.Lelievre@ca.kontron.com, Francois.Isabelle@ca.kontron.com, - Jean-Michel.Audet@ca.kontron.com, MarieJosee.Blais@ca.kontron.com + Frederic.Lelievre at ca.kontron.com, + Francois.Isabelle at ca.kontron.com, + Jean-Michel.Audet at ca.kontron.com, + MarieJosee.Blais at ca.kontron.com @@ -4318,6 +4318,15 @@ wdt.8 iwdt.8 (ipmiutil wdt) util/ievents.c - add decode_mem_default routine for AMI,HP mem events not handled by existing oem routines (SFBug#32) -05/15/2018 ARCress ipmiutil-3.1.1 changes (iver 3.11) +05/31/2018 ARCress ipmiutil-3.1.1 changes (iver 3.11) scripts/ipmi.init.basic - add acpi_ipmi module handling util/ifru.c - if C5, get reservation again on retry (SFBug#33) + +07/20/2018 ARCress ipmiutil-3.1.2 changes (iver 3.12) + util/ifruset.c - fopen("wb") ifdef WIN32, + fix sz calc for multi-record area, + show -y (doanyway) option in usage, + add invalid type/len check for mult-record area + util/ifru.c - add invalid type/len check for mult-record area + doc/iseltime.8 - new (was in UserGuide), added for RHBZ#1600386 + util/Makefile.am - added $(EXEEXT) to all targets for RHBZ#1604378 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for ipmiutil 3.1.1. +# Generated by GNU Autoconf 2.63 for ipmiutil 3.1.2. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. @@ -743,8 +743,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='ipmiutil' PACKAGE_TARNAME='ipmiutil' -PACKAGE_VERSION='3.1.1' -PACKAGE_STRING='ipmiutil 3.1.1' +PACKAGE_VERSION='3.1.2' +PACKAGE_STRING='ipmiutil 3.1.2' PACKAGE_BUGREPORT='' ac_unique_file="util/ipmiutil.c" @@ -1503,7 +1503,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ipmiutil 3.1.1 to adapt to many kinds of systems. +\`configure' configures ipmiutil 3.1.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1573,7 +1573,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ipmiutil 3.1.1:";; + short | recursive ) echo "Configuration of ipmiutil 3.1.2:";; esac cat <<\_ACEOF @@ -1683,7 +1683,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ipmiutil configure 3.1.1 +ipmiutil configure 3.1.2 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1697,7 +1697,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ipmiutil $as_me 3.1.1, which was +It was created by ipmiutil $as_me 3.1.2, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -2551,7 +2551,7 @@ fi # Define the identity of the package. PACKAGE='ipmiutil' - VERSION='3.1.1' + VERSION='3.1.2' cat >>confdefs.h <<_ACEOF @@ -13957,7 +13957,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ipmiutil $as_me 3.1.1, which was +This file was extended by ipmiutil $as_me 3.1.2, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14020,7 +14020,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -ipmiutil config.status 3.1.1 +ipmiutil config.status 3.1.2 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index edd4d56..65c6576 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(ipmiutil,3.1.1) +AC_INIT(ipmiutil,3.1.2) AC_CONFIG_SRCDIR(util/ipmiutil.c) echo "ipmiutil version ${PACKAGE_VERSION}" AC_CONFIG_HEADERS(config.h) diff --git a/debpkg/changelog b/debpkg/changelog index 9e8a8e7..6254d00 100644 --- a/debpkg/changelog +++ b/debpkg/changelog @@ -1,3 +1,9 @@ +ipmiutil (3.1.2-1) unstable; urgency=low + + * New upstream version. + + -- Andy Cress <arcress@users.sourceforge.net> Fri, 06 Jul 2018 13:24:02 -0400 + ipmiutil (3.1.1-1) unstable; urgency=low * New upstream version. diff --git a/doc/Makefile b/doc/Makefile index 8486cb1..744aae1 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -46,12 +46,12 @@ CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run aclocal-1.11 -AMTAR = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run tar +ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run aclocal-1.11 +AMTAR = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run tar AR = ar -AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run autoconf -AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run autoheader -AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run automake-1.11 +AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run autoconf +AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run autoheader +AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run automake-1.11 AWK = gawk CC = gcc CCDEPMODE = depmode=gcc3 @@ -99,7 +99,7 @@ LIB_DIR = /usr/lib64 LIPO = LN_S = ln -s LTLIBOBJS = -MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run makeinfo +MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run makeinfo MKDIR_P = /bin/mkdir -p NM = /usr/bin/nm -B NMEDIT = @@ -113,9 +113,9 @@ OTOOL64 = PACKAGE = ipmiutil PACKAGE_BUGREPORT = PACKAGE_NAME = ipmiutil -PACKAGE_STRING = ipmiutil 3.1.1 +PACKAGE_STRING = ipmiutil 3.1.2 PACKAGE_TARNAME = ipmiutil -PACKAGE_VERSION = 3.1.1 +PACKAGE_VERSION = 3.1.2 PATH_SEPARATOR = : PKG_DIR = /root/rpmbuild RANLIB = ranlib @@ -127,11 +127,11 @@ SHR_LINK = libipmiutil.so.1 STRIP = strip SUBDIR_S = doc scripts lib util SYSTEMD_DIR = /usr/share/ipmiutil -VERSION = 3.1.1 -abs_builddir = /usr/dev/ipmiutil-3.1.1/doc -abs_srcdir = /usr/dev/ipmiutil-3.1.1/doc -abs_top_builddir = /usr/dev/ipmiutil-3.1.1 -abs_top_srcdir = /usr/dev/ipmiutil-3.1.1 +VERSION = 3.1.2 +abs_builddir = /usr/dev/ipmiutil-3.1.2/doc +abs_srcdir = /usr/dev/ipmiutil-3.1.2/doc +abs_top_builddir = /usr/dev/ipmiutil-3.1.2 +abs_top_srcdir = /usr/dev/ipmiutil-3.1.2 ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include @@ -159,7 +159,7 @@ host_vendor = redhat htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /usr/dev/ipmiutil-3.1.1/install-sh +install_sh = ${SHELL} /usr/dev/ipmiutil-3.1.2/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale @@ -415,6 +415,7 @@ install: ${INSTALL_DATA_SH} idcmi.8 ${manto} ${INSTALL_DATA_SH} ismcoem.8 ${manto} ${INSTALL_DATA_SH} iuser.8 ${manto} + ${INSTALL_DATA_SH} iseltime.8 ${manto} ${INSTALL_DATA_SH} bmclanpet.mib ${datato} cd ${manto}; gzip -f *.8 diff --git a/doc/Makefile.am b/doc/Makefile.am index 632cc49..b792762 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -57,6 +57,7 @@ install: ${INSTALL_DATA_SH} idcmi.8 ${manto} ${INSTALL_DATA_SH} ismcoem.8 ${manto} ${INSTALL_DATA_SH} iuser.8 ${manto} + ${INSTALL_DATA_SH} iseltime.8 ${manto} ${INSTALL_DATA_SH} bmclanpet.mib ${datato} cd ${manto}; gzip -f *.8 diff --git a/doc/Makefile.in b/doc/Makefile.in index 15917e8..3b9d20d 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -415,6 +415,7 @@ install: ${INSTALL_DATA_SH} idcmi.8 ${manto} ${INSTALL_DATA_SH} ismcoem.8 ${manto} ${INSTALL_DATA_SH} iuser.8 ${manto} + ${INSTALL_DATA_SH} iseltime.8 ${manto} ${INSTALL_DATA_SH} bmclanpet.mib ${datato} cd ${manto}; gzip -f *.8 diff --git a/doc/UserGuide b/doc/UserGuide index 7f7b705..ee16696 100644 --- a/doc/UserGuide +++ b/doc/UserGuide @@ -1,6 +1,6 @@ IPMIUTIL USER GUIDE - VERSION 3.1.1 + VERSION 3.1.2 An easy-to-use IPMI server management utility @@ -2955,6 +2955,9 @@ OPTIONS -x Causes eXtra debug messages to be displayed. + -y Ignore the check for FRU size overflow, and update the FRU any- + way. + -N nodename Nodename or IP address of the remote target system. If a node- name is specified, IPMI LAN interface is used. Otherwise the @@ -4512,76 +4515,81 @@ ISELTIME(8) ISELTIME(8) NAME - iseltime - synchronize BMC SEL time with OS system time + iseltime - synchronize BIOS RTC and firmware SEL time from system time SYNOPSIS - seltime [-sx -NUPRETVF] + iseltime [-sx -N node -U user -P/-R pswd -EFJTVYZ] DESCRIPTION - seltime is a program that uses IPMI commands to set the BMC SEL time - from the OS system time. The OS system time should be in sync with the - BIOS Real-Time-Clock. The OS system time may also be kept from drift- - ing via an NTP server. Normally the BIOS will set the BMC time from - the RTC during boot, but running this command may be necessary periodi- - cally if the system does not reboot for many weeks, for instance. Note - that this command should not be run too frequently to avoid BMC timing - issues. Once per day should be sufficient. - - Run with no options, this command reads the BMC SEL time without set- - ting anything. + iseltime is a program that allows synchronizing the hardware time val- + ues for RTC (BIOS Real-Time-Clock) and SEL (IPMI firmware SEL time) + with the OS system time. Run without options, iseltime shows each of + these times to show whether they are the same or not. - This utility can use either the /dev/ipmi0 openipmi driver, the - /dev/imb Intel driver, the /dev/ipmikcs valinux driver, a driverless - interface, or IPMI LAN. + The OS system time should be in sync with the BIOS Real-Time-Clock. + The OS system time may also be kept from drifting via an NTP server. + Normally the BIOS will set the firmware SEL time from the RTC during + boot, but running this command may be necessary periodically if the + system does not reboot for a long time, for instance. Note that some + applications may not handle setting the time backward well. Note that + this command should not be run too frequently to avoid firmware timing + issues. It should not be set more than once per day. OPTIONS - -s Sets the SEL time (no more than once a day). + Command line options are described below. - -x Causes eXtra debug messages to be displayed. + -s Set the RTC and IPMI firmware SEL time to match the system time. + This should not be performed more often than once a day. - -N nodename - Nodename of the remote target system. If a nodename is speci- - fied, IPMI LAN interface is used. Otherwise the local system - management interface is used. + -x Causes eXtra debug messages to be displayed. - -P/-R password - Remote password for the nodename given. The default is a null - password. + -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 username + -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_PASSWORD. -F drv_t - Force the driver type to one of the followng: imb, va, open, + 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 + 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, + -J Use the specified LanPlus cipher suite (0 thru 17): + 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. + 6=md5/none/none, ... 14=md5/md5/xrc4_40. Default is 3. - -T Use a specified IPMI LAN Authentication Type: 0=None, 1=MD2, + -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, + -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. + -Y Yes, do prompt the user for the IPMI LAN remote password. Alternatives for the password are -E or -P. + -Z Set the slave address for a local MC + SEE ALSO - ipmiutil(8) isel(8) ievents(8) icmd(8) + ipmiutil(8) ialarms(8) iconfig(8) icmd(8) idiscover(8) ievents(8) + igetevent(8) ihealth(8) ilan(8) ireset(8) isel(8) isensor(8) iserial(8) + isol(8) iwdt(8) WARNINGS @@ -5354,14 +5362,8 @@ require this step. 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% +If using the ipmiutil*.msi, it will automatically install. +If using the ipmiutil*.zip, then run the install.cmd to install it. The usage of ipmiutil in Windows is the same as in Linux OS, with the exception of drivers: @@ -6294,6 +6296,11 @@ using the ipmiutil library. 8.1 Build instructions for Linux +Prerequisite packages to build the binaries (make): + autoconf automake libopenssl-devel gcc gcc-c++ libtool +Prerequisite packages to make the rpm (make rpm): + rpm rpm-build + To build with some GPL code: If you are building ipmiutil for open-source, then the MD2 hash for IPMI LAN and the valinux driver interface (/dev/ipmikcs) can diff --git a/doc/iekanalyzer.8 b/doc/iekanalyzer.8 index c4ca1e2..4726845 100644 --- a/doc/iekanalyzer.8 +++ b/doc/iekanalyzer.8 @@ -10,6 +10,8 @@ ipmiutil_ekanalyzer \- run FRU-Ekeying analyzer with FRU files is a program that analyzes FRU Ekeying information from files saved from PICMG IPMI systems. +This function is disabled by default in ipmiutil-2.9.9 and later. + .br \fIekanalyzer\fP \fBcommand\fR \fBxx=filename1\fR \fBxx=filename2\fR [\fBrc=filename3\fR] .br @@ -2,7 +2,7 @@ .SH NAME ipmiutil_fru \- show Field Replacable Unit configuration data .SH SYNOPSIS -.B "ipmiutil fru [-abcdeikmsvx -N node -U user -P/-R pswd -EFJTVY]" +.B "ipmiutil fru [-abcdeikmsvx -N node -U user -P/-R pswd -EFJTVYZ]" .SH DESCRIPTION .I ipmiutil fru @@ -87,6 +87,8 @@ Use a specified IPMI LAN privilege level. 1=Callback level, 2=User level, 3=Oper .IP "-Y" Yes, do prompt the user for the IPMI LAN remote password. Alternatives for the password are \-E or \-P. +.IP "-Z" +Set the slave address for a local MC .SH "SEE ALSO" diff --git a/doc/ifruset.8 b/doc/ifruset.8 index 9f72eda..9f9f7c1 100644 --- a/doc/ifruset.8 +++ b/doc/ifruset.8 @@ -71,6 +71,8 @@ The trailing character, if present, indicates SMI addressing if 's', or IPMB addressing if 'i' or not present. .IP "-x" Causes eXtra debug messages to be displayed. +.IP "-y" +Ignore the check for FRU size overflow, and update the FRU anyway. .IP "-N nodename" Nodename or IP address of the remote target system. If a nodename is specified, IPMI LAN interface is used. Otherwise the local system diff --git a/doc/ipmiutil.spec b/doc/ipmiutil.spec index 27b4b67..c1f0278 100644 --- a/doc/ipmiutil.spec +++ b/doc/ipmiutil.spec @@ -3,14 +3,14 @@ # Copyright (c) 2012 Andy Cress # Name: ipmiutil -Version: 3.1.1 +Version: 3.1.2 Release: 1%{?dist} Summary: Easy-to-use IPMI server management utilities License: BSD -Group: System/Management Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz URL: http://ipmiutil.sourceforge.net BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%define group System/Management # Suggests: cron or vixie-cron or cronie or similar %{!?_unitdir: %define _unitdir /usr/lib/systemd/system} %define unit_dir %{_unitdir} @@ -20,8 +20,8 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %define bldreq_extra libtool %if 0%{?fedora} >= 15 %define bldreq_extra systemd autoconf automake systemd-units +%define group System Environment/Base Requires: systemd-units -Group: System Environment/Base %if 0%{?fedora} == 16 %define unit_dir /lib/systemd/system %endif @@ -42,6 +42,7 @@ Group: System Environment/Base # Requires: %{?systemd_requires} %endif BuildRequires: %{bldreq0} %{bldreq_extra} +Group: %{group} %description The ipmiutil package provides easy-to-use utilities to view the SEL, @@ -170,6 +171,7 @@ rm -rf %{buildroot} %{_mandir}/man8/itsol.8* %{_mandir}/man8/idcmi.8* %{_mandir}/man8/iuser.8* +%{_mandir}/man8/iseltime.8* %doc AUTHORS ChangeLog COPYING NEWS README TODO %doc doc/UserGuide @@ -373,6 +375,8 @@ fi %endif %changelog +* Fri Jul 20 2018 Andrew Cress <arcress at users.sourceforge.net> 3.1.2-1 +- resolve doubly-defined Group for Fedora * Mon Jun 29 2015 Andrew Cress <arcress at users.sourceforge.net> 2.9.7-1 - move libipmiutil.so from devel into ipmiutil base package (RH#1177213) * Mon Nov 03 2014 Andrew Cress <arcress at users.sourceforge.net> 2.9.5-1 @@ -2,7 +2,7 @@ .SH NAME ipmiutil_sel \- show firmware System Event Log records .SH SYNOPSIS -.B "ipmiutil sel [-abcflswvx -N node -P/-R pswd -U user -EFJTVY]" +.B "ipmiutil sel [-abcflswvx -N node -P/-R pswd -U user -EFJTVYZ]" .SH DESCRIPTION .I ipmiutil sel @@ -111,6 +111,8 @@ Use a specified IPMI LAN privilege level. 1=Callback level, 2=User level, 3=Oper .IP "-Y" Yes, do prompt the user for the IPMI LAN remote password. Alternatives for the password are \-E or \-P. +.IP "-Z" +Set the slave address for a local MC .SH "SEE ALSO" ipmiutil(8) ialarms(8) iconfig(8) icmd(8) idiscover(8) ievents(8) ifru(8) igetevent(8) ihealth(8) ilan(8) ireset(8) isensor(8) iserial(8) isol(8) iwdt(8) diff --git a/doc/iseltime.8 b/doc/iseltime.8 index eb9a705..1b51f0b 100644 --- a/doc/iseltime.8 +++ b/doc/iseltime.8 @@ -1,53 +1,53 @@ -.TH ISELTIME 8 "Version 1.0: 01 Apr 2013" +.TH ISELTIME 8 "Version 1.0: 13 Jul 2018" .SH NAME -iseltime \- synchronize BMC SEL time with OS system time +iseltime \- synchronize BIOS RTC and firmware SEL time from system time .SH SYNOPSIS -.B "seltime [-sx -NUPRETVF]" +.B "iseltime [-sx -N node -U user -P/-R pswd -EFJTVYZ]" .SH DESCRIPTION -.I seltime -is a program that uses IPMI commands to -set the BMC SEL time from the OS system time. -The OS system time should be in sync with the BIOS Real-Time-Clock. -The OS system time may also be kept from drifting via an NTP server. -Normally the BIOS will set the BMC time from the RTC during boot, but -running this command may be necessary periodically if the system -does not reboot for many weeks, for instance. -Note that this command should not be run too frequently to avoid -BMC timing issues. Once per day should be sufficient. +.I iseltime +is a program that allows synchronizing the hardware time values for +RTC (BIOS Real-Time-Clock) and SEL (IPMI firmware SEL time) with +the OS system time. Run without options, iseltime shows each of these times +to show whether they are the same or not. -Run with no options, this command reads the BMC SEL time without -setting anything. - -This utility can use either the /dev/ipmi0 openipmi driver, -the /dev/imb Intel driver, the /dev/ipmikcs valinux driver, -a driverless interface, or IPMI LAN. +The OS system time should be in sync with the BIOS Real-Time-Clock. +The OS system time may also be kept from drifting via an NTP server. +Normally the BIOS will set the firmware SEL time from the RTC during boot, +but running this command may be necessary periodically if the system does +not reboot for a long time, for instance. +Note that some applications may not handle setting the time backward well. +Note that this command should not be run too frequently to avoid firmware +timing issues. It should not be set more than once per day. .SH OPTIONS -.IP "-s" -Sets the SEL time (no more than once a day). +Command line options are described below. +.IP "-s" +Set the RTC and IPMI firmware SEL time to match the system time. +This should not be performed more often than once a day. + .IP "-x" Causes eXtra debug messages to be displayed. - .IP "-N nodename" -Nodename of the remote target system. If a nodename is specified, -IPMI LAN interface is used. Otherwise the local system management -interface is used. -.IP "-P/-R password" -Remote password for the nodename given. The default is a null password. -.IP "-U username" +Nodename or IP address of the remote target system. If a nodename is +specified, IPMI LAN interface is used. Otherwise the local system +management interface is used. +.IP "-U rmt_user" Remote username for the nodename given. The default is a null username. +.IP "-P/-R rmt_pswd" +Remote password for the nodename given. The default is a null password. .IP "-E" Use the remote password from Environment variable IPMI_PASSWORD. .IP "-F drv_t" -Force the driver type to one of the followng: +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. .IP "-J" -Use the specified LanPlus cipher suite (0 thru 14): 0=none/none/none, +Use the specified LanPlus cipher suite (0 thru 17): 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. .IP "-T" Use a specified IPMI LAN Authentication Type: 0=None, 1=MD2, 2=MD5, 4=Straight Password, 5=OEM. .IP "-V" @@ -55,16 +55,18 @@ Use a specified IPMI LAN privilege level. 1=Callback level, 2=User level, 3=Oper .IP "-Y" Yes, do prompt the user for the IPMI LAN remote password. Alternatives for the password are -E or -P. +.IP "-Z" +Set the slave address for a local MC .SH "SEE ALSO" -ipmiutil(8) isel(8) ievents(8) icmd(8) +ipmiutil(8) ialarms(8) iconfig(8) icmd(8) idiscover(8) ievents(8) igetevent(8) ihealth(8) ilan(8) ireset(8) isel(8) isensor(8) iserial(8) isol(8) iwdt(8) .SH WARNINGS -See http://ipmiutil.sourceforge.net/ for the latest version of ipmiutil and any bug fix list. +See http://ipmiutil.sourceforge.net/ for the latest version of ipmiutil and any bug fix list. .SH COPYRIGHT -Copyright (C) 2013 Kontron America, Inc. +Copyright (C) 2009 Kontron America, Inc. .PP See the file COPYING in the distribution for more details regarding redistribution. diff --git a/doc/isensor.8 b/doc/isensor.8 index 1345f58..f17aedb 100644 --- a/doc/isensor.8 +++ b/doc/isensor.8 @@ -2,7 +2,7 @@ .SH NAME ipmiutil_sensor \- show Sensor Data Records .SH SYNOPSIS -.B "ipmiutil sensor [-abcdefgjkmpqrstuvwxL -i id -n snum -h tval -l tval -NUPREFJTVY]" +.B "ipmiutil sensor [-abcdefgjkmpqrstuvwxL -i id -n snum -h tval -l tval -NUPREFJTVYZ]" .SH DESCRIPTION .I ipmiutil sensor @@ -150,6 +150,8 @@ Use a specified IPMI LAN privilege level. 1=Callback level, 2=User level, 3=Oper .IP "-Y" Yes, do prompt the user for the IPMI LAN remote password. Alternatives for the password are \-E or \-P. +.IP "-Z" +Set the slave address for a local MC .SH "EXAMPLES" ipmiutil sensor sample output is below. diff --git a/lib/Makefile b/lib/Makefile index 00489fb..9eb78de 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -47,12 +47,12 @@ CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run aclocal-1.11 -AMTAR = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run tar +ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run aclocal-1.11 +AMTAR = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run tar AR = ar -AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run autoconf -AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run autoheader -AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run automake-1.11 +AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run autoconf +AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run autoheader +AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run automake-1.11 AWK = gawk CC = gcc CCDEPMODE = depmode=gcc3 @@ -101,7 +101,7 @@ LIB_DIR = /usr/lib64 LIPO = LN_S = ln -s LTLIBOBJS = -MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run makeinfo +MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run makeinfo MKDIR_P = /bin/mkdir -p NM = /usr/bin/nm -B NMEDIT = @@ -115,9 +115,9 @@ OTOOL64 = PACKAGE = ipmiutil PACKAGE_BUGREPORT = PACKAGE_NAME = ipmiutil -PACKAGE_STRING = ipmiutil 3.1.1 +PACKAGE_STRING = ipmiutil 3.1.2 PACKAGE_TARNAME = ipmiutil -PACKAGE_VERSION = 3.1.1 +PACKAGE_VERSION = 3.1.2 PATH_SEPARATOR = : PKG_DIR = /root/rpmbuild RANLIB = ranlib @@ -129,11 +129,11 @@ SHR_LINK = libipmiutil.so.1 STRIP = strip SUBDIR_S = doc scripts lib util SYSTEMD_DIR = /usr/share/ipmiutil -VERSION = 3.1.1 -abs_builddir = /usr/dev/ipmiutil-3.1.1/lib -abs_srcdir = /usr/dev/ipmiutil-3.1.1/lib -abs_top_builddir = /usr/dev/ipmiutil-3.1.1 -abs_top_srcdir = /usr/dev/ipmiutil-3.1.1 +VERSION = 3.1.2 +abs_builddir = /usr/dev/ipmiutil-3.1.2/lib +abs_srcdir = /usr/dev/ipmiutil-3.1.2/lib +abs_top_builddir = /usr/dev/ipmiutil-3.1.2 +abs_top_srcdir = /usr/dev/ipmiutil-3.1.2 ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include @@ -161,7 +161,7 @@ host_vendor = redhat htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /usr/dev/ipmiutil-3.1.1/install-sh +install_sh = ${SHELL} /usr/dev/ipmiutil-3.1.2/install-sh libdir = $(iprefix)/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale diff --git a/lib/lanplus/Makefile.am b/lib/lanplus/Makefile.am index c5394b1..94ae3ca 100644 --- a/lib/lanplus/Makefile.am +++ b/lib/lanplus/Makefile.am @@ -2,11 +2,9 @@ ODIR = obj CFLAGS_STATIC = @OS_CFLAGS@ -DSTATIC -fno-strict-aliasing -fPIC $(CFLAGS) -AM_CFLAGS = @OS_CFLAGS@ -fPIC @LANPLUS_CFLAGS@ +AM_CFLAGS = @OS_CFLAGS@ -fPIC @LANPLUS_CFLAGS@ -I. -I./inc MAINTAINERCLEANFILES = Makefile.in - -INCLUDES = -I. -I./inc lanplus_liba = libipmi_lanplus.a diff --git a/lib/lanplus/Makefile.in b/lib/lanplus/Makefile.in index 388b4f9..e09f0ab 100644 --- a/lib/lanplus/Makefile.in +++ b/lib/lanplus/Makefile.in @@ -234,9 +234,8 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ODIR = obj CFLAGS_STATIC = @OS_CFLAGS@ -DSTATIC -fno-strict-aliasing -fPIC $(CFLAGS) -AM_CFLAGS = @OS_CFLAGS@ -fPIC @LANPLUS_CFLAGS@ +AM_CFLAGS = @OS_CFLAGS@ -fPIC @LANPLUS_CFLAGS@ -I. -I./inc MAINTAINERCLEANFILES = Makefile.in -INCLUDES = -I. -I./inc lanplus_liba = libipmi_lanplus.a noinst_LIBRARIES = $(lanplus_liba) libipmi_lanplus_a_SOURCES = lanplus.c lanplus.h rmcp.h asf.h \ diff --git a/lib/libipmiutil.pc b/lib/libipmiutil.pc index 97613b6..9fa5d2e 100644 --- a/lib/libipmiutil.pc +++ b/lib/libipmiutil.pc @@ -8,6 +8,6 @@ nutuser=@RUN_AS_USER@ Name: libipmiutil Description: Library for ipmiutil -Version: 3.1.1 +Version: 3.1.2 Libs: -L${libdir} -lipmi_lanplus Cflags: -I${includedir} diff --git a/scripts/Makefile b/scripts/Makefile index 36c3148..dd52ce7 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -46,12 +46,12 @@ CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run aclocal-1.11 -AMTAR = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run tar +ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run aclocal-1.11 +AMTAR = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run tar AR = ar -AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run autoconf -AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run autoheader -AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run automake-1.11 +AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run autoconf +AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run autoheader +AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run automake-1.11 AWK = gawk CC = gcc CCDEPMODE = depmode=gcc3 @@ -99,7 +99,7 @@ LIB_DIR = /usr/lib64 LIPO = LN_S = ln -s LTLIBOBJS = -MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.1.1/missing --run makeinfo +MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.1.2/missing --run makeinfo MKDIR_P = /bin/mkdir -p NM = /usr/bin/nm -B NMEDIT = @@ -113,9 +113,9 @@ OTOOL64 = PACKAGE = ipmiutil PACKAGE_BUGREPORT = PACKAGE_NAME = ipmiutil -PACKAGE_STRING = ipmiutil 3.1.1 +PACKAGE_STRING = ipmiutil 3.1.2 PACKAGE_TARNAME = ipmiutil -PACKAGE_VERSION = 3.1.1 +PACKAGE_VERSION = 3.1.2 PATH_SEPARATOR = : PKG_DIR = /root/rpmbuild RANLIB = ranlib @@ -127,11 +127,11 @@ SHR_LINK = libipmiutil.so.1 STRIP = strip SUBDIR_S = doc scripts lib util SYSTEMD_DIR = /usr/share/ipmiutil -VERSION = 3.1.1 -abs_builddir = /usr/dev/ipmiutil-3.1.1/scripts -abs_srcdir = /usr/dev/ipmiutil-3.1.1/scripts -abs_top_builddir = /usr/dev/ipmiutil-3.1.1 -abs_top_srcdir = /usr/dev/ipmiutil-3.1.1 +VERSION = 3.1.2 +abs_builddir = /usr/dev/ipmiutil-3.1.2/scripts +abs_srcdir = /usr/dev/ipmiutil-3.1.2/scripts +abs_top_builddir = /usr/dev/ipmiutil-3.1.2 +abs_top_srcdir = /usr/dev/ipmiutil-3.1.2 ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include @@ -159,7 +159,7 @@ host_vendor = redhat htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /usr/dev/ipmiutil-3.1.1/install-sh +install_sh = ${SHELL} /usr/dev/ipmiutil-3.1.2/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale @@ -6,7 +6,7 @@ # [doinc?] is 'n'. # if [doinc?] is 'r', reverse increment (decrement). # -ver=3.1.1 +ver=3.1.2 rel=1 tmped=/tmp/edver.tmp tmpspec=/tmp/edspec.tmp diff --git a/util/Makefile.am b/util/Makefile.am index f8f0bab..e37e0ef 100644 --- a/util/Makefile.am +++ b/util/Makefile.am @@ -1,11 +1,11 @@ localedir = $(datadir)/locale -INCLUDES = -I.. OS_CF = @OS_CFLAGS@ @CROSS_CFLAGS@ OS_LF = @OS_LFLAGS@ @CROSS_LFLAGS@ -AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" +AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" -I.. AM_CPPFLAGS += @IA64_CFLAGS@ @GPL_CFLAGS@ LDADD = $(OS_LF) +# usu LD_SAMX = ../lib/libipmi_lanplus.a -lcrypto LDSAM = $(OS_LF) @LD_SAMX@ CFLAGS_SAMX = -O2 -g -I. -I.. $(OS_CF) @LANPLUS_CFLAGS@ CFLAGS_SAM = -O2 -g -I. -I.. $(OS_CF) @@ -22,10 +22,15 @@ CMDMOD += md5.c md2.c ipmilan.c CMDMOD += ipmilanplus.c # CMDMOD = ipmicmd.c mem_if.c @OS_DRIVERS@ # am: configure substitutions are not allowed in _SOURCES variables -LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o $(tmpobj)/ipmilan.o $(tmpobj)/ipmilanplus.o @LIBSENSORS@ +TMPOBJL = $(tmpobj)/ipmilanL.o $(tmpobj)/ipmilanplusL.o +TMPOBJA = $(tmpobj)/ipmilanA.o $(tmpobj)/ipmilanplusA.o +LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o @LIBSENSORS@ OEMMOD = oem_kontron.c oem_fujitsu.c oem_intel.c oem_sun.c oem_supermicro.c oem_dell.c oem_quanta.c oem_hp.c oem_newisys.c oem_lenovo.c oem_asus.c iekanalyzer.c +# usu SAM2OBJ = isensor2.o ievents2.o L2OBJ = @SAM2OBJ@ +# To build ipmiutil, need to use METACFLAGS for each .c/.o + AM_CPPFLAGS += -I. -I.. -DMETACOMMAND METASOURCE = ipmiutil.c ialarms.c ihealth.c ievents.c ifru.c ifru_picmg.c igetevent.c ireset.c icmd.c ilan.c isensor.c isel.c iserial.c iwdt.c isol.c idiscover.c iconfig.c ipicmg.c ifirewall.c ifwum.c ihpm.c itsol.c idcmi.c iuser.c $(OEMMOD) $(CMDMOD) LDADD += -lpthread @@ -77,60 +82,55 @@ libimbapi.a: imbapi.c $(RANLIB) libimbapi.a rm -f $(tmpobj)/imbapi.o +$(tmpobj)/ipmilanplusL.o: ipmilanplus.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplusL.o -c ipmilanplus.c; + +$(tmpobj)/ipmilanL.o: ipmilan.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanL.o -c ipmilan.c; + +$(tmpobj)/ipmilanplusA.o: ipmilanplus.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplusA.o -c ipmilanplus.c; + +$(tmpobj)/ipmilanA.o: ipmilan.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanA.o -c ipmilan.c; + # Build a lib to support all of the IPMI drivers (libipmiutil.a) # If LANPLUS_SAM = yes, include LANPLUS_OBJ, else do not. # See configure --enable-liblanplus to change this -$(DEV_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ - mkdir -p $(tmpobj) +$(DEV_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA) if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ ar x @LANPLUS_LIB@ ; \ - $(AR) cru $(DEV_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ + $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \ $(RANLIB) $(DEV_LIB); \ else \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ - $(AR) cru $(DEV_LIB) $(LIBOBJ) ; \ + $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJA) ; \ $(RANLIB) $(DEV_LIB) ; \ fi -$(SHR_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ - mkdir -p $(tmpobj) +$(SHR_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA) if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ ar x @LANPLUS_LIB@ ; \ - $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ + $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \ else \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ - $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) ; \ + $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJA) ; \ fi $(SHR_BLIB): $(SHR_LIB) ln -s $(SHR_LIB) $(SHR_BLIB) -# To build ipmiutil, need to use METACFLAGS for each .c/.o - idiscover$(EXEEXT): idiscover.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) $(OS_LF) -o idiscover idiscover.c -ipmimv: ipmimv.c +ipmimv$(EXEEXT): ipmimv.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) -DTEST_BIN -o ipmimv ipmimv.c ievents$(EXEEXT): ievents.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) -DALONE -o ievents ievents.c -ipmi_sample: $(DEV_LIB) ipmi_sample.c isensor.c ievents.c - $(CC) $(CFLAGS_SAM) -c ipmi_sample.c - $(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) - -ialarms_enc: $(DEV_LIB) ialarms.c oem_intel.c - $(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c - $(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c - $(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) - isensor2.o: isensor.c $(CC) $(CFLAGS_SAM) -o isensor2.o -c isensor.c @@ -140,32 +140,59 @@ ievents2.o: ievents.c ifru_picmg2.o: ifru_picmg.c $(CC) $(CFLAGS_SAM) -o ifru_picmg2.o -c ifru_picmg.c -# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o -# Note that this does not include oem_intel, etc. for OEM SEL decoding. -ipmi_sample2: $(DEV_LIB) ipmi_sample.c ifru.c isel.c ifru_picmg2.o $(L2OBJ) - $(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c +ifru2.o: ifru.c $(CC) $(CFLAGS_SAM) -o ifru2.o -c ifru.c + +isel2.o: isel.c $(CC) $(CFLAGS_SAM) -o isel2.o -c isel.c - $(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ipmi_sample_evt: $(DEV_LIB) ipmi_sample_evt.c $(L2OBJ) +ipmi_sample.o: ipmi_sample.c + $(CC) $(CFLAGS_SAM) -c ipmi_sample.c + +ipmi_sample2.o: ipmi_sample.c + $(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c + +ipmi_sample_evt.o: ipmi_sample_evt.c $(CC) $(CFLAGS_SAM) -o ipmi_sample_evt.o -c ipmi_sample_evt.c + +ipmi_sample$(EXEEXT): $(DEV_LIB) ipmi_sample.o isensor.o ievents.o + $(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o +# Note that this does not include oem_intel, etc. for OEM SEL decoding. +ipmi_sample2$(EXEEXT): $(DEV_LIB) ipmi_sample2.o ifru2.o isel2.o ifru_picmg2.o $(L2OBJ) + $(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ipmi_sample_evt$(EXEEXT): $(DEV_LIB) ipmi_sample_evt.o $(L2OBJ) $(CC) -g -O2 -o ipmi_sample_evt ipmi_sample_evt.o $(L2OBJ) $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ifruset: $(DEV_LIB) ifruset.c ifru_picmg2.o +ialarms2.o: ialarms.c + $(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c + +oem_intel2.o: oem_intel.c + $(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c + +ialarms_enc$(EXEEXT): $(DEV_LIB) ialarms2.o oem_intel2.o + $(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ifruset.o: ifruset.c $(CC) $(CFLAGS_SAM) -c ifruset.c + +ifruset$(EXEEXT): $(DEV_LIB) ifruset.o ifru_picmg2.o $(CC) -g -O2 -o ifruset ifruset.o ifru_picmg2.o $(DEV_LIB) $(LDFLAGS) $(LDADD) -iseltime: $(DEV_LIB) iseltime.c +iseltime.o: iseltime.c $(CC) $(CFLAGS_SAM) -c iseltime.c + +iseltime$(EXEEXT): $(DEV_LIB) iseltime.o $(CC) -g -O2 -o iseltime iseltime.o $(DEV_LIB) $(LDFLAGS) $(LDADD) +iconfig$(EXEEXT): iconfig.c $(DEV_LIB) + $(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ + ipmi_port$(EXEEXT): ipmi_port.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) -o ipmi_port ipmi_port.c -iconfig: iconfig.c $(DEV_LIB) - $(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ - # @LANPLUS_LIB@ is ../lib/libipmi_lanplus.a ../lib/libipmi_lanplus.a: cd ../lib; make diff --git a/util/Makefile.in b/util/Makefile.in index 08c6ba2..28cff49 100644 --- a/util/Makefile.in +++ b/util/Makefile.in @@ -253,10 +253,11 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = -I.. OS_CF = @OS_CFLAGS@ @CROSS_CFLAGS@ OS_LF = @OS_LFLAGS@ @CROSS_LFLAGS@ +# To build ipmiutil, need to use METACFLAGS for each .c/.o + # The LanDesk library is proprietary, so it is incompatible with ALLOW_GPL. # To build with LanDesk support: # First copy the library to ../lib/libipmiapi.a @@ -274,11 +275,12 @@ OS_LF = @OS_LFLAGS@ @CROSS_LFLAGS@ # LDADD += -L../lib -lipmi_lanplus -L/usr/local/lib -lcrypto # LDADD += -L../lib -lintf_lanplus -L/usr/local/lib -lcrypto (older) # Could also use CMDMOD += ipmilan2.c instead, if completed. -AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" @IA64_CFLAGS@ \ +AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" -I.. @IA64_CFLAGS@ \ @GPL_CFLAGS@ -I. -I.. -DMETACOMMAND @LANDESK_CFLAGS@ \ @LANPLUS_CFLAGS@ $(am__empty) LDADD = $(OS_LF) -lpthread @LANDESK_LDADD@ @LANPLUS_LIB@ \ @LANPLUS_CRYPTO@ $(am__empty) +# usu LD_SAMX = ../lib/libipmi_lanplus.a -lcrypto LDSAM = $(OS_LF) @LD_SAMX@ CFLAGS_SAMX = -O2 -g -I. -I.. $(OS_CF) @LANPLUS_CFLAGS@ CFLAGS_SAM = -O2 -g -I. -I.. $(OS_CF) @@ -294,8 +296,11 @@ CMDMOD = ipmicmd.c mem_if.c ipmidir.c imbapi.c ipmimv.c ipmild.c \ ipmilanplus.c # CMDMOD = ipmicmd.c mem_if.c @OS_DRIVERS@ # am: configure substitutions are not allowed in _SOURCES variables -LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o $(tmpobj)/ipmilan.o $(tmpobj)/ipmilanplus.o @LIBSENSORS@ +TMPOBJL = $(tmpobj)/ipmilanL.o $(tmpobj)/ipmilanplusL.o +TMPOBJA = $(tmpobj)/ipmilanA.o $(tmpobj)/ipmilanplusA.o +LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o @LIBSENSORS@ OEMMOD = oem_kontron.c oem_fujitsu.c oem_intel.c oem_sun.c oem_supermicro.c oem_dell.c oem_quanta.c oem_hp.c oem_newisys.c oem_lenovo.c oem_asus.c iekanalyzer.c +# usu SAM2OBJ = isensor2.o ievents2.o L2OBJ = @SAM2OBJ@ METASOURCE = ipmiutil.c ialarms.c ihealth.c ievents.c ifru.c ifru_picmg.c igetevent.c ireset.c icmd.c ilan.c isensor.c isel.c iserial.c iwdt.c isol.c idiscover.c iconfig.c ipicmg.c ifirewall.c ifwum.c ihpm.c itsol.c idcmi.c iuser.c $(OEMMOD) $(CMDMOD) LANPLUS_OBJ = $(shell ar t @LANPLUS_LIB@ 2>/dev/null) @@ -728,60 +733,55 @@ libimbapi.a: imbapi.c $(RANLIB) libimbapi.a rm -f $(tmpobj)/imbapi.o +$(tmpobj)/ipmilanplusL.o: ipmilanplus.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplusL.o -c ipmilanplus.c; + +$(tmpobj)/ipmilanL.o: ipmilan.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanL.o -c ipmilan.c; + +$(tmpobj)/ipmilanplusA.o: ipmilanplus.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplusA.o -c ipmilanplus.c; + +$(tmpobj)/ipmilanA.o: ipmilan.c + mkdir -p $(tmpobj) + $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanA.o -c ipmilan.c; + # Build a lib to support all of the IPMI drivers (libipmiutil.a) # If LANPLUS_SAM = yes, include LANPLUS_OBJ, else do not. # See configure --enable-liblanplus to change this -$(DEV_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ - mkdir -p $(tmpobj) +$(DEV_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA) if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ ar x @LANPLUS_LIB@ ; \ - $(AR) cru $(DEV_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ + $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \ $(RANLIB) $(DEV_LIB); \ else \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ - $(AR) cru $(DEV_LIB) $(LIBOBJ) ; \ + $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJA) ; \ $(RANLIB) $(DEV_LIB) ; \ fi -$(SHR_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ - mkdir -p $(tmpobj) +$(SHR_LIB): $(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA) if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ ar x @LANPLUS_LIB@ ; \ - $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ + $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \ else \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ - $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ - $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) ; \ + $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJA) ; \ fi $(SHR_BLIB): $(SHR_LIB) ln -s $(SHR_LIB) $(SHR_BLIB) -# To build ipmiutil, need to use METACFLAGS for each .c/.o - idiscover$(EXEEXT): idiscover.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) $(OS_LF) -o idiscover idiscover.c -ipmimv: ipmimv.c +ipmimv$(EXEEXT): ipmimv.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) -DTEST_BIN -o ipmimv ipmimv.c ievents$(EXEEXT): ievents.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) -DALONE -o ievents ievents.c -ipmi_sample: $(DEV_LIB) ipmi_sample.c isensor.c ievents.c - $(CC) $(CFLAGS_SAM) -c ipmi_sample.c - $(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) - -ialarms_enc: $(DEV_LIB) ialarms.c oem_intel.c - $(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c - $(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c - $(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) - isensor2.o: isensor.c $(CC) $(CFLAGS_SAM) -o isensor2.o -c isensor.c @@ -791,32 +791,59 @@ ievents2.o: ievents.c ifru_picmg2.o: ifru_picmg.c $(CC) $(CFLAGS_SAM) -o ifru_picmg2.o -c ifru_picmg.c -# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o -# Note that this does not include oem_intel, etc. for OEM SEL decoding. -ipmi_sample2: $(DEV_LIB) ipmi_sample.c ifru.c isel.c ifru_picmg2.o $(L2OBJ) - $(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c +ifru2.o: ifru.c $(CC) $(CFLAGS_SAM) -o ifru2.o -c ifru.c + +isel2.o: isel.c $(CC) $(CFLAGS_SAM) -o isel2.o -c isel.c - $(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ipmi_sample_evt: $(DEV_LIB) ipmi_sample_evt.c $(L2OBJ) +ipmi_sample.o: ipmi_sample.c + $(CC) $(CFLAGS_SAM) -c ipmi_sample.c + +ipmi_sample2.o: ipmi_sample.c + $(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c + +ipmi_sample_evt.o: ipmi_sample_evt.c $(CC) $(CFLAGS_SAM) -o ipmi_sample_evt.o -c ipmi_sample_evt.c + +ipmi_sample$(EXEEXT): $(DEV_LIB) ipmi_sample.o isensor.o ievents.o + $(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o +# Note that this does not include oem_intel, etc. for OEM SEL decoding. +ipmi_sample2$(EXEEXT): $(DEV_LIB) ipmi_sample2.o ifru2.o isel2.o ifru_picmg2.o $(L2OBJ) + $(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ipmi_sample_evt$(EXEEXT): $(DEV_LIB) ipmi_sample_evt.o $(L2OBJ) $(CC) -g -O2 -o ipmi_sample_evt ipmi_sample_evt.o $(L2OBJ) $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ifruset: $(DEV_LIB) ifruset.c ifru_picmg2.o +ialarms2.o: ialarms.c + $(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c + +oem_intel2.o: oem_intel.c + $(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c + +ialarms_enc$(EXEEXT): $(DEV_LIB) ialarms2.o oem_intel2.o + $(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ifruset.o: ifruset.c $(CC) $(CFLAGS_SAM) -c ifruset.c + +ifruset$(EXEEXT): $(DEV_LIB) ifruset.o ifru_picmg2.o $(CC) -g -O2 -o ifruset ifruset.o ifru_picmg2.o $(DEV_LIB) $(LDFLAGS) $(LDADD) -iseltime: $(DEV_LIB) iseltime.c +iseltime.o: iseltime.c $(CC) $(CFLAGS_SAM) -c iseltime.c + +iseltime$(EXEEXT): $(DEV_LIB) iseltime.o $(CC) -g -O2 -o iseltime iseltime.o $(DEV_LIB) $(LDFLAGS) $(LDADD) +iconfig$(EXEEXT): iconfig.c $(DEV_LIB) + $(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ + ipmi_port$(EXEEXT): ipmi_port.c $(CC) $(CFLAGS_SAM) $(LDFLAGS) -o ipmi_port ipmi_port.c -iconfig: iconfig.c $(DEV_LIB) - $(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ - # @LANPLUS_LIB@ is ../lib/libipmi_lanplus.a ../lib/libipmi_lanplus.a: cd ../lib; make diff --git a/util/ievents.c b/util/ievents.c index bb3a81f..3958138 100644 --- a/util/ievents.c +++ b/util/ievents.c @@ -80,7 +80,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. extern char *progver; /*from ipmiutil.c*/ static char * progname = "ipmiutil events"; #else -static char *progver = "3.11"; +static char *progver = "3.12"; static char *progname = "ievents"; #endif static char fsensdesc = 0; /* 1= get extended sensor descriptions*/ diff --git a/util/ifru.c b/util/ifru.c index 86e47bf..9b51aad 100644 --- a/util/ifru.c +++ b/util/ifru.c @@ -847,30 +847,31 @@ show_fru(uchar sa, uchar frudev, uchar frutype, uchar *pfrubuf) pfru0 = &pfrubuf[0]; /*pointer to fru start*/ pfru = &pfrubuf[0]; sz = 8; /*minimum for common header*/ - for (i = 1; i < 6; i++) /* walk thru offsets */ - if (pfrubuf[i] != 0) sz = pfrubuf[i] * 8; + for (i = 1; i < 6; i++) { /* walk thru offsets */ + if (pfrubuf[i] != 0) sz = pfrubuf[i] * 8; + } if (sz > 8) { /* if have at least one section */ - if (pfrubuf[5] != 0) j = 5 + pfrubuf[sz+2]; /*if multi-record area*/ - else j = pfrubuf[sz+1] * 8; /* else add length of last section */ - sz += j; + if (pfrubuf[5] != 0) j = 5 + pfrubuf[sz+2]; /*if multi-record area*/ + else j = pfrubuf[sz+1] * 8; /* else add length of last section */ + sz += j; } /* Now, sz = size used, sfru = total available size */ if (sz > sfru) { if (fdebug) { - uchar hsum; + uchar hsum; printf("FRU Header: "); for (i = 0; i < 8; i++) printf("%02x ",pfrubuf[i]); printf("\n"); hsum = calc_cksum(&pfrubuf[0],7); - if (pfrubuf[7] != hsum) + if (pfrubuf[7] != hsum) printf("FRU Header checksum mismatch (%x != %x)\n",pfrubuf[7],hsum); } printf("FRU size used=%d > available=%d\n",sz,sfru); if (fpicmg || fdoanyway) sz = sfru; /*do it anyway*/ else { printf("Please apply the correct FRU/SDR diskette\n"); - return(ERR_OTHER); + return(ERR_OTHER); } } /* internal area offset, length */ @@ -890,10 +891,11 @@ show_fru(uchar sa, uchar frudev, uchar frutype, uchar *pfrubuf) mlen = 0; if (moff > 0) { for (i = moff; i < sfru; ) { + if (pfrubuf[i] == 0 && pfrubuf[i+2] == 0) break; /*type/len invalid*/ j = 5 + pfrubuf[i+2]; - mlen += j; + mlen += j; if (pfrubuf[i+1] & 0x80) break; - i += j; + i += j; } } @@ -1057,8 +1059,9 @@ show_fru(uchar sa, uchar frudev, uchar frutype, uchar *pfrubuf) j = moff; for (i = 0; j < sz ; i++) { + if (pfru[0] == 0 && pfru[2] == 0) break; /*type/len invalid*/ n = pfru[2]; /* len of this record */ - show_fru_multi(devstr,i,pfru[0],&pfru[5],n); + show_fru_multi(devstr,i,pfru[0],&pfru[5],n); j += (5 + n); if (pfru[1] & 0x80) j = sz; /*0x80 = last in list, break*/ pfru += (5 + n); @@ -1770,7 +1773,7 @@ int i_fru(int argc, char **argv) parse_lan_options(c,optarg,fdebug); break; default: - printf("Usage: %s [-bceikmtvx -a asset_tag -s ser_num -NUPREFTVY]\n", + printf("Usage: %s [-bceikmtvx -a asset_tag -s ser_num -NUPREFTVYZ]\n", progname); printf(" -a tag Sets the Product Asset Tag\n"); printf(" -b Only show Baseboard FRU data\n"); @@ -2030,7 +2033,11 @@ int i_fru(int argc, char **argv) if (fdump && ret == 0) { /* Dump FRU to a binary file */ +#ifdef WIN32 + fp = fopen(binfile,"wb"); +#else fp = fopen(binfile,"w"); +#endif if (fp == NULL) { ret = get_LastError(); printf("Cannot open file %s, error %d\n",binfile,ret); @@ -2048,9 +2055,13 @@ int i_fru(int argc, char **argv) else if (frestore) { uchar cksum; /* Restore FRU from a binary file */ +#ifdef WIN32 + fp = fopen(binfile,"rb"); +#else fp = fopen(binfile,"r"); +#endif if (fp == NULL) { - ret = get_LastError(); + ret = get_LastError(); printf("Cannot open file %s, error %d\n",binfile,ret); } else { ret = 0; @@ -2077,10 +2088,10 @@ int i_fru(int argc, char **argv) free_fru(frubuf); } if (ret == 0) { /*successfully read data*/ - printf("Writing FRU size %d from %s ...\n",sfru,binfile); - ret = write_fru_data(g_fruid, 0, frubuf, sfru, fdebug); - free_fru(frubuf); - if (ret != 0) printf("write_fru error %d (0x%02x)\n",ret,ret); + printf("Writing FRU size %d from %s ...\n",sfru,binfile); + ret = write_fru_data(g_fruid, 0, frubuf, sfru, fdebug); + free_fru(frubuf); + if (ret != 0) printf("write_fru error %d (0x%02x)\n",ret,ret); else { /* successful, show new data */ ret = load_fru(sa,g_fruid,g_frutype,&pfru); if (ret != 0) show_loadfru_error(sa,g_fruid,ret); diff --git a/util/ifruset.c b/util/ifruset.c index b2f8b66..2d7617b 100644 --- a/util/ifruset.c +++ b/util/ifruset.c @@ -109,7 +109,7 @@ extern void fmt_time(time_t etime, char *buf, int bufsz); /*see ievents.c*/ extern char * progver; /*from ipmiutil.c*/ static char *progname = "ipmiutil fruset"; #else -static char * progver = "3.08"; +static char * progver = "3.12"; static char *progname = "ifruset"; #endif static char fdebug = 0; @@ -711,10 +711,14 @@ show_fru(uchar sa, uchar frudev, uchar frutype) */ pfru = &frubuf[0]; sz = 8; /*minimum for common header*/ - for (i = 1; i < 6; i++) /* walk thru offsets */ - if (frubuf[i] != 0) sz = frubuf[i] * 8; - if (sz > 8) /* if have at least one section */ - sz += frubuf[sz+1] * 8; /* add length of last section */ + for (i = 1; i < 6; i++) { /* walk thru offsets */ + if (frubuf[i] != 0) sz = frubuf[i] * 8; + } + if (sz > 8) { /* if have at least one section */ + if (frubuf[5] != 0) j = 5 + frubuf[sz+2]; /*if multi-record area*/ + else j = frubuf[sz+1] * 8; /* else add length of last section */ + sz += j; + } /* Now, sz = size used, sfru = total available size */ if (sz > sfru) { if (fdebug) { @@ -752,10 +756,11 @@ show_fru(uchar sa, uchar frudev, uchar frutype) mlen = 0; if (moff > 0) { for (i = moff; i < sfru; ) { - j = 5 + frubuf[i+2]; + if (frubuf[i] == 0 && frubuf[i+2] == 0) break; /*type/len invalid*/ + j = 5 + frubuf[i+2]; mlen += j; if (frubuf[i+1] & 0x80) break; - i += j; + i += j; } } @@ -897,8 +902,9 @@ show_fru(uchar sa, uchar frudev, uchar frutype) j = moff; for (i = 0; j < sz; i++) { + if (pfru[0] == 0 && pfru[2] == 0) break; /*type/len invalid*/ n = pfru[2]; /* len of this record */ - show_fru_multi(devstr,i,pfru[0],&pfru[5],n); + show_fru_multi(devstr,i,pfru[0],&pfru[5],n); j += (5 + n); if (pfru[1] & 0x80) j = sz; /*0x80 = end of list*/ pfru += (5 + n); @@ -1367,7 +1373,7 @@ main(int argc, char **argv) parse_lan_options(c,optarg,fdebug); break; default: - printf("Usage: %s [-bcimx -unpvsafo -NUPREFTVY]\n",progname); + printf("Usage: %s [-bcimxy -unpvsafo -NUPREFTVY]\n",progname); printf(" -u manu Sets Product Manufacturer (0)\n"); printf(" -n name Sets Product Name (1)\n"); printf(" -p part Sets Product Part Number (2)\n"); @@ -1382,8 +1388,9 @@ main(int argc, char **argv) printf(" -d Dump FRU to a file\n"); printf(" -r Restore FRU from a file\n"); printf(" -i 00 Get/Set a specific FRU ID\n"); - printf(" -m002000 specific MC (bus 00,sa 20,lun 00)\n"); + printf(" -m002000 specific MC (bus 00,sa 20,lun 00)\n"); printf(" -x Display extra debug messages\n"); + printf(" -y Ignore the check for FRU size overflow\n"); print_lan_opt_usage(0); ret = ERR_USAGE; goto do_exit; @@ -1567,7 +1574,11 @@ main(int argc, char **argv) if (fdump && ret == 0) { /* Dump FRU to a binary file */ +#ifdef WIN32 + fp = fopen(binfile,"wb"); +#else fp = fopen(binfile,"w"); +#endif if (fp == NULL) { ret = get_LastError(); printf("Cannot open file %s, error %d\n",binfile,ret); @@ -1583,9 +1594,13 @@ main(int argc, char **argv) } else if (frestore) { uchar cksum; /* Restore FRU from a binary file */ +#ifdef WIN32 + fp = fopen(binfile,"rb"); +#else fp = fopen(binfile,"r"); +#endif if (fp == NULL) { - ret = get_LastError(); + ret = get_LastError(); printf("Cannot open file %s, error %d\n",binfile,ret); } else { ret = 0; diff --git a/util/ipmicmd.c b/util/ipmicmd.c index b7c8a5f..f8ce1ba 100644 --- a/util/ipmicmd.c +++ b/util/ipmicmd.c @@ -90,6 +90,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif #include "ipmicmd.h" /* has NCMDS, ipmi_cmd_t */ +#include "ipmilan2.h" /*includes ipmilan.h also*/ ipmi_cmd_t ipmi_cmds[NCMDS] = { /*if add here, also change NCMDS in ipmicmd.h*/ {/*empty,temp*/ 0, BMC_SA, PUBLIC_BUS, NETFN_APP, BMC_LUN, 0, 20}, @@ -164,7 +165,6 @@ int ipmi_cmdraw_efi( uchar cmd, uchar netfn, uchar lun, uchar sa, uchar *presp, int *sresp, uchar *pcc, char fdebugcmd); #else -#include "ipmilan2.h" /*includes ipmilan.h also*/ #ifdef WIN32 extern int ipmi_cmdraw_ia( uchar cmd, uchar netfn, uchar lun, uchar sa, uchar bus, uchar *pdata, int sdata, @@ -1453,13 +1453,12 @@ char *get_nodename(void) return(gnode); } -extern int lasterr; /*defined in ipmilan.c */ -extern void show_LastError(char *tag, int err); - void show_outcome(char *prog, int ret) { + int err = 0; if (prog == NULL) prog = ""; - if (ret == -1 && lasterr != 0) show_LastError(prog,lasterr); + err = get_LastError(); + if (ret == -1 && err != 0) show_LastError(prog,err); printf("%s%c %s\n",prog,bcomma,decode_rv(ret)); } diff --git a/util/ipmilan.h b/util/ipmilan.h index 9a47efe..b25a55e 100644 --- a/util/ipmilan.h +++ b/util/ipmilan.h @@ -65,6 +65,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* see ipmicmd.h for LAN_ERR definitions */ +int get_LastError( void ); +void show_LastError(char *tag, int err); +void ipmi_lan_set_timeout(int ipmito, int tries, int pingto); int ipmi_open_lan(char *node, int port, char *user, char *pswd, int fdebugcmd); int ipmi_close_lan(char *node); int ipmi_flush_lan(char *node); diff --git a/util/ipmiutil.c b/util/ipmiutil.c index eea67d0..20ce7c3 100644 --- a/util/ipmiutil.c +++ b/util/ipmiutil.c @@ -57,7 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ipmiutil.h" static char *progname = "ipmiutil"; -char *progver = "3.11"; +char *progver = "3.12"; // static char fdebug = 0; /*int ipmiutil(int argc, char **argv); */ diff --git a/util/isel.c b/util/isel.c index 63a1d42..22e417c 100644 --- a/util/isel.c +++ b/util/isel.c @@ -719,7 +719,7 @@ int i_sel(int argc, char **argv) parse_lan_options(c,optarg,fdebug); break; default: - printf("Usage: %s [-bcdefmnprsuvwx] [-l 5] [-NUPREFTVY]\n", + printf("Usage: %s [-bcdefmnprsuvwx] [-l 5] [-NUPREFTVYZ]\n", progname); printf(" -b interpret Binary file with raw SEL data\n"); printf(" -c Show canonical output with delimiters\n"); diff --git a/util/isensor.c b/util/isensor.c index f140cdc..8bb2935 100644 --- a/util/isensor.c +++ b/util/isensor.c @@ -145,7 +145,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define N_SGRP 16 #define THR_EMPTY 999 -extern int get_LastError( void ); /* ipmilan.c */ +/* prototypes */ +int get_LastError( void ); /* ipmilan.c */ extern int use_devsdrs(int picmg); /* ipmicmd.c */ extern int get_MemDesc(int array, int dimm, char *desc, int *psz); /*mem_if.c*/ extern char *get_sensor_type_desc(uchar stype); /*ievents.c*/ @@ -3405,7 +3406,7 @@ int i_sensor(int argc, char **argv) parse_lan_options(c,optarg,fdebug); break; default: /*usage*/ - printf("Usage: %s [-abcdefghijlmnprstuvwxL -NUPREFTVY]\n",progname); + printf("Usage: %s [-abcdefghijlmnprstuvwxL -NUPREFTVYZ]\n",progname); printf("where -x shows eXtra debug messages\n"); printf(" -a snum reArms the sensor (snum) for events\n"); printf(" -b show Bladed child MCs for PICMG (same as -e)\n"); |