From d2c6a6a0edd7a07b2b2a4c497cb03f8f17b74f23 Mon Sep 17 00:00:00 2001 From: binary Date: Fri, 19 Feb 2021 17:20:18 +0100 Subject: restart from scratch --- ipmi-fan | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 ipmi-fan (limited to 'ipmi-fan') diff --git a/ipmi-fan b/ipmi-fan new file mode 100755 index 0000000..8fb5dbc --- /dev/null +++ b/ipmi-fan @@ -0,0 +1,64 @@ +#!/bin/sh +# +# | _ +# | o o | | +# | _ _ _ _ | | __, _ _ +# | | |/ \_/ |/ |/ | |-----|/ / | / |/ | +# | |_/|__/ | | |_/|_/ |__/\_/|_/ | |_/ +# | /| |\ +# | \| |/ +# +# ipmi-fan +# +# controls fan speed for servers and computers using ipmi +# only supports dell idrac 6 for now (r710 battletested) +# +# ~ rgoncalves.se + +. ./ipmi.sh +. ./log.sh + +usage() { + cat <<-EOF + usage: ${0} -s speed + EOF +} + +log() { + echo "[${0} ] $@" +} + +main() { + # parse + while getopts "s:" arg; do + case "${arg}" in + s) + speed="${OPTARG}" + ;; + *) + usage + exit 1 + ;; + esac + done + + # Check fan speed validity + if [ -z ${speed} ]; then + log "-s must be a valid fan speend" + usage + exit 1 + fi + + # load environment variables for IPMI + ipmi_env + + # disable automatic fan control + ipmi_cmd raw 0x30 0x30 0x01 0x00 + log "automatic fan control disabled" + + # change fan speed + ipmi_cmd raw 0x30 0x30 0x02 0xff "0x${speed}" + log "set fan control to ${speed}" +} + +main $@ -- cgit v1.2.3