Respuestas:
No creo que pueda cambiar el valor predeterminado sin volver a compilar el núcleo. Con eso quiero decir, el que elige el núcleo cuando se inicia.
Sin embargo, puede indicarle que use un gobernador diferente mientras se ejecuta, por lo que si desea establecer de manera efectiva el valor predeterminado sin volver a compilar, puede agregar algo /etc/rc.local
u otro script de inicio.
El /sys
directorio no está en el disco; es un sistema de archivos falso en RAM que en realidad es una interfaz para obtener información y enviar comandos al núcleo. Todo esto es relativo a /sys/devices/system/cpu
, entonces:
> cd /sys/devices/system/cpu
También debe ser root para hacer los write ( echo blahblah >
). De todos modos, en relación con el directorio anterior, para ver los gobernadores disponibles:
> cat cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
Aparentemente, el tuyo es ondemand
(pero lee "Gotcha" a continuación sobre esto); verificar:
> cat cpu0/cpufreq/scaling_governor
ondemand
Para cambiarlo:
echo performance > cpu0/cpufreq/scaling_governor
Tenga en cuenta que esto debe hacerse root, o de esta manera
sudo sh -c "echo performance > cpu0/cpufreq/scaling_governor"
Simplemente sudo
no va a funcionar porque no hay una redirección, >
.
Ahora notará que el /sys/devices/system/cpu/cpufreq
directorio (¡NO es el mismo que /sys/devices/system/cpu/cpu0/cpufreq
!), Que anteriormente contenía identificadores de archivo para configurar el gobernador bajo demanda, está vacío.
En Raspbian hay un script de inicio, el nombre confuso raspi-config
(no, no tiene nada que ver con el otro, que se ejecuta en el primer arranque por el nombre también confuso apply_noobs_os_config.sh
), que utiliza esta técnica para configurar el gobernador a ondemand
menos que la tecla shift se mantiene presionado (se ha powersave
compilado el núcleo de Raspbian ). No hace nada más, por lo que es seguro deshabilitar this ( systemctl disable raspi-config
), o puede editarlo según la respuesta de Gorkamorka , pero corre el riesgo de que una actualización del sistema no edite , etc. sabe lo que alguien planea hacer con eso.
Puede intentar agregar la versión anterior a no sudo /etc/rc.local
. Esto puede suceder después de que el raspi-config
script haya salido.
tee
: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
.
cpufrequtils
y sysfsutils
. Después de instalarlos, puede configurar el gobernador y otros parámetros desde /etc/default/cpufrequtils
y /etc/sysfs.conf
- vea aquí: wiki.debian.org/HowTo/CpuFrequencyScaling
Hice un pequeño programa para cambiarlo y dejé que se cambiara cada arranque creando automáticamente un script init.d.
pregunta similar sobre el intercambio de pila RPi aquí.
Parafraseando, la velocidad bajo demanda sube al máximo cuando la CPU está al 95% ocupado. Puede reducir la cantidad de tiempo ocupado a un porcentaje menor (lo que significa que aumentará cuando no esté tan ocupado):
"escribir un valor entero en un archivo (puede poner lo siguiente, por ejemplo, en el archivo de inicio /etc/rc.local): echo 60> / sys / devices / system / cpu / cpufreq / ondemand / up_threshold"
entonces, teóricamente ... podrías poner este porcentaje en algo increíblemente bajo como 10 o 5, lo que significaría que siempre estaría funcionando al máximo.
Espero que esto ayude. ¡Asegúrese de puntuar a la persona que publicó esto en el artículo vinculado!
Una solución alternativa (si está ejecutando Raspbian) podría ser modificar el script init.d en /etc/init.d/raspi-config para deshabilitar siempre el regulador de escala. Su comportamiento predeterminado es habilitarlo solo al inicio si se presiona una de las teclas de mayúsculas:
#!/bin/sh
### BEGIN INIT INFO
# Provides: raspi-config
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Switch to ondemand cpu governor (unless shift key is pressed)
# Description:
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Checking if shift key is held down"
timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"
if [ $? -eq 0 ]; then
printf " Yes. Not enabling ondemand scaling governor"
log_end_msg 0
else
printf " No. Switching to ondemand scaling governor"
SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor if [ -e $SYS_CPUFREQ_GOVERNOR ]; t
hen
echo "ondemand" > $SYS_CPUFREQ_GOVERNOR
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 1 | sudo tee /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
fi
log_end_msg 0
fi
;;
*)
echo "Usage: $0 start" >&2
exit 3
;;
esac
echo "performance" | sudo tee / sys / devices / system / cpu / cpu0 / cpufreq / scaling_governor