Add incomplete TDP script
This commit is contained in:
parent
2a5ee63cc5
commit
68824daaae
|
@ -0,0 +1,119 @@
|
|||
#! /usr/bin/bash
|
||||
|
||||
# Set up help text
|
||||
command_name=$(basename $0)
|
||||
help_text="${command_name}: GDP Win 3 TDP management script
|
||||
|
||||
This script checks and sets the TDP using intel_rapl
|
||||
|
||||
Usage:
|
||||
${command_name} COMMAND [ARGUMENTS]
|
||||
|
||||
Command:
|
||||
check [ARG] Checks current TDP and prints it in watts
|
||||
set WATT Setts TDP to the requested number in watts
|
||||
help Prints this help text
|
||||
COMMAND help Prints help for specified command"
|
||||
|
||||
check_help_text="${command_name} check [ARG]
|
||||
|
||||
Example:
|
||||
${command_name} check --detail
|
||||
|
||||
Arguments:
|
||||
--detail, -d Prints PL2 as well as PL1
|
||||
--help Prints this help text"
|
||||
|
||||
set_help_text="${command_name} set WATT
|
||||
|
||||
Example:
|
||||
${command_name} set 15
|
||||
|
||||
Arguments:
|
||||
--help Prints this help text"
|
||||
|
||||
print_help () {
|
||||
case $1 in
|
||||
"check")
|
||||
echo "$check_help_text"
|
||||
;;
|
||||
"set")
|
||||
echo "$set_help_text"
|
||||
;;
|
||||
*)
|
||||
echo "$help_text"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
print_unknown () {
|
||||
echo "Unknown command or incorrect arguments.
|
||||
Try \"${command_name} help\" or \"${command_name} COMMAND --help\""
|
||||
}
|
||||
# End of help text
|
||||
|
||||
# Retrieves current TDP and prints it
|
||||
check_tdp () {
|
||||
if [ "$1" == "--detail" ] || [ "$1" == "-d" ]; then
|
||||
echo "Placeholder"
|
||||
echo "Extra placeholder"
|
||||
|
||||
elif [ -z "$1" ]; then
|
||||
echo "Placeholder"
|
||||
|
||||
elif [ "$1" == "--help" ]; then
|
||||
print_help "check"
|
||||
|
||||
else
|
||||
print_unknown
|
||||
fi
|
||||
}
|
||||
|
||||
# Sets TDP to number provided as first argument
|
||||
set_tdp () {
|
||||
if [ -z "$1" ]; then
|
||||
print_unknown
|
||||
exit
|
||||
elif [ "$1" == "--help" ]; then
|
||||
print_help "set"
|
||||
exit
|
||||
fi
|
||||
|
||||
if ! [[ $1 =~ ^-?[0-9]+$ ]]; then
|
||||
echo "TDP must be a plain number!)"
|
||||
elif [[ ! "$@" == *"--force"* ]] || [ $1 -lt 8 ] || [ $1 -gt 28 ]; then
|
||||
echo "TDP too high or low, should be between 8W and 28W"
|
||||
else
|
||||
#PL1
|
||||
local watts=$1
|
||||
local uwatts=$(expr $watts '*' 1000000)
|
||||
|
||||
#PL2
|
||||
local watts2=$(expr $watts + 2)
|
||||
local uwatts2=$(expr $watts2 '*' 1000000)
|
||||
|
||||
echo $uwatts
|
||||
echo "PL1 is now ${watts}W (Long-term)"
|
||||
echo "PL2 is now ${watts2}W (Short-term)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Command handler
|
||||
case $1 in
|
||||
|
||||
"check")
|
||||
check_tdp "${@:2}"
|
||||
;;
|
||||
|
||||
"set")
|
||||
set_tdp "${@:2}"
|
||||
;;
|
||||
|
||||
"help")
|
||||
print_help
|
||||
;;
|
||||
|
||||
*)
|
||||
print_unknown
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue