162 lines · 2.2 KB · Text
RawDownload
#!/bin/bash# SPDX-License-Identifier: GPL-2.0-only# Intel MIC Platform Software Stack (MPSS)## Copyright(c) 2013 Intel Corporation.## 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 3fi 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 2esac exit $?