49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Multi-Gen LRU
|
|
if [ -z $(uci -q get cpufreq.cpufreq.mglru_enabled) ]; then
|
|
uci -q set cpufreq.cpufreq.mglru_enabled="1"
|
|
uci -q set cpufreq.cpufreq.mglru_min_ttl_ms="1000"
|
|
uci -q commit cpufreq
|
|
fi
|
|
|
|
# Cpufreq
|
|
if [ -z $(uci -q get cpufreq.cpufreq.governor0) ]; then
|
|
|
|
uci_write_config() {
|
|
uci -q set cpufreq.cpufreq.governor$1="$2"
|
|
uci -q set cpufreq.cpufreq.minfreq$1="$3"
|
|
uci -q set cpufreq.cpufreq.maxfreq$1="$4"
|
|
[ -n "$5" ] && uci -q set cpufreq.cpufreq.sdfactor$1="$5"
|
|
[ -n "$6" ] && uci -q set cpufreq.cpufreq.upthreshold$1="$6"
|
|
uci -q commit cpufreq
|
|
}
|
|
|
|
CPU_FREQS="$(cat '/sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies')"
|
|
CPU_POLICYS="$(find '/sys/devices/system/cpu/cpufreq/policy'* -maxdepth 0 | grep -Eo '[0-9]+')"
|
|
source "/etc/openwrt_release"
|
|
case "$DISTRIB_TARGET" in
|
|
"rockchip/armv8")
|
|
uci_write_config 0 schedutil $(echo $CPU_FREQS | awk '{print $2}') $(echo $CPU_FREQS | awk '{print $NF}')
|
|
# big.Little
|
|
if echo "$CPU_POLICYS" | grep -q "4"; then
|
|
CPU_FREQS_PERFORMANCE="$(cat "/sys/devices/system/cpu/cpufreq/policy${CPU_POLICYS}/scaling_available_frequencies")"
|
|
uci_write_config 4 schedutil $(echo $CPU_FREQS_PERFORMANCE | awk '{print $2}') $(echo $CPU_FREQS_PERFORMANCE | awk '{print $NF}')
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
fi
|
|
|
|
[ -f "/etc/config/ucitrack" ] && {
|
|
uci -q batch <<-EOF >/dev/null
|
|
delete ucitrack.@cpufreq[-1]
|
|
add ucitrack cpufreq
|
|
set ucitrack.@cpufreq[-1].init=cpufreq
|
|
commit ucitrack
|
|
EOF
|
|
}
|
|
|
|
rm -f /tmp/luci-indexcache*
|
|
exit 0
|