1#!/bin/bash 2 3set_cpu_freq() { 4 echo userspace > $1/scaling_governor 5 echo $2 > $1/scaling_setspeed 6 cur=`cat $1/scaling_cur_freq` 7 if [ "$cur" -eq "$2" ];then 8 echo "cpu freq policy:${d##*policy} success change to $cur KHz" 9 else 10 echo "cpu freq: failed change to $2 KHz, now $cur KHz" 11 exit 12 fi 13} 14 15if [ "$#" -eq "1" ];then 16 for d in /sys/devices/system/cpu/cpufreq/*; do 17 read -a array < $d/scaling_available_frequencies 18 let j=${#array[@]}-1 19 for i in `seq 0 $j`; do 20 if [ "$1" -eq "${array[$i]}" ];then 21 set_cpu_freq $d $1 22 exit 23 fi 24 done 25 echo "cpu freq: $1 is not in available frequencies: "${array[*]}"" 26 echo "cpu freq: now $(cat $d/scaling_cur_freq) Hz" 27 done 28else 29 cnt=0 30 RANDOM=$$$(date +%s) 31 while true; do 32 for d in /sys/devices/system/cpu/cpufreq/*; do 33 read -a FREQS < $d/scaling_available_frequencies 34 FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]} 35 echo -n "cnt: $cnt, " 36 set_cpu_freq $d ${FREQ} 37 let "cnt=$cnt+1" 38 done 39 done 40fi 41