| #!/bin/bash |
| # Usage of this utility |
| function usage() { |
| echo "usage: power-util mb 1 [on|off]"; |
| } |
| |
| GPIO_BASE=$(cat /sys/class/gpio/gpio*/base) |
| PWR_GPIO=$(($GPIO_BASE + 32 + 3)) |
| BMC_RDY_GPIO=$(($GPIO_BASE + 144 +1)) |
| |
| if [ $# -lt 3 ]; then |
| echo "Total number of parameter=$#" |
| echo "Insufficient parameter" |
| usage; |
| exit 0; |
| fi |
| |
| if [ $1 != "mb" ]; then |
| echo "Invalid parameter1=$1" |
| usage; |
| exit 0; |
| fi |
| |
| if [ $2 -ne 1 ]; then |
| echo "Invalid parameter2=$2, Server $2 not supported" |
| usage; |
| exit 0; |
| fi |
| |
| if [ $3 = "on" ]; then |
| echo "Powering on Server $2" |
| echo 0 > /sys/class/gpio/gpio${BMC_RDY_GPIO}/value |
| echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value |
| echo 0 > /sys/class/gpio/gpio${PWR_GPIO}/value |
| sleep 1 |
| echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value |
| elif [ $3 = "off" ]; then |
| echo "Shutting down Server $2" |
| echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value |
| sleep 1 |
| echo 0 > /sys/class/gpio/gpio${PWR_GPIO}/value |
| sleep 6 |
| echo 1 > /sys/class/gpio/gpio${PWR_GPIO}/value |
| else |
| echo "Invalid parameter3=$3" |
| usage; |
| fi |
| |
| exit 0; |