diff options
| author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2017-12-14 13:37:21 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2017-12-14 13:37:21 +0100 | 
| commit | 09863e30b4f27257be0299024d5a0de255f8ea84 (patch) | |
| tree | 4176d07d460e015deffa29b82a4164561ff413c6 | |
| parent | 715160edeb4dfc4335f8def440806ad0d5307fec (diff) | |
| parent | 1847c61e3994e17e1bd793a4fdc9f7860023826b (diff) | |
Merge branch 'release/3.0.7-1'3.0.7-1
60 files changed, 488 insertions, 188 deletions
| @@ -1,4 +1,5 @@  .bzr  .bzrignore  .pc +.git  debian/files @@ -4261,7 +4261,7 @@ wdt.8          iwdt.8       (ipmiutil wdt)      idiscover	(ipmiutil discover)  	 ver 1.11      ipmi_port	(ipmi_port)  	 ver 1.4 -04/24/2017 ARCress ipmiutil-3.0.4  changes (iver 3.04) +04/11/2017 ARCress ipmiutil-3.0.4  changes (iver 3.04)    util/ievents.c        - resolve type 0xDB printf warning (support #24)    util/iuser.c          - resolve compile warning    util/oem_dell.c       - resolve compile warning @@ -4270,3 +4270,30 @@ wdt.8          iwdt.8       (ipmiutil wdt)    util/isensor.c        - add simple param to decode_sensor_supermicro    util/AnsiTerm.cpp     - pick default instead of assert if bad SGR (#25) +06/06/2017 ARCress ipmiutil-3.0.5  changes (iver 3.05) +  util/isol.c           - set -V4 default if SUPERMICRO -a  +  util/ihealth.c        - retry if ccode 193 in get_power_state (SuperMicro) +  util/oem_supermicro.c - never trust SMC threshold status, check by value + +08/08/2017 ARCress ipmiutil-3.0.6  changes (iver 3.06) +  configure.ac          - AM_CONFIG_HEADER -> AC_CONFIG_HEADERS (automake 1.13) +  util/oem_supermicro.c - factory defaults detect if X11 (mode 3?), +  		                  handle inert VBAT sensor for X11DRi w units=0xC0, +  		                  OEM C8 = AC Power On asserted +  util/isensor.c        - show unit=0xC0 sensors as NotAvailable + +09/18/2017 ARCress ipmiutil-3.0.7  changes (iver 3.07) +  util/oem_supermicro.c - set typestr for some OEM events +  util/ievents.c        - added undefined OS Boot types 7, 8 for SuperMicro +  vcvars32.bat          - run vcvars from VCINSTALLDIR or VSINSTALLDIR +  vcvars64.bat          - run vcvars from VCINSTALLDIR or VSINSTALLDIR +  buildwin.cmd          - detect any 64 in LIBPATH, not just amd64 +  buildwin32.cmd        - new, only build 32bit +  buildwin64.cmd        - new, only build 64bit +  buildmin.cmd          - renamed from buildwin2.cmd (minimal), detect any 64 +  util/ipmiutil2.mak    - add oem_lenovo, oem_asus, iuser for minimal +  util/ipmiutil2-64.mak - add oem_lenovo, oem_asus, iuser for minimal +  doc/UserGuide         - document buildmin.cmd, separate section for WinPE +  util/icmd.c           - auto-request admin priv always if remote +  util/ihealth.c        - set do_powerstate=0 for Sun, continue if error + @@ -8355,18 +8355,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],       [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])  ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) -  # Do all the work for Automake.                             -*- Autoconf -*-  # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, diff --git a/buildwin2.cmd b/buildmin.cmd index c4fff81..bf40503 100644 --- a/buildwin2.cmd +++ b/buildmin.cmd @@ -1,6 +1,6 @@  @echo off
 -REM # buildwin2.cmd
 -REM #   build ipmiutil for windows in standalone mode
 +REM # buildmin32.cmd
 +REM #   build ipmiutil for windows in standalone mode (minimal, 32bit)
  REM #   without IPMI LAN 2.0 libraries, so no SOL.  Use for bootables.
  REM #
  REM # First download a copy of getopt.c getopt.h.
 @@ -14,14 +14,14 @@ set | findstr VCINSTALLDIR  if %errorlevel% EQU 1 goto vcerror
  set UTMAKE=ipmiutil2.mak
 -echo %LIBPATH% |findstr /C:amd64 >NUL
 +echo %LIBPATH% |findstr /C:64 >NUL
  if %errorlevel% EQU 0  set UTMAKE=ipmiutil2-64.mak
  cd util
  nmake /nologo -f %UTMAKE% all
  cd ..
 -echo buildwin2 ipmiutil done
 +echo buildmin %UTMAKE% done
  goto done
  :vcerror
 diff --git a/buildwin.cmd b/buildwin.cmd index 2057935..4a6eb8d 100644 --- a/buildwin.cmd +++ b/buildwin.cmd @@ -22,7 +22,7 @@ REM check for ssl includes  REM call mkssl
  set UTMAKE=ipmiutil.mak
 -echo %LIBPATH% |findstr /C:amd64 >NUL
 +echo %LIBPATH% |findstr /C:64 >NUL
  if %errorlevel% EQU 0  set UTMAKE=ipmiutil64.mak
  cd lib
 @@ -35,11 +35,12 @@ nmake /nologo -f %UTMAKE% all  cd ..
  REM # echo make util done
 -echo buildwin ipmiutil done
 +echo buildwin %UTMAKE% done
  goto done
  :vcerror
 -echo First need to run vcvars.bat
 +echo First need to run vcvars.bat 
 +echo Check that VCINSTALLDIR and LIBPATH are correct
  :done
 diff --git a/buildwin32.cmd b/buildwin32.cmd new file mode 100644 index 0000000..adc427b --- /dev/null +++ b/buildwin32.cmd @@ -0,0 +1,50 @@ +@echo off
 +REM # buildwin32.cmd
 +REM #   build ipmiutil for windows
 +REM #
 +REM # First download a copy of getopt.c getopt.h.
 +REM #   copy getopt.*   util
 +REM # Then download and build a copy of openssl for Windows,
 +REM # and copy the built openssl files needed to lib & inc.
 +REM #   copy libeay32.lib ssleay32.lib  lib
 +REM #   copy libeay32.dll ssleay32.dll  util
 +REM #   copy include\openssl\*.h   lib\lanplus\inc\openssl
 +REM #
 +REM # You should either run this from the Visual Studio Command Line, 
 +REM # or first run the appropriate vcvars.bat script.
 +set | findstr VCINSTALLDIR
 +if %errorlevel% EQU 1 goto vcerror
 +
 +call vcvars32.bat 
 +
 +REM TODO, prebuild checking:
 +REM check for getopt.c,h
 +REM check for ssl libs
 +REM check for ssl includes
 +REM call mkssl
 +
 +set UTMAKE=ipmiutil.mak
 +echo %LIBPATH% |findstr /C:64 >NUL
 +if %errorlevel% EQU 0 goto vcerror
 +
 +call cleanwin.cmd 
 +
 +cd lib
 +nmake /nologo -f ipmilib.mak all
 +cd ..
 +REM # echo make lib done
 +
 +cd util
 +nmake /nologo -f %UTMAKE% all
 +cd ..
 +REM # echo make util done
 +
 +echo buildwin32 ipmiutil done
 +goto done
 +
 +:vcerror
 +echo Either VCINSTALLDIR is missing or LIBPATH includes 64bit
 +echo Need to run vcvars32.bat for 32bit from a fresh session
 +
 +:done
 +
 diff --git a/buildwin64.cmd b/buildwin64.cmd new file mode 100644 index 0000000..ae61fbf --- /dev/null +++ b/buildwin64.cmd @@ -0,0 +1,50 @@ +@echo off
 +REM # buildwin.cmd
 +REM #   build ipmiutil for windows
 +REM #
 +REM # First download a copy of getopt.c getopt.h.
 +REM #   copy getopt.*   util
 +REM # Then download and build a copy of openssl for Windows,
 +REM # and copy the built openssl files needed to lib & inc.
 +REM #   copy libeay32.lib ssleay32.lib  lib
 +REM #   copy libeay32.dll ssleay32.dll  util
 +REM #   copy include\openssl\*.h   lib\lanplus\inc\openssl
 +REM #
 +REM # You should either run this from the Visual Studio Command Line, 
 +REM # or first run the appropriate vcvars.bat script.
 +set | findstr VCINSTALLDIR
 +if %errorlevel% EQU 1 goto vcerror
 +
 +call vcvars64.bat 
 +
 +REM TODO, prebuild checking:
 +REM check for getopt.c,h
 +REM check for ssl libs
 +REM check for ssl includes
 +REM call mkssl
 +
 +set UTMAKE=ipmiutil64.mak
 +echo %LIBPATH% |findstr /C:64 >NUL
 +if %errorlevel% EQU 1 goto vcerror
 +
 +call cleanwin.cmd 
 +
 +cd lib
 +nmake /nologo -f ipmilib.mak all
 +cd ..
 +REM # echo make lib done
 +
 +cd util
 +nmake /nologo -f %UTMAKE% all
 +cd ..
 +REM # echo make util done
 +
 +echo buildwin64 ipmiutil done
 +goto done
 +
 +:vcerror
 +echo Either VCINSTALLDIR is missing or LIBPATH does not include 64bit
 +echo Need to run vcvars64.bat for 64bit from a fresh session
 +
 +:done
 +
 @@ -1,6 +1,6 @@  #! /bin/sh  # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for ipmiutil 3.0.4. +# Generated by GNU Autoconf 2.63 for ipmiutil 3.0.7.  #  # 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.0.4' -PACKAGE_STRING='ipmiutil 3.0.4' +PACKAGE_VERSION='3.0.7' +PACKAGE_STRING='ipmiutil 3.0.7'  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.0.4 to adapt to many kinds of systems. +\`configure' configures ipmiutil 3.0.7 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.0.4:";; +     short | recursive ) echo "Configuration of ipmiutil 3.0.7:";;     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.0.4 +ipmiutil configure 3.0.7  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.0.4, which was +It was created by ipmiutil $as_me 3.0.7, 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.0.4' + VERSION='3.0.7'  cat >>confdefs.h <<_ACEOF @@ -13943,7 +13943,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.0.4, which was +This file was extended by ipmiutil $as_me 3.0.7, which was  generated by GNU Autoconf 2.63.  Invocation command line was    CONFIG_FILES    = $CONFIG_FILES @@ -14006,7 +14006,7 @@ Report bugs to <bug-autoconf@gnu.org>."  _ACEOF  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1  ac_cs_version="\\ -ipmiutil config.status 3.0.4 +ipmiutil config.status 3.0.7  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 9ba80e9..edbf6f2 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@  dnl Process this file with autoconf to produce a configure script. -AC_INIT(ipmiutil,3.0.4) +AC_INIT(ipmiutil,3.0.7)  AC_CONFIG_SRCDIR(util/ipmiutil.c)  echo "ipmiutil version ${PACKAGE_VERSION}" -AM_CONFIG_HEADER(config.h) +AC_CONFIG_HEADERS(config.h)  AC_PREFIX_DEFAULT(/usr)  AM_INIT_AUTOMAKE() diff --git a/debian/README.source b/debian/README.source index 4bc7a31..66d89d0 100644 --- a/debian/README.source +++ b/debian/README.source @@ -1,6 +1,26 @@  ipmiutil for Debian  ------------------- +Hello, + +now I use the branching model from Vincent Driessen[1]. + +I use the gitflow-avh[2]. with the Documentation[3]. +The Debian package can be found here[4]. + +Please upload unattended uploads use a branch feature/<your title>. + + +Many thanks. + +[1] http://nvie.com/posts/a-successful-git-branching-model/ +[2] https://github.com/petervanderdoes/gitflow-avh +[3] https://github.com/petervanderdoes/gitflow-avh/wiki +[4] https://tracker.debian.org/pkg/git-flow + + -- Jörg Frings-Fürst <debian@jff-webhosting.net>  Fri, 02 Jun 2017 19:00:40 +0200 + +  - configure      parameter enable-landesk=yes does not work:        ipmiapi not found diff --git a/debian/changelog b/debian/changelog index c8d4ce9..c02b2cd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -ipmiutil (3.0.4-1) UNRELEASED; urgency=medium +ipmiutil (3.0.7-1) unstable; urgency=medium    * New upstream release.    * Refresh patches: @@ -6,8 +6,13 @@ ipmiutil (3.0.4-1) UNRELEASED; urgency=medium      - debian/patches/0705-crontab.patch.    * New source.lintian-overrides to override ancient-libtool warning.      - With compat level 10 autoreconf called every time. +  * Add new section at README.source to explain the branching model used. +  * Declare compliance with Debian Policy 4.1.1. (No changes needed). +  * Drop autotools-dev from Build-Depends and drop "--with autotools-dev" +    from dh because this is already default when using dh compatibility +    level 10. - -- Jörg Frings-Fürst <debian@jff-webhosting.net>  Fri, 24 Feb 2017 21:19:36 +0100 + -- Jörg Frings-Fürst <debian@jff-webhosting.net>  Sat, 14 Oct 2017 19:41:11 +0200  ipmiutil (3.0.1-1) unstable; urgency=medium diff --git a/debian/control b/debian/control index 5cc948b..0322be5 100644 --- a/debian/control +++ b/debian/control @@ -3,13 +3,12 @@ Section: utils  Priority: optional  Maintainer: Jörg Frings-Fürst <debian@jff-webhosting.net>  Build-Depends: - autotools-dev,   debhelper (>= 10),   libfreeipmi-dev (>= 1.1.5) | libopenipmi-dev (>=2.0.18),   libssl-dev,   libtool-bin,   openssl -Standards-Version: 3.9.8 +Standards-Version: 4.1.1  Homepage: https://sourceforge.net/projects/ipmiutil/  Vcs-Git: https://anonscm.debian.org/cgit/collab-maint/ipmiutil.git  Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/ipmiutil.git diff --git a/debian/rules b/debian/rules index 3b00002..5b4d955 100755 --- a/debian/rules +++ b/debian/rules @@ -10,7 +10,7 @@ CFLAGS += -fPIC  CONFPARA = --enable-gpl --enable-useflags --enable-libsensors  %: -	dh $@  --with autotools-dev +	dh $@  override_dh_auto_configure:  	$(CURDIR)/beforeconf.sh diff --git a/debpkg/changelog b/debpkg/changelog index 247e8f8..728dcf0 100644 --- a/debpkg/changelog +++ b/debpkg/changelog @@ -1,3 +1,21 @@ +ipmiutil (3.0.7-1) unstable; urgency=low + +  * New upstream version. + + -- Andy Cress <arcress@users.sourceforge.net>  Wed, 20 Sep 2017 10:37:47 -0400 + +ipmiutil (3.0.6-1) unstable; urgency=low + +  * New upstream version. + + -- Andy Cress <arcress@users.sourceforge.net>  Mon, 07 Aug 2017 12:27:54 -0400 + +ipmiutil (3.0.5-1) unstable; urgency=low + +  * New upstream version. + + -- Andy Cress <arcress@users.sourceforge.net>  Tue, 06 Jun 2017 12:01:00 -0400 +  ipmiutil (3.0.4-1) unstable; urgency=low    * New upstream version. diff --git a/doc/Makefile b/doc/Makefile index 0f23c85..381c0dc 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.0.4/missing --run aclocal-1.11 -AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run tar +ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run aclocal-1.11 +AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run tar  AR = ar -AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run autoconf -AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run autoheader -AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run automake-1.11 +AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoconf +AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoheader +AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4/missing --run makeinfo +MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4 +PACKAGE_STRING = ipmiutil 3.0.7  PACKAGE_TARNAME = ipmiutil -PACKAGE_VERSION = 3.0.4 +PACKAGE_VERSION = 3.0.7  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.0.4 -abs_builddir = /usr/dev/ipmiutil-3.0.4/doc -abs_srcdir = /usr/dev/ipmiutil-3.0.4/doc -abs_top_builddir = /usr/dev/ipmiutil-3.0.4 -abs_top_srcdir = /usr/dev/ipmiutil-3.0.4 +VERSION = 3.0.7 +abs_builddir = /usr/dev/ipmiutil-3.0.7/doc +abs_srcdir = /usr/dev/ipmiutil-3.0.7/doc +abs_top_builddir = /usr/dev/ipmiutil-3.0.7 +abs_top_srcdir = /usr/dev/ipmiutil-3.0.7  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.0.4/install-sh +install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.7/install-sh  libdir = ${exec_prefix}/lib  libexecdir = ${exec_prefix}/libexec  localedir = ${datarootdir}/locale diff --git a/doc/UserGuide b/doc/UserGuide index eb86edc..e5681f1 100644 --- a/doc/UserGuide +++ b/doc/UserGuide @@ -1,6 +1,6 @@                    IPMIUTIL USER GUIDE  -                     VERSION 3.0.4 +                     VERSION 3.0.7           An easy-to-use IPMI server management utility @@ -5496,14 +5496,27 @@ or  C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat -5.2.7  Run buildwin.cmd -buildwin.cmd will build all of the Windows EXE and DLL files. +5.2.7  For Windows builds, run buildwin.cmd -If you are using ipmiutil for a bootable WinPE environment, and do not need -Serial-Over-LAN functionality, the buildwin2.cmd will build the Windows EXE  -files without using the openssl libraries, to simplify the process.  The  -openssl libraries are required for the IPMI LAN 2.0 crypto functions that -Serial-Over-LAN requires.   +buildwin.cmd will build all of the Windows EXE and DLL files. It will detect  +whether the vcvars has been run with 32bit or 64bit. + +buildwin32.cmd will build only the 32-bit Windows EXE and DLL files.  + +buildwin64.cmd will build only the 64-bit Windows EXE and DLL files.  + +5.2.8  For WinPE builds, run buildmin.cmd + +If you are using ipmiutil for a bootable WinPE environment, you will not need +Serial-Over-LAN functionality, the buildmin.cmd will build the Windows ipmiutil +EXE files without using the openssl libraries, to simplify the process.   +The openssl libraries are required for the IPMI LANplus 2.0 crypto functions  +that Serial-Over-LAN uses.   + +buildmin.cmd will build the ipmiutil.exe in a minimal standalone configuration. + +For WinPE 64-bit, if you do want openssl for some reason, see  +http://www.indyproject.org/Sockets/fpc/OpenSSLforWin64.en.aspx  ----------------------------------  5.3  WINDOWS COMMAND USAGE diff --git a/doc/ipmiutil.spec b/doc/ipmiutil.spec index 107d3e1..c6c39c2 100644 --- a/doc/ipmiutil.spec +++ b/doc/ipmiutil.spec @@ -3,7 +3,7 @@  # Copyright (c) 2012 Andy Cress  #  Name:      ipmiutil -Version: 3.0.4 +Version: 3.0.7  Release: 1%{?dist}  Summary:   Easy-to-use IPMI server management utilities  License:   BSD diff --git a/lib/Makefile b/lib/Makefile index 5cb97f6..93b57de 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.0.4/missing --run aclocal-1.11 -AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run tar +ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run aclocal-1.11 +AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run tar  AR = ar -AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run autoconf -AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run autoheader -AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run automake-1.11 +AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoconf +AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoheader +AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4/missing --run makeinfo +MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4 +PACKAGE_STRING = ipmiutil 3.0.7  PACKAGE_TARNAME = ipmiutil -PACKAGE_VERSION = 3.0.4 +PACKAGE_VERSION = 3.0.7  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.0.4 -abs_builddir = /usr/dev/ipmiutil-3.0.4/lib -abs_srcdir = /usr/dev/ipmiutil-3.0.4/lib -abs_top_builddir = /usr/dev/ipmiutil-3.0.4 -abs_top_srcdir = /usr/dev/ipmiutil-3.0.4 +VERSION = 3.0.7 +abs_builddir = /usr/dev/ipmiutil-3.0.7/lib +abs_srcdir = /usr/dev/ipmiutil-3.0.7/lib +abs_top_builddir = /usr/dev/ipmiutil-3.0.7 +abs_top_srcdir = /usr/dev/ipmiutil-3.0.7  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.0.4/install-sh +install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.7/install-sh  libdir = $(iprefix)/lib  libexecdir = ${exec_prefix}/libexec  localedir = ${datarootdir}/locale diff --git a/lib/libipmiutil.pc b/lib/libipmiutil.pc index 0f73ef4..53f78b8 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.0.4 +Version: 3.0.7  Libs: -L${libdir} -lipmi_lanplus  Cflags: -I${includedir} diff --git a/scripts/Makefile b/scripts/Makefile index cf2fddc..f0a4171 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.0.4/missing --run aclocal-1.11 -AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run tar +ACLOCAL = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run aclocal-1.11 +AMTAR = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run tar  AR = ar -AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run autoconf -AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run autoheader -AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.4/missing --run automake-1.11 +AUTOCONF = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoconf +AUTOHEADER = ${SHELL} /usr/dev/ipmiutil-3.0.7/missing --run autoheader +AUTOMAKE = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4/missing --run makeinfo +MAKEINFO = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4 +PACKAGE_STRING = ipmiutil 3.0.7  PACKAGE_TARNAME = ipmiutil -PACKAGE_VERSION = 3.0.4 +PACKAGE_VERSION = 3.0.7  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.0.4 -abs_builddir = /usr/dev/ipmiutil-3.0.4/scripts -abs_srcdir = /usr/dev/ipmiutil-3.0.4/scripts -abs_top_builddir = /usr/dev/ipmiutil-3.0.4 -abs_top_srcdir = /usr/dev/ipmiutil-3.0.4 +VERSION = 3.0.7 +abs_builddir = /usr/dev/ipmiutil-3.0.7/scripts +abs_srcdir = /usr/dev/ipmiutil-3.0.7/scripts +abs_top_builddir = /usr/dev/ipmiutil-3.0.7 +abs_top_srcdir = /usr/dev/ipmiutil-3.0.7  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.0.4/install-sh +install_sh = ${SHELL} /usr/dev/ipmiutil-3.0.7/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.0.4 +ver=3.0.7  rel=1  tmped=/tmp/edver.tmp  tmpspec=/tmp/edspec.tmp diff --git a/util/ialarms.c b/util/ialarms.c index 7260356..836ec8c 100644 --- a/util/ialarms.c +++ b/util/ialarms.c @@ -75,7 +75,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ialarms";  static char   fdebug    = 0;  static char   fbmctam   = 0; diff --git a/util/icmd.c b/util/icmd.c index ec467e7..789c69d 100644 --- a/util/icmd.c +++ b/util/icmd.c @@ -78,7 +78,7 @@ extern void ipmi_lan_set_timeout(int ipmito, int tries, int pingto);  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "icmd";  static char   fdebug    = 0;  static char   fquiet    = 0; @@ -297,7 +297,7 @@ main(int argc, char **argv)     if (is_remote() && fprivset == 0) { /*IPMI LAN, privilege not set by user*/         /* commands to other MCs require admin privilege */ -       if ((g_sa != BMC_SA) || (cmdbuf[1] != BMC_SA)) +       // if ((g_sa != BMC_SA) || (cmdbuf[1] != BMC_SA))  	   parse_lan_options('V',"4",0);     } diff --git a/util/iconfig.c b/util/iconfig.c index f7b9972..db70075 100644 --- a/util/iconfig.c +++ b/util/iconfig.c @@ -172,7 +172,7 @@ typedef struct  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "iconfig";  static char   fdebug    = 0;  static char   fipmilan  = 0; diff --git a/util/idcmi.c b/util/idcmi.c index 0cce3c0..8bf2000 100644 --- a/util/idcmi.c +++ b/util/idcmi.c @@ -62,7 +62,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  #include "idcmi.h"  static char * progname  = "idcmi"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  extern char   fdebug;  /*from ipmicmd.c*/  static uchar  g_bus  = PUBLIC_BUS;  static uchar  g_sa   = BMC_SA; diff --git a/util/ievents.c b/util/ievents.c index 10b665b..d07a35f 100644 --- a/util/ievents.c +++ b/util/ievents.c @@ -76,7 +76,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  #define  SELprintf  printf    #define  SMS_SA   0x41  #define  SMI_SA   0x21 -static char *progver   = "3.04"; +static char *progver   = "3.07";  static char *progname  = "ievents";  static char fsensdesc = 0;   /* 1= get extended sensor descriptions*/  static char fcanonical = 0;  /* 1= show canonical, delimited output*/ @@ -290,7 +290,7 @@ char * boot_init_str[NBOOTI] = {  /* System Boot Initiated */   /*06*/ "SW Warm Reset",     /*07*/ "RestartCause" }; -#define NOSBOOT  8 +#define NOSBOOT  10  char * osboot_str[NOSBOOT] = {  /* OS Boot */   /*00*/ "A: boot completed",     /*01*/ "C: boot completed",   @@ -298,7 +298,9 @@ char * osboot_str[NOSBOOT] = {  /* OS Boot */   /*03*/ "Diag boot completed",     /*04*/ "CDROM boot completed",     /*05*/ "ROM boot completed",   - /*06*/ "Other boot completed" }; + /*06*/ "Other boot completed", + /*07*/ "USB7 boot completed", + /*08*/ "USB8 boot completed" };  #define NSLOTC  9  char * slot_str[NSLOTC] = {  /* Slot/Connector descriptions */ diff --git a/util/ifirewall.c b/util/ifirewall.c index 719d2b8..3f81b3b 100644 --- a/util/ifirewall.c +++ b/util/ifirewall.c @@ -64,7 +64,7 @@  /* global variables */  static char * progname  = "ifirewall"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char   fdebug    = 0;  static uchar  g_bus  = PUBLIC_BUS;  static uchar  g_sa   = BMC_SA; diff --git a/util/ifru.c b/util/ifru.c index c91fab2..9775d7d 100644 --- a/util/ifru.c +++ b/util/ifru.c @@ -116,7 +116,7 @@ extern int ipmi_kontronoem_main(void * intf, int  argc, char ** argv);  #endif  static char *progname  = "ifru"; -static char *progver   = "3.04"; +static char *progver   = "3.07";  static int  vend_id = 0;   static int  prod_id = 0;   static char fdebug = 0; diff --git a/util/ifruset.c b/util/ifruset.c index d24b089..8b77489 100644 --- a/util/ifruset.c +++ b/util/ifruset.c @@ -106,7 +106,7 @@ extern void fmt_time(time_t etime, char *buf, int bufsz); /*see ievents.c*/  #define IPROD_OEM    7  static char *progname  = "ifruset"; -static char *progver   = "3.04"; +static char *progver   = "3.07";  static char fdebug = 0;  static char fpicmg = 0;  static char fonlybase = 0; diff --git a/util/igetevent.c b/util/igetevent.c index 40c5e4a..61abc96 100644 --- a/util/igetevent.c +++ b/util/igetevent.c @@ -169,7 +169,7 @@ extern void free_sdr_cache(uchar *pret); /*see isensor.c*/   * Global variables    */  static char * progname  = "igetevent"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char   fdebug    = 0;  static char   fipmilan  = 0;  static char   frunonce  = 0; diff --git a/util/ihealth.c b/util/ihealth.c index 974fa95..087fcdf 100644 --- a/util/ihealth.c +++ b/util/ihealth.c @@ -12,6 +12,7 @@   * 10/20/06 Andy Cress 1.1 - added -g for guid   * 01/10/07 Andy Cress 1.4 - added product strings   * 02/25/07 Andy Cress 2.8 - added more Chassis Status decoding + * 09/18/17 Andy Cress 3.07 - Set do_powerstate=0 for Sun, continue if failure   */  /*M*  Copyright (c) 2006, Intel Corporation @@ -82,7 +83,7 @@ extern int oem_supermicro_get_firmware_str(char *pstr, int sz); /*oem_supermicro   * Global variables    */  static char * progname  = "ihealth"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char   fdebug    = 0;  static char   fipmilan  = 0;  static char   fcanonical = 0; @@ -421,9 +422,12 @@ static int get_power_state(uchar *rdata, int rlen)  	uchar ccode;  	int ret; -        ret = ipmi_cmdraw( GET_POWER_STATE, NETFN_APP, -			g_sa, g_bus, g_lun, +    ret = ipmi_cmdraw( GET_POWER_STATE, NETFN_APP, g_sa, g_bus, g_lun, +                        idata,0, rdata,&rlen,&ccode, fdebug); +	if (ret == 0 && ccode == 193) { /*0xB7, usu. SuperMicro, retry */ +       ret = ipmi_cmdraw( GET_POWER_STATE, NETFN_APP, g_sa, g_bus, g_lun,                          idata,0, rdata,&rlen,&ccode, fdebug); +	}  	if (ret == 0 && ccode != 0) ret = ccode;  	return(ret);  }  /*end get_power_state()*/ @@ -613,12 +617,13 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)  	/* The product ids below only apply to BMCs */  	switch(mfg) {           case VENDOR_NSC:      /*=0x000322*/ -	     fmBMC = 1; +             fmBMC = 1;               if (dtype == BMC) tag="mBMC";               if (prod == 0x4311) prodstr = "(TIGPT1U)"; /*Intel*/               break;           case VENDOR_SUN:      /*=0x00002a*/ -	     if (prod == 0x4701) prodstr = "(X4140)";  +             if (prod == 0x4701) prodstr = "(X4140)";  +             do_powerstate = 0;               break;           case VENDOR_TYAN:      /*=0x0019fd*/               switch(prod) {     /* show product names for some */ @@ -631,12 +636,12 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)               }               break;           case VENDOR_FUJITSU:      /*=0x002880*/ -	     if (prod >= 0x200) prodstr = "(iRMC S2)";  -	     else prodstr = ""; +             if (prod >= 0x200) prodstr = "(iRMC S2)";  +             else prodstr = "";               break;           case VENDOR_CISCO:      /*=0x00168b, 5771.*/ -	     if (prod == 0x0005) prodstr = "(UCS C200)";  -	     else prodstr = ""; +             if (prod == 0x0005) prodstr = "(UCS C200)";  +             else prodstr = "";               if (fipmilan) lan_ch_restrict = 1; /*fw bug, gets 0xC1 on ipmilan*/               break;           case 0x003C0A:        /*=15370, Giga-Byte*/ @@ -644,9 +649,9 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)               lan_ch_restrict = 1; /*fw bug, gets 0xC1*/               break;           case VENDOR_INTEL:     /*=0x000157*/ -	     if (do_hsc && (dtype == BMC)) /*if HSC option, also show extra*/ +	         if (do_hsc && (dtype == BMC)) /*if HSC option, also show extra*/  	         sprintf(extraver," (Boot %x.%x PIA %x.%x)", /*BMC extra*/ -			  devrec[11],devrec[12],devrec[13],devrec[14]); +			     devrec[11],devrec[12],devrec[13],devrec[14]);               switch(prod) {     /* show product names for some */                   case 0x000C:   prodstr = "(TSRLT2)";    /*SCB2*/                                  bChan = 7;  break; @@ -659,24 +664,24 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)                   case 0x002B:   prodstr = "(S5000VSA)"; break;                    case 0x002D:   prodstr = "(MFSYS25)"; break; /*ClearBay*/                   case 0x003E:   prodstr = "(S5520UR)";   /*CG2100 or NSN2U*/ -				do_me = 1; kcs_loops = URNLOOPS; +                                do_me = 1; kcs_loops = URNLOOPS;                                  bChan = 1;  break;                   case 0x0040:   prodstr = "(QSSC-S4R)";  /*Stoutland*/ -				do_me = 1; kcs_loops = URNLOOPS; +                                do_me = 1; kcs_loops = URNLOOPS;                                  bChan = 1;  break;                   case 0x0100:   prodstr = "(Tiger4)"; break;                   case 0x0103:   prodstr = "(McCarran)";  /*BladeCenter*/ -			do_powerstate = 0;   break;  +                                do_powerstate = 0;   break;                    case 0x0800:   prodstr = "(ZT5504)";    /*ZiaTech*/ -			do_powerstate = 0;   break;  +                                do_powerstate = 0;   break;                    case 0x0808:   prodstr = "(MPCBL0001)";   /*ATCA Blade*/ -			do_powerstate = 0;   break;  +                                do_powerstate = 0;   break;                    case 0x0841:   prodstr = "(MPCMM0001)";   /*ATCA CMM*/ -			do_powerstate = 0;   break;  +                                do_powerstate = 0;   break;                    case 0x0811:   prodstr = "(TIGW1U)";  break; /*S5000PHB*/                   case 0x4311:   prodstr = "(NSI2U)";     /*SE7520JR23*/ -				if (dtype == BMC) tag="mBMC"; -				fmBMC = 1; break; +                                if (dtype == BMC) tag="mBMC"; +                                fmBMC = 1; break;                   default:       prodstr = ""; break;               }               if (is_romley(mfg,prod)) { @@ -768,6 +773,7 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec)                      do_powerstate = 0;   break;   		 case 2137:	prodstr = "(X10DRH)"; break; /*0x0859*/  		 case 2203:	prodstr = "(X11SSW-F)"; break; /*0x089b*/ +		 case 2327:	prodstr = "(X11DPi)"; break; /*0x0917*/  		 case 4520:	prodstr = "(H8DGU)";  break;  		 case 43025:	prodstr = "(H8DGU-F)"; break;  		 case 43707:	prodstr = "(X8DTH)"; break; @@ -1021,12 +1027,12 @@ main(int argc, char **argv)     {  /* Some BMCs dont support get_power_state*/       ret = get_power_state(selfbuf,4);       if (ret != 0) { -	printf("ipmi_getpowerstate error, ret = %d\n",ret); -	goto health_end; +        printf("ipmi_getpowerstate error, ret = %d\n",ret); +        pwr_state = 0;       } else {          pwr_state = selfbuf[0] & 0x7f; -	printf("Power State       %c %02x       (%s)\n", -		bdelim,pwr_state,pwr_string(pwr_state)); +        printf("Power State       %c %02x       (%s)\n", +        	bdelim,pwr_state,pwr_string(pwr_state));       }     } @@ -1036,7 +1042,7 @@ main(int argc, char **argv)  	goto health_end;     } else {          selfstatus = selfbuf[0] + (selfbuf[1] << 8); -	s = decode_selftest(selfstatus); +        s = decode_selftest(selfstatus);          if (fmBMC) {             sprintf(selfstr,"%s",s);  	} else { diff --git a/util/ilan.c b/util/ilan.c index 6f63fe5..e54233f 100644 --- a/util/ilan.c +++ b/util/ilan.c @@ -306,7 +306,7 @@ extern char *get_sensor_type_desc (uchar stype);	/*from ievents.c */   * Global variables    */  static char * progname  = "ilan"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char fdebug = 0;  static char fipmilan = 0;  static char fIPMI10 = 0;	/* =1 if IPMI v1.0 or less */ diff --git a/util/ipicmg.c b/util/ipicmg.c index e463424..af10750 100644 --- a/util/ipicmg.c +++ b/util/ipicmg.c @@ -81,7 +81,7 @@  /* Global data */  static char * progname  = "ipicmg"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char   fdebug    = 0;  static char   fset_mc   = 0;  static uint8_t g_bus  = PUBLIC_BUS; diff --git a/util/ipmiutil.c b/util/ipmiutil.c index ffddc86..9e5bc1f 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"; -static char *progver   = "3.04"; +static char *progver   = "3.07";  // static char fdebug = 0;  /*int ipmiutil(int argc, char **argv); */ diff --git a/util/ipmiutil2-64.mak b/util/ipmiutil2-64.mak index 6289e06..32124fa 100644 --- a/util/ipmiutil2-64.mak +++ b/util/ipmiutil2-64.mak @@ -87,7 +87,8 @@ E_OBJ=$(TMP_D)\ipmiutil.obj \        $(TMP_D)\ipicmg.obj   $(TMP_D)\ifirewall.obj \
        $(TMP_D)\iekanalyzer.obj   $(TMP_D)\ifru_picmg.obj \
        $(TMP_D)\oem_kontron.obj   $(TMP_D)\ihpm.obj $(TMP_D)\ifwum.obj \
 -      $(TMP_D)\oem_fujitsu.obj   $(TMP_D)\oem_intel.obj   \
 +      $(TMP_D)\oem_fujitsu.obj $(TMP_D)\oem_intel.obj $(TMP_D)\oem_lenovo.obj \
 +      $(TMP_D)\oem_asus.obj $(TMP_D)\iuser.obj  \
        $(TMP_D)\oem_sun.obj       $(TMP_D)\oem_dell.obj $(TMP_D)\oem_hp.obj \
        $(TMP_D)\oem_supermicro.obj   $(TMP_D)\itsol.obj $(TMP_D)\idcmi.obj \
        $(TMP_D)\oem_quanta.obj  $(TMP_D)\oem_newisys.obj  $(CMD_OBJ) mem_if.obj
 @@ -311,6 +312,9 @@ $(TMP_D)\ihpm.obj:    ihpm.c  $(TMP_D)\idcmi.obj:    idcmi.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\idcmi.obj idcmi.c
 +$(TMP_D)\iuser.obj:    iuser.c
 +    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\iuser.obj iuser.c
 +
  $(TMP_D)\oem_fujitsu.obj:    oem_fujitsu.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_fujitsu.obj oem_fujitsu.c
 @@ -332,6 +336,12 @@ $(TMP_D)\oem_hp.obj:    oem_hp.c  $(TMP_D)\oem_supermicro.obj:    oem_supermicro.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_supermicro.obj oem_supermicro.c
 +$(TMP_D)\oem_lenovo.obj:    oem_lenovo.c
 +    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_lenovo.obj oem_lenovo.c
 +
 +$(TMP_D)\oem_asus.obj:    oem_asus.c
 +    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_asus.obj oem_asus.c
 +
  $(TMP_D)\oem_quanta.obj:    oem_quanta.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_quanta.obj oem_quanta.c
 diff --git a/util/ipmiutil2.mak b/util/ipmiutil2.mak index 8d41f50..f176720 100644 --- a/util/ipmiutil2.mak +++ b/util/ipmiutil2.mak @@ -87,7 +87,8 @@ E_OBJ=$(TMP_D)\ipmiutil.obj \        $(TMP_D)\ipicmg.obj   $(TMP_D)\ifirewall.obj \
        $(TMP_D)\iekanalyzer.obj   $(TMP_D)\ifru_picmg.obj \
        $(TMP_D)\oem_kontron.obj   $(TMP_D)\ihpm.obj $(TMP_D)\ifwum.obj \
 -      $(TMP_D)\oem_fujitsu.obj   $(TMP_D)\oem_intel.obj   \
 +      $(TMP_D)\oem_fujitsu.obj $(TMP_D)\oem_intel.obj $(TMP_D)\oem_lenovo.obj \
 +      $(TMP_D)\oem_asus.obj $(TMP_D)\iuser.obj  \
        $(TMP_D)\oem_sun.obj       $(TMP_D)\oem_dell.obj $(TMP_D)\oem_hp.obj \
        $(TMP_D)\oem_supermicro.obj   $(TMP_D)\itsol.obj $(TMP_D)\idcmi.obj \
        $(TMP_D)\oem_quanta.obj  $(TMP_D)\oem_newisys.obj  $(CMD_OBJ) mem_if.obj
 @@ -312,6 +313,9 @@ $(TMP_D)\ihpm.obj:    ihpm.c  $(TMP_D)\idcmi.obj:    idcmi.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\idcmi.obj idcmi.c
 +$(TMP_D)\iuser.obj:    iuser.c
 +    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\iuser.obj iuser.c
 +
  $(TMP_D)\oem_fujitsu.obj:    oem_fujitsu.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_fujitsu.obj oem_fujitsu.c
 @@ -333,6 +337,12 @@ $(TMP_D)\oem_hp.obj:    oem_hp.c  $(TMP_D)\oem_supermicro.obj:    oem_supermicro.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_supermicro.obj oem_supermicro.c
 +$(TMP_D)\oem_lenovo.obj:    oem_lenovo.c
 +    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_lenovo.obj oem_lenovo.c
 +
 +$(TMP_D)\oem_asus.obj:    oem_asus.c
 +    $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_asus.obj oem_asus.c
 +
  $(TMP_D)\oem_quanta.obj:    oem_quanta.c
      $(CC) /c $(CFLAGS_M) /Fo$(TMP_D)\oem_quanta.obj oem_quanta.c
 diff --git a/util/ireset.c b/util/ireset.c index 3584cb1..36134bc 100644 --- a/util/ireset.c +++ b/util/ireset.c @@ -108,7 +108,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ireset";  static uchar  ipmi_maj;  static uchar  ipmi_min; diff --git a/util/isel.c b/util/isel.c index 9045d62..925a689 100644 --- a/util/isel.c +++ b/util/isel.c @@ -162,7 +162,7 @@ typedef struct  #define RDATA_OFFSET    13    //byte offset to the record event data    static char *progname  = "isel"; -static char *progver   = "3.04"; +static char *progver   = "3.07";  #ifdef WIN32  #define IDXFILE   "sel.idx"  static char idxfile[80] = IDXFILE; diff --git a/util/iseltime.c b/util/iseltime.c index 2f5c7e1..0900c31 100644 --- a/util/iseltime.c +++ b/util/iseltime.c @@ -78,7 +78,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "iseltime";  static char   fdebug    = 0;  static char   fset      = 0; diff --git a/util/isensor.c b/util/isensor.c index 69d901f..7418ae9 100644 --- a/util/isensor.c +++ b/util/isensor.c @@ -161,7 +161,7 @@ extern int decode_sensor_fujitsu(uchar *sdr,uchar *reading,char *pstring,  extern int decode_sensor_sun(uchar *sdr,uchar *reading,char *pstring,  				int slen);  /*see oem_sun.c*/  extern int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, -				int slen, int fsimple);  /*see oem_supermicro.c*/ +				int slen, int fsimple, char fdbg);  /*see oem_supermicro.c*/  extern int decode_sensor_quanta(uchar *sdr,uchar *reading,char *pstring,  				int slen);  /*see oem_quanta.c*/  extern int decode_sensor_dell(uchar *sdr,uchar *reading,char *pstring, @@ -255,7 +255,7 @@ char *decode_entity_id(int id) {   *  Global Data   ************************/  static char *progname  = "isensor"; -static char *progver   = "3.04"; +static char *progver   = "3.07";  #ifdef WIN32  static char savefile[] = "%ipmiutildir%\\thresholds.cmd";  #else @@ -655,17 +655,17 @@ char *get_unit_type(int iunits, int ibase, int imod, int fshort)  	   break;      }      if ((umod == 0) && (iunits > 0)) { -	/* special cases for other SensorUnits1 bits */ -	if ((iunits & 0x01) != 0) {  /*percentage*/ -	   if (fshort) pstr = "%"; -	   else pstr = "percent"; -	} else if (iunits == 0xC0) {  /*no analog reading*/ -	   pstr = "na"; -	} else if (iunits == 0x18) { -           /* For Tyan fans:  base=42, units=24.(0x18) -> cycles/hour */ -	   snprintf(unitstr,sizeof(unitstr),"%s/hour",punittypes[jbase]); -	   pstr = unitstr; -	}  +	   /* special cases for other SensorUnits1 bits */ +	   if ((iunits & 0x01) != 0) {  /*percentage*/ +	      if (fshort) pstr = "%"; +	      else pstr = "percent"; +	   } else if (iunits == 0xC0) {  /*no analog reading*/ +	      pstr = "na"; +	   } else if (iunits == 0x18) { +	      /* For Tyan fans:  base=42, units=24.(0x18) -> cycles/hour */ +	      snprintf(unitstr,sizeof(unitstr),"%s/hour",punittypes[jbase]); +	      pstr = unitstr; +	   }       }      return(pstr);  } @@ -1952,7 +1952,7 @@ int decode_oem_sensor(uchar *sdr,uchar *reading,char *pstring,int slen)        case VENDOR_MAGNUM:         case VENDOR_SUPERMICRO:         case VENDOR_SUPERMICROX:  -          rv = decode_sensor_supermicro(sdr, reading, pstring, slen, fsimple); +          rv = decode_sensor_supermicro(sdr,reading,pstring,slen,fsimple,fdebug);            break;        case VENDOR_QUANTA:             rv = decode_sensor_quanta(sdr, reading, pstring, slen); @@ -2650,6 +2650,7 @@ ShowSDR(char *tag, uchar *sdr)  			sens[2],i,sens[0],sens[1],sdr01->sens_base,  			sdr01->sens_units);  	   if ((sens[1] & 0x20) != 0) { i = 7; val = 0; } /* Init state */ +       else if (sdr01->sens_units == 0xC0) i = 42; /*reading NotAvailable*/  	   else if (sens[2] == 0xc7) { i = 10; val = 0;  /* Absent (Intel) */  			if (fdebug) printf("sensor[%x] is absent (c7), no reading\n",   							sdr01->sens_num); diff --git a/util/isensor.h b/util/isensor.h index 8927b6e..f578274 100644 --- a/util/isensor.h +++ b/util/isensor.h @@ -16,8 +16,8 @@ typedef struct {    uchar  entity_inst;    uchar  sens_init;     uchar  sens_capab;  -  uchar  sens_type;  -  uchar  ev_type; +  uchar  sens_type;  /*sdr[12]*/ +  uchar  ev_type;    /*sdr[13]*/    uchar  data1[6];   /*masks*/    uchar  sens_units; /*sdr[20]*/    uchar  sens_base; diff --git a/util/iserial.c b/util/iserial.c index a087614..f8377c7 100644 --- a/util/iserial.c +++ b/util/iserial.c @@ -155,7 +155,7 @@ typedef struct  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "iserial";  static int    vend_id = 0;  static int    prod_id = 0; diff --git a/util/isol.c b/util/isol.c index fab0994..1713ede 100644 --- a/util/isol.c +++ b/util/isol.c @@ -165,7 +165,7 @@ void dbglog( char *pattn, ... ); /*local prototype*/  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "isol";  static char  fdebug        = 0;  static char  fpicmg        = 0; @@ -1249,7 +1249,9 @@ main(int argc, char **argv)  	case VENDOR_DELL:  /*Dell == 0x0002A2*/  	   max_bmc_data = MAX_DELL_DATA; /*shorter max data*/  	   break; +	case VENDOR_SUPERMICROX:  	case VENDOR_SUPERMICRO: +   		if (!fprivset) parse_lan_options('V',"4",0); /*requires admin priv*/  	case VENDOR_LMC:  	case VENDOR_PEPPERCON: /* 0x0028C5  Peppercon/Raritan*/             sol_timeout = 10;  /* shorter 10 sec SOL keepalive timeout */ diff --git a/util/itsol.c b/util/itsol.c index 6997ffe..57bb1eb 100644 --- a/util/itsol.c +++ b/util/itsol.c @@ -98,7 +98,7 @@ int   gettimeofday(struct timeval *tv, struct timezone *tz);  extern int verbose;  extern char   fdebug;  /*from ipmicmd.c*/  static char * progname  = "itsol"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static uchar  g_bus  = PUBLIC_BUS;  static uchar  g_sa   = BMC_SA;  static uchar  g_lun  = BMC_LUN; diff --git a/util/iuser.c b/util/iuser.c index e6a7b29..fa8297c 100644 --- a/util/iuser.c +++ b/util/iuser.c @@ -57,7 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /* global variables */  static char * progname  = "iuser"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char   fdebug    = 0;  static char   fcanonical = 0;  static char   bdelim = '|'; diff --git a/util/iwdt.c b/util/iwdt.c index 13253b3..d8c3c84 100644 --- a/util/iwdt.c +++ b/util/iwdt.c @@ -100,7 +100,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "iwdt";  static char   fdebug    = 0;  static char   fdontlog  = 0; diff --git a/util/oem_asus.c b/util/oem_asus.c index cd5c01e..d5861d4 100644 --- a/util/oem_asus.c +++ b/util/oem_asus.c @@ -61,7 +61,7 @@ extern char fdebug;  /*ipmicmd.c*/  void set_loglevel(int level);  /*prototype */  static char * progname  = "iasusoem"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static int verbose = 0;  static uchar  g_bus  = PUBLIC_BUS;  static uchar  g_sa   = BMC_SA; diff --git a/util/oem_dell.c b/util/oem_dell.c index 4f9a7ab..dcfe52a 100644 --- a/util/oem_dell.c +++ b/util/oem_dell.c @@ -132,7 +132,7 @@ char NIC_Selection_Mode_String_12g[] [50] =	{  						"shared with failover all loms"  						}; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "idelloem";  static int verbose = 0;  static char fdebug = 0; diff --git a/util/oem_fujitsu.c b/util/oem_fujitsu.c index 9a4783a..9f11b19 100644 --- a/util/oem_fujitsu.c +++ b/util/oem_fujitsu.c @@ -52,7 +52,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /* extern void get_mfgid(int *vend, int *prod);  * from ipmicmd.h*/  /* extern int get_lan_options();  * from ipmicmd.h */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ifujitsuoem";  static char fdebug = 0;  static char freadok = 1; diff --git a/util/oem_hp.c b/util/oem_hp.c index 081ea6f..862456a 100644 --- a/util/oem_hp.c +++ b/util/oem_hp.c @@ -44,7 +44,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  #include "ievents.h"  #include "isensor.h" -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ihpoem";  static char *redund_str(uchar b) diff --git a/util/oem_intel.c b/util/oem_intel.c index bf21ec5..b8d9454 100644 --- a/util/oem_intel.c +++ b/util/oem_intel.c @@ -83,7 +83,7 @@ extern char  fdebug;   /*ipmicmd.c*/  /*   * Global variables    */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "iinteloem";  static char  fRelayBits = 0;  static uchar g_bus = PUBLIC_BUS; diff --git a/util/oem_kontron.c b/util/oem_kontron.c index b8fedf7..6a3964f 100644 --- a/util/oem_kontron.c +++ b/util/oem_kontron.c @@ -73,7 +73,7 @@ typedef uint32_t   socklen_t;  #define FRU_TYPE_COMPONENT  0x01  #define FRU_TYPE_BASEBOARD  0x07 -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ikontronoem";  const struct valstr ktc5520_post[] = {  /*from EAS*/   { 0x0003, "Start POST Init" }, diff --git a/util/oem_lenovo.c b/util/oem_lenovo.c index dc15a5d..f37388f 100644 --- a/util/oem_lenovo.c +++ b/util/oem_lenovo.c @@ -61,7 +61,7 @@ extern uchar bitnum(ushort value);  /*isensor.c*/  extern char fdebug;  /*ipmicmd.c*/  void set_loglevel(int level);  /*prototype */ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ilenovooem";  static int verbose = 0;  static uchar  g_bus  = PUBLIC_BUS; diff --git a/util/oem_newisys.c b/util/oem_newisys.c index 6b21e1b..9ae794b 100644 --- a/util/oem_newisys.c +++ b/util/oem_newisys.c @@ -43,7 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  #include "ipmicmd.h"  #include "ievents.h" -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "inewisysoem";  static char  fdebug = 0;  static uchar g_bus = PUBLIC_BUS; diff --git a/util/oem_quanta.c b/util/oem_quanta.c index a6cfd6a..ab9b105 100644 --- a/util/oem_quanta.c +++ b/util/oem_quanta.c @@ -45,7 +45,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  extern int decode_sensor_intel_nm(uchar *sdr,uchar *reading,  				  char *pstring,int slen);  /*oem_intel.c*/ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "iquantaoem";  static char fdbg = 0; diff --git a/util/oem_sun.c b/util/oem_sun.c index 8aa211b..9ccc905 100644 --- a/util/oem_sun.c +++ b/util/oem_sun.c @@ -109,7 +109,7 @@ static const struct valstr sunoem_led_mode_optvals[] = {  /* global variables */  static char * progname  = "isunoem"; -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char   fdebug    = 0;  static uchar  g_bus  = PUBLIC_BUS;  static uchar  g_sa   = BMC_SA; diff --git a/util/oem_supermicro.c b/util/oem_supermicro.c index a480b7f..1924345 100644 --- a/util/oem_supermicro.c +++ b/util/oem_supermicro.c @@ -68,7 +68,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  void set_loglevel(int level);  /*prototype */  extern char fsm_debug;  /*mem_if.c*/ -static char * progver   = "3.04"; +static char * progver   = "3.07";  static char * progname  = "ismcoem";  static int verbose = 0;  static char fdebug = 0; @@ -415,7 +415,7 @@ int decode_threshold_supermicro(uchar rval, uchar *thresh)   *    pstring = contains the sensor reading interpretation string (if rv==0)   */  int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen,  -		int fsimple) +		int fsimple, char fdbg)  {     int i, rv = -1;     uchar stype, etype, snum; @@ -428,23 +428,26 @@ int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen,     if (sdr == NULL || reading == NULL) return(rv);     if (pstring == NULL || slen == 0) return(rv); +   fdebug = fdbg;     bval = (reading[2] & 0x3f);     snum = sdr[7];   /*sdr01->sens_num*/     stype = sdr[12]; /*sensor_type*/     etype = sdr[13]; /*sdr01->ev_type*/ +   get_mfgid(&vend_id,&prod_id); /*saved from ipmi_getdeviceid */     /* sdr[3] rec_type is 0x01 for Full, 0x02 for Compact */     if ((sdr[3] == 0x01) && (etype == 0x01)) { /* full threshold sensor */ -	  if (bval == 0) return(-1); /* OK, treat it normally */ -	  /*cannot rely upon the sensor reading[2], so get thresholds and compare*/ +	  /*if Temp sensor, bits==0 would show BelowCrit, so handle normally */ +	  if ((stype == 0x01) && (bval == 0)) return(-1);  +	  /*Cannot rely upon the sensor reading[2], so get thresholds and compare*/  	  rv = GetSensorThresholds(snum,&thresh[0]);  	  if (rv != 0) return(rv);        i = decode_threshold_supermicro(reading[0],thresh);        if (fdebug)  -	    printf("decode_sensor_supermicro: snum=%x rdg=%x:%x thresh=%x:%x:%x:%x:%x:%x:%x i=%d rv=%d\n", -			snum,reading[0],reading[2], thresh[0], thresh[1], thresh[2], thresh[3],  +	    printf("decode_sensor_supermicro: snum=%x stype=%x rdg=%x:%x thresh=%x:%x:%x:%x:%x:%x:%x i=%d rv=%d\n", +			snum,stype,reading[0],reading[2], thresh[0], thresh[1], thresh[2], thresh[3],   			thresh[4], thresh[5], thresh[6], i,rv);        switch(i) { -         case 0: pstr = "OK*";  break; +         case 0: pstr = "OK";  break;           case 1: pstr = "Warn-lo"; break;           case 2: pstr = "Crit-lo"; break;           case 3: pstr = "BelowCrit"; break; @@ -495,6 +498,14 @@ int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen,               default:  rv = -1;  break;            }             break; +        case 0x29:  /* VBAT sensor */ +           if (prod_id == 0x0917) { /*X11DRi has inert VBAT full sensor*/ +			 if (bval == 0) { +                pstr = "NotAvailable"; +			    rv = 0; +			 } +           } +           break;          default:             break;     } @@ -593,12 +604,14 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,     uchar rectype;     ulong timestamp;     char mybuf[64];  +   char mytype[64];      char *type_str = "";     char *pstr = NULL; -   int sevid; +   int sevid, d1;     ushort genid;     uchar snum;     uchar data1, data2, data3; +   char *psens = NULL;     fdebug = fdbg;     sevid = SEV_INFO; @@ -616,17 +629,22 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,       switch(evt[10]) {  /*sensor type*/       case 0xC0:      /* CPU Temp Sensor */  	   type_str = "OEM_CpuTemp"; -	   switch((evt[13] & 0x0f)) {  /*offset/data1 l.o. nibble*/ +	   d1 = (evt[13] & 0x0f);  /*offset/data1 l.o. nibble*/ +	   switch(d1) {               case 0x02:   /* CPU Temp Sensor Overheat event offset */  		if (evt[12] & 0x80) {  /*EvTyp==0xF0 if deassert*/  		   pstr = "CpuTemp Overheat OK"; sevid = SEV_INFO;   		} else {  /* EvTyp=0x70 assert */  		   pstr = "CpuTemp Overheat   "; sevid = SEV_MAJ;   		} -		rv = 0;  		break; -	   default: pstr = "CpuTemp Event"; rv = 0; break; +	   default: pstr = "CpuTemp Event"; +		sprintf(mytype,"CpuTemp_%02x", d1); +		type_str = mytype; +		sevid = SEV_MIN;  +		break;  	   } +	   rv = 0;   	   break;       case 0xC2:      /* CPLD Event */  	   type_str = "OEM_CPLD"; @@ -635,10 +653,10 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,  		if (evt[14] == 0x1c)   		     { pstr = "CPLD CATERR Asserted"; sevid = SEV_CRIT; }  		else { pstr = "CPLD Event Asserted";  sevid = SEV_MIN;  } -		rv = 0;  		break; -	   default: pstr = "CPLD Event"; rv = 0; break; +	   default: pstr = "CPLD Event"; sevid = SEV_MIN; break;  	   } +	   rv = 0;  	   break;       case 0xD0:      /* BMC Event */  	   type_str = "OEM_BMC"; @@ -655,13 +673,15 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,  	   break;       case 0xC5:      /* Observed Event: Storage, drive slot */  	   /* usually OEM(c5) #52 - 6f [01 00 00]  */ -	   pstr = "OEMC5: Storage/DriveSlot fault"; +	   type_str = "OEM_C5"; +	   pstr = "Storage/DriveSlot fault";  	   sevid = SEV_MAJ;   	   rv = 0;  	   break; -     case 0xC8:      /* Observed Event: Temp/Cooling issue, reboots */ +     case 0xC8:      /* Observed Event: AC Power on event */  	   /* usually OEM(c8) #ff - 6f [a0 ff ff] */ -	   pstr = "OEMC8: Temp/Cooling fault"; +	   type_str = "OEM_C8"; +	   pstr = "AC Power On";  	   sevid = SEV_MAJ;   	   rv = 0;  	   break; @@ -671,11 +691,16 @@ int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,     }     if (rv == 0) {  	 format_event(id,timestamp, sevid, genid, type_str, -			snum,NULL,pstr,mybuf,outbuf,outsz); +			snum,psens,pstr,mybuf,outbuf,outsz);     }     return(rv);  } +/* factory_defaults: set SMC factory defaults  + * mode: 0 = detect, default is c0 41 method + *       2 = use c0 41 method, also get guid + *       3 = use f0 40 method (usu X11) + */  static int factory_defaults(int mode)  {     int rv = -1; @@ -684,7 +709,7 @@ static int factory_defaults(int mode)     uchar idata[16];     uchar cc;    /*  -   From SMC IPMICFG -fde session: +   From SMC IPMICFG -fde  factory defaults session:     start_kcs_transaction - 18 01    (get_device_id)     start_kcs_transaction - 18 25    (watchdog get)     start_kcs_transaction - b0 00 00 (unknown, invalid) @@ -693,6 +718,12 @@ static int factory_defaults(int mode)     start_kcs_transaction - 18 01    (get_device_id)     start_kcs_transaction - c0 41    (reset_factory_defaults, -fde)    */ +   if ((prod_id > 2200) && (prod_id < 2300) && (mode == 0)) { +      /* Looks like X11 board, may use netfn 3c, cmd 40 ? */ +      /* do not auto-set this if mode param is not 3 */ +      // mode = 3; /* cmd=0x40 netfn=0x3c (netfn/lun=0xF0) */ +      if (fdebug) printf("may also need ipmiutil cmd 00 20 f0 40\n"); +   }     /* b0 00 00: cmd=00 netfn=2C */     rlen = sizeof(rdata); @@ -703,7 +734,7 @@ static int factory_defaults(int mode)     if (fdebug) printf("b0 00 returned %d\n",rv);     /* if (rv != 0) return(rv); */ -   if (mode == 2) { +   if (mode == 2) {  /* (get_system_guid) */       rlen = sizeof(rdata);       rv = ipmi_cmdraw(0x37, (0x18 >> 2), BMC_SA, PUBLIC_BUS, BMC_LUN,  			    idata, 0, rdata, &rlen, &cc, fdebug); @@ -712,10 +743,15 @@ static int factory_defaults(int mode)       if (rv != 0) return(rv);     } -   /* reset factory defaults cmd=0x41 netfn=0x30 (netfn/lun=0xC0) */ +   /* reset factory defaults */     rlen = sizeof(rdata); -   rv = ipmi_cmdraw(0x41, (0xc0 >> 2), BMC_SA, PUBLIC_BUS, BMC_LUN, -		    idata, 0, rdata, &rlen, &cc, fdebug); +   if (mode == 3) { /* cmd=0x40 netfn=0x3c (netfn/lun=0xF0) */ +     rv = ipmi_cmdraw(0x40, 0x3c, BMC_SA, PUBLIC_BUS, BMC_LUN, +		       idata, 0, rdata, &rlen, &cc, fdebug); +   } else { /* cmd=0x41 netfn=0x30 (netfn/lun=0xC0) if X10 or less */ +     rv = ipmi_cmdraw(0x41, (0xc0 >> 2), BMC_SA, PUBLIC_BUS, BMC_LUN, +		       idata, 0, rdata, &rlen, &cc, fdebug); +   }     if ((rv == 0) && (cc != 0)) rv = cc;     if (fdebug) printf("factory default reset returned %d\n",rv);     if (rv != 0) return(rv); @@ -741,6 +777,11 @@ static int ipmi_smcoem_main(int  argc, char **argv)     char msg[80];     uchar val; +   if ((vend_id != VENDOR_SUPERMICRO) && (vend_id != VENDOR_SUPERMICROX)) { +      printf("Not SuperMicro firmware, ignoring smcoem\n"); +      usage(); +      return(ERR_USAGE); +   }     if (strncmp(argv[0],"intrusion",9) == 0) {        printf("Clearing Chassis Intrusion ...\n");        rv = oem_supermicro_reset_intrusion(); diff --git a/util/oem_supermicro.h b/util/oem_supermicro.h index c8f9147..7237f3c 100644 --- a/util/oem_supermicro.h +++ b/util/oem_supermicro.h @@ -48,7 +48,7 @@ int oem_supermicro_get_lan_port(uchar *val);  int oem_supermicro_set_lan_port(uchar val);  char *oem_supermicro_lan_port_string(uchar val); -int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen, int fsimple); +int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen, int fsimple, char fdbg);  int decode_mem_supermicro(int prod, uchar b2, uchar b3, char *desc, int *psz);  int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc,                          char fdebug); diff --git a/vcvars32.bat b/vcvars32.bat new file mode 100755 index 0000000..3a2b316 --- /dev/null +++ b/vcvars32.bat @@ -0,0 +1,28 @@ +@echo off
 +REM Copy saved 32bit libraries into place, if present
 +REM iphlpapi.lib libeay32.dll libeay32.lib ssleay32.dll ssleay32.lib
 +REM Modify SAVLIB32 to a directory where these libs are saved.
 +set SAVLIB32=lib\x32
 +IF NOT EXIST %SAVLIB32% GOTO NOSAVLIB
 +copy /Y %SAVLIB32%\*.lib lib
 +copy /Y %SAVLIB32%\*.dll util
 +REM (do not copy mak) copy /Y util\x32\ipmiutil.mak util
 +:NOSAVLIB
 +REM sample VCINSTALLDIR from VS 2008
 +set VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
 +IF DEFINED VCINSTALLDIR GOTO HAVEVC
 +IF DEFINED VSINSTALLDIR GOTO HAVEVS
 +GOTO HAVEDEF
 +:HAVEVS
 +set VCDIR=%VSINSTALLDIR%\VC
 +:HAVEVC
 +set VCDIR=%VCINSTALLDIR%
 +:HAVEDEF
 +REM Run MS 32bit vcvars
 +set VCBAT="%VCDIR%\bin\vcvars32.bat"
 +IF EXIST %VCBAT% GOTO RUNVC
 +echo "Cannot locate vcvars32.bat, please run it manually."
 +GOTO DONE
 +:RUNVC
 +%VCBAT%
 +:DONE
 diff --git a/vcvars64.bat b/vcvars64.bat new file mode 100755 index 0000000..1e5f125 --- /dev/null +++ b/vcvars64.bat @@ -0,0 +1,28 @@ +@echo off
 +REM Copy saved 64bit libraries into place, if present
 +REM iphlpapi.lib libeay32.dll libeay32.lib ssleay32.dll ssleay32.lib
 +REM Modify SAVLIB64 to a directory where these libs are saved.
 +set SAVLIB64=lib\x64
 +IF NOT EXIST %SAVLIB64% GOTO NOSAVLIB
 +copy /Y %SAVLIB64%\*.lib lib
 +copy /Y %SAVLIB64%\*.dll util
 +REM (do not copy mak) copy /Y util\x64\ipmiutil.mak util
 +:NOSAVLIB
 +REM sample VCINSTALLDIR from VS 2008
 +set VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
 +IF DEFINED VCINSTALLDIR GOTO HAVEVC
 +IF DEFINED VSINSTALLDIR GOTO HAVEVS
 +GOTO HAVEDEF
 +:HAVEVS
 +set VCDIR=%VSINSTALLDIR%\VC
 +:HAVEVC
 +set VCDIR=%VCINSTALLDIR%
 +:HAVEDEF
 +REM Run MS 64bit vcvars
 +set VCBAT="%VCDIR%\bin\x86_amd64\vcvarsx86_amd64.bat"
 +IF EXIST %VCBAT% GOTO RUNVC
 +echo "Cannot locate vcvars for amd64, please run it manually."
 +GOTO DONE
 +:RUNVC
 +%VCBAT%
 +:DONE
 | 
