Overclock via linha de comando

10

Estou configurando uma instância Puppet que gerenciará um monte de RPis. Isso significa que não posso fazer um overclock deles um por um usando o raspi-config.

O overclock deve ser tão simples quanto criar /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

No entanto, sempre que eu reiniciar e testar o estresse, ele permanecerá em 700 MHz:

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

Ele claramente fica em 700MHz (também depois de esperar mais 15 segundos extras), enquanto deve estar em 950MHz.

o que estou perdendo? Existe um bit que precisa ser definido na CPU antes que isso funcione?

Tuinslak
fonte

Respostas:

5

A frequência da CPU é dimensionada sob demanda. Você pode definir o limite através da variável sysctl `up_threshold '. Você pode configurá-lo via:

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

Isso definirá o limite para 20% de utilização da CPU.

O regulador de escala pode ser configurado para ondemand via:

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

Você pode colocar isso no seu /etc/rc.local, para que seja executado durante a inicialização. Você pode deixar de fora as sudo sh -ccoisas, porque rc.localé executado como root de qualquer maneira.

Mais documentação sobre o clock da CPU pode ser encontrada aqui .

Arne
fonte
-bash: / sys / devices / system / cpu / cpu0 / cpufreq / ondemand / up_threshold: Esse arquivo ou diretório não existe - No entanto, a configuração "ondemand" resolveu, obrigado - root @ rpi-032113 ~ # nice yes> / dev / null & [1] 4650 root @ rpi-032113 ~ # cat / sys / devices / system / cpu / cpu0 / cpufreq / scaling_cur_freq 950000
Tuinslak
Eu recebi o mesmo erro que Tuinslak, mas depois de bisbilhotar os arquivos em /sys...cpufreq/, encontrei um arquivo que faz a mesma coisa.
Matthew
Sim, talvez você precise deixar de fora a cpu0. Talvez isso exista apenas em sistemas com vários núcleos. Não tenho meu Pi comigo para verificar isso.
Arne
Sim, parece que você precisa para expulsar o cpu0: raspberrypi.org/phpBB3/viewtopic.php?f=24&t=20156
Arne
Sim ótimo. Parece estar funcionando como um encanto agora. Eu acho que esses comandos estão incluídos em uma instalação raspbian (por que funcionou bem em outros 3 RPi's), mas não quando você o inicializa do zero para minha configuração do Puppet. Obrigado.
Tuinslak
0

O overclock é ativado somente se houver um uso de CPU alto o suficiente. Para alterar a frequência mínima do braço, faça

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

O Nano é meu editor de texto de linha de comando favorito, mas você pode usar outros como vi ou vim. O número no arquivo é a frequência atual do braço em kHz (não mHz!). Para aumentar a frequência mínima do braço, basta aumentar o número. Para o caso de tuinslack, o número seria 950000.

Na pasta cpufreq, você pode encontrar outras configurações, como o maxiumum arm freq. Se você pressionar Shift na inicialização, o overclock será desativado. Manter o overclock ativado aumentará drasticamente a temperatura da CPU.

Mateus
fonte
Embora isso deva corrigi-lo, também fará com que a CPU esteja em 950MHz, mesmo quando ociosa (o que é algo que eu gostaria de evitar, pois o OC'ing ainda apresenta alguns riscos); como é o "mínimo" no relógio da CPU. Eu queria fazer um overclock dinâmico conforme necessário (veja a outra resposta).
Tuinslak
@tuinslak Esta é apenas outra maneira de fazer isso.
Matthew