You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.7 KiB
105 lines
2.7 KiB
#!/bin/bash
|
|
|
|
# defines
|
|
CPU_DIR="/sys/devices/system/cpu"
|
|
GPU_DIR="/sys/class/kgsl/kgsl-3d0"
|
|
|
|
# helper functions
|
|
fileexists() {
|
|
[ `adb shell "[ -f $1 ] && echo found"` ]
|
|
}
|
|
getprop() {
|
|
if fileexists $1; then
|
|
echo `adb shell cat $1 | tr -d '\r'`
|
|
else
|
|
echo "FILE $1 NOT FOUND"
|
|
fi
|
|
}
|
|
setprop() {
|
|
if fileexists $1; then
|
|
adb shell "echo -n $2 > $1"
|
|
else
|
|
echo "FILE $1 NOT FOUND"
|
|
fi
|
|
}
|
|
|
|
# setup
|
|
echo
|
|
if [[ "`adb shell id | tr -d '\r' | awk -F'[()]' '{print $2}'`" != "root" ]]; then
|
|
adb root
|
|
adb wait-for-device
|
|
fi
|
|
|
|
# device name
|
|
echo Device: `adb shell getprop ro.product.model`
|
|
echo
|
|
|
|
# collect and count all cores
|
|
frequency=
|
|
frequencies=
|
|
cores=`adb shell ls /sys/devices/system/cpu/ | grep cpu[0-9].* | tr -d '\r'`
|
|
for core in $cores; do
|
|
|
|
# display cpu
|
|
echo "$core:"
|
|
|
|
# display current status
|
|
if fileexists $CPU_DIR/$core/online && [ `getprop $CPU_DIR/$core/online` -eq 0 ]; then
|
|
echo " Status: OFFLINE"
|
|
else
|
|
echo " Status: ONLINE"
|
|
fi
|
|
|
|
# display available frequencies
|
|
if fileexists $CPU_DIR/$core/cpufreq/scaling_available_frequencies; then
|
|
frequencies=(`getprop $CPU_DIR/$core/cpufreq/scaling_available_frequencies`)
|
|
elif fileexists $CPU_DIR/$core/cpufreq/stats/time_in_state; then
|
|
frequencies=(`adb shell cat $CPU_DIR/$core/cpufreq/stats/time_in_state | cut -f1 -d " " | tr -d '\r'`)
|
|
fi
|
|
frequencies=( `printf "%s\n" "${frequencies[@]}" | sort -n` )
|
|
echo " Available Frequencies: ${frequencies[@]} (Hz)"
|
|
|
|
# display current frequency
|
|
if fileexists $CPU_DIR/$core/cpufreq/scaling_cur_freq; then
|
|
frequency=`getprop $CPU_DIR/$core/cpufreq/scaling_cur_freq`
|
|
fi
|
|
echo " Current Frequency: $frequency (Hz)"
|
|
|
|
done
|
|
|
|
# poll gpu
|
|
echo
|
|
echo "GPU:"
|
|
|
|
# get available gpu frequencies in sorted order
|
|
if fileexists $GPU_DIR/devfreq/available_frequencies; then
|
|
frequencies=(`getprop $GPU_DIR/devfreq/available_frequencies`)
|
|
elif fileexists $GPU_DIR/gpu_available_frequencies; then
|
|
frequencies=(`getprop $GPU_DIR/gpu_available_frequencies`)
|
|
elif fileexists /d/clock/gbus/possible_rates; then
|
|
frequencies=(`getprop /d/clock/gbus/possible_rates`)
|
|
else
|
|
echo " Unable to find available GPU frequencies"
|
|
echo
|
|
exit
|
|
fi
|
|
frequencies=( `printf "%s\n" "${frequencies[@]}" | sort -n` )
|
|
if [ ${frequencies[0]} == "(kHz)" ]; then
|
|
frequencies=(`printf "%s000\n" "${frequencies[@]:1}"`)
|
|
fi
|
|
echo " Available Frequencies: ${frequencies[@]} (Hz)"
|
|
|
|
# collect and print current gpu frequency
|
|
if fileexists $GPU_DIR/max_gpuclk; then
|
|
freq=`getprop $GPU_DIR/max_gpuclk`
|
|
elif fileexists /d/clock/override.gbus/rate; then
|
|
freq=`getprop /d/clock/override.gbus/rate`
|
|
else
|
|
echo "ERROR: unable to find current GPU frequency"
|
|
exit
|
|
fi
|
|
echo " Current Frequency: $freq (Hz)"
|
|
echo
|
|
|
|
|