2025-05-10 21:49:39 +08:00

46 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
DMC_PATH=/sys/class/devfreq/dmc
if [ ! -e "$DMC_PATH" ];then
echo "non-existent dmc path, please check if dmc enabled"
exit
fi
set_ddr_freq() {
echo userspace > $DMC_PATH/governor
echo $1 > $DMC_PATH/userspace/set_freq
cur=$(cat $DMC_PATH/cur_freq)
if [ "$cur" -eq "$1" ];then
echo "ddr freq: success change to $cur Hz"
else
echo "ddr freq: failed change to $1 HZ, now $cur Hz"
exit
fi
}
if [ "$#" -eq "1" ];then
read -a array < $DMC_PATH/available_frequencies
let j=${#array[@]}-1
for i in `seq 0 $j`; do
if [ "$1" -eq "${array[$i]}" ];then
set_ddr_freq $1
exit
fi
done
echo "ddr freq: $1 is not in available frequencies: "${array[*]}""
echo "ddr freq: now $(cat $DMC_PATH/cur_freq) Hz"
else
cnt=0
read -a FREQS < $DMC_PATH/available_frequencies
RANDOM=$$$(date +%s)
while true; do
echo userspace > $DMC_PATH/governor
FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
echo -n "cnt: $cnt, "
set_ddr_freq ${FREQ}
let "cnt=$cnt+1"
done
fi