- Updated initscript to latest version from Dell
This commit is contained in:
parent
e94f0b1f8d
commit
4b715b9d3d
@ -2,7 +2,7 @@
|
||||
Summary: OpenIPMI (Intelligent Platform Management Interface) library and tools
|
||||
Name: OpenIPMI
|
||||
Version: 1.4.14
|
||||
Release: 7
|
||||
Release: 8
|
||||
License: GPL
|
||||
Group: System Environment/Base
|
||||
URL: http://sourceforge.net/projects/openipmi/
|
||||
@ -124,6 +124,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/*.a
|
||||
|
||||
%changelog
|
||||
* Thu Sep 01 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-8
|
||||
- Updated initscript to latest version from Dell
|
||||
|
||||
* Fri Aug 12 2005 Phil Knirsch <pknirsch@redhat.com> 1.4.14-7
|
||||
- Fixed the unwanted output of failed module loading of the initscript. Behaves
|
||||
now like all our other initscripts (#165476)
|
||||
|
@ -18,6 +18,15 @@
|
||||
# Short-Description: OpenIPMI Driver init script
|
||||
# Description: OpenIPMI Driver init script
|
||||
### END INIT INFO
|
||||
#
|
||||
# Exit Status values
|
||||
# from start:
|
||||
# 0 = no errors
|
||||
# 1 = a necessary requested module did not load (error)
|
||||
# 2 = an optional but requested module did not load (warning)
|
||||
# 2 = could not create the proper /dev device node (warning)
|
||||
|
||||
|
||||
#
|
||||
#############################################################################
|
||||
# for log_success_msg and friends
|
||||
@ -53,82 +62,81 @@ LOCKFILE=/var/lock/subsys/ipmi
|
||||
#############################################################################
|
||||
load_si()
|
||||
{
|
||||
if [ "${IPMI_SI}" = "1" ]; then
|
||||
modprobe ${IPMI_SI_MODULE_NAME} || RETVAL=1
|
||||
fi
|
||||
if [ "${IPMI_SI}" = "1" ]; then
|
||||
modprobe ${IPMI_SI_MODULE_NAME} || RETVAL=1
|
||||
fi
|
||||
}
|
||||
|
||||
load_smb()
|
||||
{
|
||||
if [ "${IPMI_SMB}" = "1" ]; then
|
||||
modprobe ${IPMI_SMB_MODULE_NAME} || RETVAL=1
|
||||
fi
|
||||
if [ "${IPMI_SMB}" = "1" ]; then
|
||||
modprobe ${IPMI_SMB_MODULE_NAME} || RETVAL=1
|
||||
fi
|
||||
}
|
||||
|
||||
load_hw_modules()
|
||||
{
|
||||
load_si
|
||||
load_smb
|
||||
load_si
|
||||
load_smb
|
||||
}
|
||||
|
||||
start_watchdog()
|
||||
{
|
||||
if [ "${IPMI_WATCHDOG}" = "1" ]; then
|
||||
load_hw_modules
|
||||
modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} || RETVAL=2
|
||||
if [ ! -x /sbin/udev -a ! -e /dev/watchdog ]; then
|
||||
mknod -m 0600 /dev/watchdog 10 130 || RETVAL=2
|
||||
if [ "${IPMI_WATCHDOG}" = "1" ]; then
|
||||
load_hw_modules
|
||||
modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} || RETVAL=2
|
||||
if [ ! -x /sbin/udev -a ! -e /dev/watchdog ]; then
|
||||
mknod -m 0600 /dev/watchdog c 10 130 || RETVAL=2
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
stop_watchdog()
|
||||
{
|
||||
modprobe -q -r ipmi_watchdog
|
||||
[ ! -x /sbin/udev ] && rm /dev/watchdog
|
||||
modprobe -q -r ipmi_watchdog
|
||||
[ ! -x /sbin/udev ] && rm -f /dev/watchdog
|
||||
}
|
||||
|
||||
start_powercontrol()
|
||||
{
|
||||
local poweroff_opts=""
|
||||
if [ "${IPMI_POWEROFF}" = "1" ]; then
|
||||
load_hw_modules
|
||||
[ "${IPMI_POWERCYCLE}" == "1" ] && poweroff_opts="poweroff_control=2"
|
||||
modprobe ipmi_poweroff "${poweroff_opts}" || RETVAL=2
|
||||
fi
|
||||
local poweroff_opts=""
|
||||
if [ "${IPMI_POWEROFF}" = "1" ]; then
|
||||
load_hw_modules
|
||||
[ "${IPMI_POWERCYCLE}" == "1" ] && poweroff_opts="poweroff_control=2"
|
||||
modprobe ipmi_poweroff "${poweroff_opts}" || RETVAL=2
|
||||
fi
|
||||
}
|
||||
|
||||
stop_powercontrol()
|
||||
{
|
||||
modprobe -q -r ipmi_poweroff
|
||||
modprobe -q -r ipmi_poweroff
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
unload_all_ipmi_modules()
|
||||
{
|
||||
[ ! -x /sbin/udev ] && rm -f "/dev/ipmi${INTF_NUM}"
|
||||
stop_watchdog
|
||||
for m in ${MODULES}; do
|
||||
modprobe -q -r ${m}
|
||||
done
|
||||
[ ! -x /sbin/udev ] && rm -f "/dev/ipmi${INTF_NUM}"
|
||||
stop_watchdog
|
||||
for m in ${MODULES}; do
|
||||
modprobe -q -r ${m}
|
||||
done
|
||||
}
|
||||
|
||||
unload_ipmi_modules_leave_features()
|
||||
{
|
||||
[ ! -x /sbin/udev ] && rm -f "/dev/ipmi${INTF_NUM}"
|
||||
for m in ${MODULES_INTERFACES}; do
|
||||
modprobe -q -r ${m}
|
||||
done
|
||||
lsmod | egrep -q "ipmi_poweroff|ipmi_watchdog"
|
||||
if [ "$?" -ne "0" ]; then
|
||||
stop_watchdog
|
||||
for m in ${MODULES}; do
|
||||
modprobe -q -r ${m}
|
||||
[ ! -x /sbin/udev ] && rm -f "/dev/ipmi${INTF_NUM}"
|
||||
for m in ${MODULES_INTERFACES}; do
|
||||
modprobe -q -r ${m}
|
||||
done
|
||||
fi
|
||||
lsmod | egrep -q "ipmi_(poweroff|watchdog)"
|
||||
if [ "$?" -ne "0" ]; then
|
||||
stop_watchdog
|
||||
for m in ${MODULES}; do
|
||||
modprobe -q -r ${m}
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#############################################################################
|
||||
load_ipmi_modules ()
|
||||
{
|
||||
@ -140,21 +148,23 @@ load_ipmi_modules ()
|
||||
start_powercontrol
|
||||
|
||||
if [ "${DEV_IPMI}" = "1" ]; then
|
||||
modprobe ipmi_devintf || RETVAL=2
|
||||
if [ "${RETVAL}" != "2" ]; then
|
||||
if [ ! -x /sbin/udev ]; then
|
||||
DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
|
||||
mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=2
|
||||
modprobe ipmi_devintf || RETVAL=2
|
||||
if [ "${RETVAL}" != "2" ]; then
|
||||
if [ ! -x /sbin/udev ]; then
|
||||
DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
|
||||
rm -f /dev/ipmi${INTF_NUM}
|
||||
mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=2
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${IPMI_IMB}" = "1" ]; then
|
||||
modprobe ipmi_imb || RETVAL=2
|
||||
if [ "${RETVAL}" != "2" ]; then
|
||||
DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
|
||||
mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=2
|
||||
fi
|
||||
modprobe ipmi_imb || RETVAL=2
|
||||
if [ "${RETVAL}" != "2" ]; then
|
||||
DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
|
||||
rm -f /dev/imb
|
||||
mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Per Corey Minyard, essentially no one uses ipmi_radisys
|
||||
@ -166,61 +176,146 @@ load_ipmi_modules ()
|
||||
#############################################################################
|
||||
start()
|
||||
{
|
||||
echo -n $"Starting ${MODULE_NAME} drivers: "
|
||||
load_ipmi_modules >/dev/null 2>&1
|
||||
[ "${RETVAL}" = "1" ] && log_failure_msg && return
|
||||
[ "${RETVAL}" = "2" ] && touch ${LOCKFILE} && log_warning_msg
|
||||
[ "${RETVAL}" = "0" ] && touch ${LOCKFILE} && log_success_msg
|
||||
echo -n $"Starting ${MODULE_NAME} drivers: "
|
||||
load_ipmi_modules > /dev/null 2>&1
|
||||
[ "${RETVAL}" = "1" ] && log_failure_msg && return
|
||||
[ "${RETVAL}" = "2" ] && touch ${LOCKFILE} && log_warning_msg
|
||||
[ "${RETVAL}" = "0" ] && touch ${LOCKFILE} && log_success_msg
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
stop()
|
||||
{
|
||||
echo -n $"Stopping ${MODULE_NAME} drivers: "
|
||||
unload_ipmi_modules_leave_features
|
||||
rm -f ${LOCKFILE}
|
||||
log_success_msg
|
||||
echo -n $"Stopping ${MODULE_NAME} drivers: "
|
||||
unload_ipmi_modules_leave_features
|
||||
rm -f ${LOCKFILE}
|
||||
log_success_msg
|
||||
}
|
||||
|
||||
stop_all()
|
||||
{
|
||||
echo -n $"Stopping ${MODULE_NAME} drivers: "
|
||||
unload_all_ipmi_modules
|
||||
rm -f ${LOCKFILE}
|
||||
log_success_msg
|
||||
echo -n $"Stopping all ${MODULE_NAME} drivers: "
|
||||
unload_all_ipmi_modules
|
||||
rm -f ${LOCKFILE}
|
||||
log_success_msg
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
restart()
|
||||
{
|
||||
stop_all
|
||||
start
|
||||
stop_all
|
||||
start
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
status ()
|
||||
|
||||
modules_loaded()
|
||||
{
|
||||
for m in ${MODULES}; do
|
||||
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
|
||||
echo "$m module loaded"
|
||||
else
|
||||
echo "$m module not loaded"
|
||||
fi
|
||||
done
|
||||
OnePlusLoaded=0
|
||||
OnePlusUnloaded=0
|
||||
for m in $@; do
|
||||
if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
|
||||
echo "$m module loaded."
|
||||
OnePlusLoaded=1
|
||||
else
|
||||
echo "$m module not loaded."
|
||||
OnePlusUnLoaded=1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
device_node_exists()
|
||||
{
|
||||
if [ -e "$1" ]; then
|
||||
echo "$1 exists."
|
||||
return 1
|
||||
fi
|
||||
echo "$1 does not exist."
|
||||
return 0
|
||||
}
|
||||
|
||||
minimum_modules_loaded()
|
||||
{
|
||||
modules_loaded ${MODULES_BASE}
|
||||
[ ${OnePlusLoaded} -eq 0 ] && return 0
|
||||
|
||||
modules_loaded ${MODULES_HW}
|
||||
[ ${OnePlusLoaded} -eq 0 ] && return 0
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
# Status return code bits
|
||||
# bit 0 set = minimum modules aren't loaded
|
||||
# bit 1 set = requested module isn't loaded
|
||||
# bit 2 set = /dev/ipmi0 doesn't exist
|
||||
# bit 3 set = /dev/watchdog doesn't exist
|
||||
# bit 4 set = lockfile doesn't exist
|
||||
|
||||
status_all()
|
||||
{
|
||||
RETVAL=0
|
||||
modules_loaded ${MODULES}
|
||||
[ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2))
|
||||
|
||||
device_node_exists /dev/ipmi${INTF_NUM}
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
|
||||
|
||||
device_node_exists /dev/watchdog
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
|
||||
|
||||
[ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16))
|
||||
}
|
||||
|
||||
status()
|
||||
{
|
||||
RETVAL=0
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
modules_loaded ipmi_devintf
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
|
||||
device_node_exists /dev/ipmi${INTF_NUM}
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
|
||||
}
|
||||
|
||||
status_watchdog()
|
||||
{
|
||||
RETVAL=0
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
modules_loaded ipmi_watchdog
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
|
||||
device_node_exists /dev/watchdog
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
|
||||
}
|
||||
|
||||
status_powercontrol()
|
||||
{
|
||||
RETVAL=0
|
||||
minimum_modules_loaded
|
||||
[ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
|
||||
|
||||
modules_loaded ipmi_powercontrol
|
||||
[ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
usage ()
|
||||
{
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|" 1>&2
|
||||
echo $" start-watchdog|stop-watchdog|" 1>&2
|
||||
echo $" start-powercontrol|stop-powercontrol|" 1>&2
|
||||
echo $" stop-all}" 1>&2
|
||||
RETVAL=1
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|" 1>&2
|
||||
echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2
|
||||
echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2
|
||||
echo $" stop-all|status-all}" 1>&2
|
||||
RETVAL=1
|
||||
}
|
||||
|
||||
condrestart ()
|
||||
{
|
||||
[ -e ${LOCKFILE} ] && restart
|
||||
[ -e ${LOCKFILE} ] && restart
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
@ -231,12 +326,15 @@ case "$1" in
|
||||
stop) stop ;;
|
||||
restart) restart ;;
|
||||
status) status ;;
|
||||
status-all) status_all ;;
|
||||
condrestart) condrestart ;;
|
||||
start-watchdog) start_watchdog ;;
|
||||
stop-watchdog) stop_watchdog ;;
|
||||
status-watchdog) status_watchdog ;;
|
||||
start-powercontrol) start_powercontrol ;;
|
||||
stop-powercontrol) stop_powercontrol ;;
|
||||
stop-all) stop_all ;;
|
||||
status-powercontrol) status_powercontrol ;;
|
||||
stop-all) stop_all ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user