Alterar permanentemente a frequência máxima da CPU

6

Até agora eu encontrei uma solução temporária para o meu problema em Máximo de frequência da CPU preso em baixo valor , mas a questão que tenho é como torná-lo permanente. Logo após a reinicialização, as frequências são ajustadas de volta ao estoque de 1,90 GHz.

CPU Model = Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies = 2401000 2400000 2300000 2200000 2100000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1100000 1000000 900000 800000 [kHz]

/sys/devices/system/cpu/cpufreq/boost = 1

Algumas outras informações que podem ser relevantes ou não:

vitaliy:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit 1900000

e ...

vitaliy:~$ cat /sys/module/processor/parameters/ignore_ppc0

Pelo que eu notei, ignore_ppc e scaling_available_frequencies são sobrescritos toda vez na inicialização / reinicialização. Não tenho certeza sobre bios_limit .

    
por Vitaliy P. 03.09.2013 / 00:20

2 respostas

11

Ok, o problema estava em bios_limit .

Para começar, substitua quaisquer limitações do BIOS configurando ignore_ppc para 1 :

echo 1 > /sys/module/processor/parameters/ignore_ppc

Em seguida, altere a CPU scaling_max_freq para todos os núcleos usando este script [preste atenção nos números do núcleo! No meu caso quad-core, os números do núcleo: 0, 1, 2, 3]:

for x in /sys/devices/system/cpu/cpu[0-3]/cpufreq/;do 
  echo 2400000 > $x/scaling_max_freq
done

Fonte: link

Agora, como você não pode editar arquivos bios_limit , é necessário forçar o kernel a ignorá-lo.

Edite / etc / default / grub (você precisa fazer isso usando o privilégio de root) e altere

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

para

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash processor.ignore_ppc=1"

execute:

sudo update-grub

e reinicie.

Fonte: link Comentário Nº 24.

Agora, as frequências da CPU estão em 2,4 GHz, conforme desejado, usando energia CA.

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  2400000 [kHz]

/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq  =  2400000 [kHz]

/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq  =  2400000 [kHz]

/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq  =  2400000 [kHz]
    
por Vitaliy P. 18.09.2013 / 12:45
0

Uma abordagem é criar um script que execute a solução temporária e, em seguida, fazer o script ser executado em cada inicialização, adicionando o script em Sistema > Preferências > Aplicativos de inicialização ou no cron .

    
por Ramchandra Apte 03.09.2013 / 07:23

Tags