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