#!/bin/bash# Intel MIC Platform Software Stack (MPSS)## Copyright(c) 2013 Intel Corporation.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License, version 2, as# published by the Free Software Foundation.## This program is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU# General Public License for more details.## The full GNU General Public License is included in this distribution in# the file called "COPYING".## Intel MIC User Space Tools.## micctrl - Controls MIC boot/start/stop.## chkconfig: 2345 95 05# description: start MPSS stack processing.#### BEGIN INIT INFO# Provides: micctrl### END INIT INFO# Source function library.. /etc/init.d/functionssysfs="/sys/class/mic"_status(){ f=$sysfs/$1 echo -e $1 state: "`cat $f/state`" shutdown_status: "`cat $f/shutdown_status`"}status(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _status $1 return $? fi for f in $sysfs/* do _status `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0}_reset(){ f=$sysfs/$1 echo reset > $f/state}reset(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _reset $1 return $? fi for f in $sysfs/* do _reset `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0}_boot(){ f=$sysfs/$1 echo "linux" > $f/bootmode echo "mic/uos.img" > $f/firmware echo "mic/$1.image" > $f/ramdisk echo "boot" > $f/state}boot(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _boot $1 return $? fi for f in $sysfs/* do _boot `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0}_shutdown(){ f=$sysfs/$1 echo shutdown > $f/state}shutdown(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _shutdown $1 return $? fi for f in $sysfs/* do _shutdown `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0}_wait(){ f=$sysfs/$1 while [ "`cat $f/state`" != "offline" -a "`cat $f/state`" != "online" ] do sleep 1 echo -e "Waiting for $1 to go offline" done}wait(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _wait $1 return $? fi # Wait for the cards to go offline for f in $sysfs/* do _wait `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0}if [ ! -d "$sysfs" ]; then echo -e $"Module unloaded " exit 3ficase $1 in -s) status $2 ;; -r) reset $2 ;; -b) boot $2 ;; -S) shutdown $2 ;; -w) wait $2 ;; *) echo $"Usage: $0 {-s (status) |-r (reset) |-b (boot) |-S (shutdown) |-w (wait)}" exit 2esacexit $?
#!/bin/bash
# Intel MIC Platform Software Stack (MPSS)
#
# Copyright(c) 2013 Intel Corporation.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
#
# Intel MIC User Space Tools.
#
# micctrl - Controls MIC boot/start/stop.
#
# chkconfig: 2345 95 05
# description: start MPSS stack processing.
#
### BEGIN INIT INFO
# Provides: micctrl
### END INIT INFO
# Source function library.
. /etc/init.d/functions
sysfs="/sys/class/mic"
_status()
{
f=$sysfs/$1
echo -e $1 state: "`cat $f/state`" shutdown_status: "`cat $f/shutdown_status`"
}
status()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_status $1
return $?
fi
for f in $sysfs/*
do
_status `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_reset()
{
f=$sysfs/$1
echo reset > $f/state
}
reset()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_reset $1
return $?
fi
for f in $sysfs/*
do
_reset `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_boot()
{
f=$sysfs/$1
echo "linux" > $f/bootmode
echo "mic/uos.img" > $f/firmware
echo "mic/$1.image" > $f/ramdisk
echo "boot" > $f/state
}
boot()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_boot $1
return $?
fi
for f in $sysfs/*
do
_boot `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_shutdown()
{
f=$sysfs/$1
echo shutdown > $f/state
}
shutdown()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_shutdown $1
return $?
fi
for f in $sysfs/*
do
_shutdown `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_wait()
{
f=$sysfs/$1
while [ "`cat $f/state`" != "offline" -a "`cat $f/state`" != "online" ]
do
sleep 1
echo -e "Waiting for $1 to go offline"
done
}
wait()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_wait $1
return $?
fi
# Wait for the cards to go offline
for f in $sysfs/*
do
_wait `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
if [ ! -d "$sysfs" ]; then
echo -e $"Module unloaded "
exit 3
fi
case $1 in
-s)
status $2
;;
-r)
reset $2
;;
-b)
boot $2
;;
-S)
shutdown $2
;;
-w)
wait $2
;;
*)
echo $"Usage: $0 {-s (status) |-r (reset) |-b (boot) |-S (shutdown) |-w (wait)}"
exit 2
esac
exit $?