web-dev-qa-db-ja.com

最大CPU周波数を永続的に変更する

これまでのところ、私の問題の一時的な解決策は CPUの最大周波数が低い値で止まっている で見つかりましたが、私が抱えている問題はそれを永続化する方法です。再起動直後、周波数はストック1.90GHzに戻ります。

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

関連する可能性がある、または関連しない可能性のある他の情報:

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

そして...

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

私が気づいたことから、ignore_ppcscaling_available_frequenciesはブート/リブートのたびに上書きされます。 bios_limitについてはわかりません。

7
Vitaliy P.

OK、問題はbios_limitにありました。

開始するには、ignore_ppc1に設定して、BIOSの制限を上書きします。

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

次に、このscriptを使用して、すべてのコアのCPUscaling_max_freqを変更します私の場合、クアッドコア、コアの番号:0、1、2、3]:

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

ソース: http://blog.patshead.com/2013/04/my-bios-is-limited-my-cpu-clock-speed.html

現在、bios_limitファイルを編集できないため、カーネルに強制的に無視させる必要があります。

編集/ etc/default/grub(root権限を使用してこれを行う必要があります)および変更

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash processor.ignore_ppc=1"

次に実行します:

Sudo update-grub

そして再起動します。

ソース: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/8562 CommentNº24。

これで、AC電源を使用している間、CPU周波数は必要に応じて2.4GHzになります。

/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]
12
Vitaliy P.

1つの方法は、一時的な解決策を実行するスクリプトを作成し、[システム]> [設定]> [スタートアップアプリケーション]または cron にスクリプトを追加することにより、ブートごとにスクリプトを実行することです。

0
Ramchandra Apte