Overclocking a través de la línea de comando

10

Estoy configurando una instancia de Puppet que gestionará un montón de RPis. Esto significa que no puedo overclockearlos uno por uno usando raspi-config.

El overclocking debería ser tan simple como crear /boot/config.txt:

root@rpi-032113 ~ # file /boot/config.txt 
/boot/config.txt: ASCII text
root@rpi-032113 ~ # cat /boot/config.txt 
gpu_mem=32
arm_freq=950
core_freq=250
sdram_freq=450
over_voltage=6

Sin embargo, cada vez que reinicio y hago una prueba de esfuerzo, se mantiene a 700MHz:

root@rpi-032113 ~ # nice yes >/dev/null &
[1] 3238
root@rpi-032113 ~ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
700000

root@rpi-032113 ~ # /opt/vc/bin/vcgencmd get_config int
arm_freq=950
core_freq=250
sdram_freq=450
over_voltage=6
temp_limit=85
force_pwm_open=1

Claramente se mantiene a 700MHz (también después de esperar otros 15 segundos adicionales), mientras que debería estar a 950MHz.

¿Qué me estoy perdiendo? ¿Hay un bit fijo que debe configurarse en la CPU antes de que esto funcione?

Tuinslak
fuente

Respuestas:

5

La frecuencia de la CPU se escala bajo demanda. Puede establecer el umbral a través de la variable sysctl 'up_threshold'. Puede configurarlo a través de:

sudo sh -c "echo 20 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold"

Esto establecerá el umbral al 20% de utilización de la CPU.

El regulador de escala se puede configurar a pedido mediante:

sudo sh -c "echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Puede poner esto en su /etc/rc.local, por lo que se ejecutará durante el arranque. Puede omitir las sudo sh -ccosas entonces, porque de rc.localtodos modos se ejecuta como root.

Puede encontrar más documentación sobre el reloj de la CPU aquí .

Arne
fuente
-bash: / sys / devices / system / cpu / cpu0 / cpufreq / ondemand / up_threshold: No existe tal archivo o directorio - Sin embargo, la configuración "ondemand" lo resolvió, gracias - root @ rpi-032113 ~ # nice yes> / dev / null & [1] 4650 root @ rpi-032113 ~ # cat / sys / devices / system / cpu / cpu0 / cpufreq / scaling_cur_freq 950000
Tuinslak
Obtuve el mismo error que Tuinslak, pero después de curiosear los archivos en /sys...cpufreq/ encontré un archivo que hace lo mismo.
Mateo
Sí, quizás necesites dejar de lado la CPU. Quizás esto solo exista en sistemas multi-core. No tengo mi Pi conmigo para verificar esto.
Arne
Sí, parece que necesitas echar el cpu0: raspberrypi.org/phpBB3/viewtopic.php?f=24&t=20156
Arne
Si genial. Parece estar funcionando como un encanto ahora. Supongo que estos comandos están incluidos en una instalación raspbian (por qué funcionó bien en otros 3 RPi), pero no cuando lo arrancas desde cero para mi configuración de Puppet. Gracias.
Tuinslak
0

El overclock solo se activa si hay un uso de CPU lo suficientemente alto. Para cambiar la frecuencia mínima del brazo hacer

sudo nano /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Nano es mi editor de texto de línea de comandos favorito, pero puede usar otros como vi o vim. El número en el archivo es la frecuencia del brazo actual en kHz (¡No mHz!). Para aumentar la frecuencia mínima del brazo, simplemente aumente el número. Para el caso de tuinslack el número sería 950000.

En la carpeta cpufreq puede encontrar otras configuraciones, como la frecuencia maxiumum arm. Si mantiene presionada la tecla shift en el arranque, el overclock se desactivará. Mantener el overclock activado aumentará dramáticamente la temperatura de la CPU.

Mateo
fuente
Si bien esto debería solucionarlo, también hará que la CPU esté a 950MHz, incluso cuando está inactiva (que es algo que me gustaría evitar, ya que OC'ing todavía tiene algunos riesgos); ya que es el "mínimo" en que puede estar el reloj de la CPU. Quería overclockear dinámicamente según sea necesario (ver la otra respuesta).
Tuinslak
@tuinslak Esta es solo otra forma de hacerlo.
Mateo