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