「ユーザー空間」のcpufreqガバナーを使用してCPU周波数を設定できません


22

私はラップトップ(Linuxを実行)のCPU周波数を変更しようとしていますが、成功していません。
詳細は次のとおりです。

# uname -a
Linux yoga 3.12.21-gentoo-r1 #4 SMP Thu Jul 10 17:32:31 HKT 2014 x86_64 Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz GenuineIntel GNU/Linux

# cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 2.60 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 2.60 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.42 GHz (asserted by call to hardware).
(similar information for cpus 1, 2 and 3)

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance powersave

最初はユーザースペースガバナーをカーネルに組み込みましたが、その後、モジュールとしてビルドしようとしました(同じ結果が得られました)。上記のコマンドの実行中にロードされました(ロード時にシステムメッセージが見つかりませんでした)。

# lsmod
Module                  Size  Used by
cpufreq_userspace       1525  0
(some other modules)

そして、周波数を変更するために試したコマンドは次のとおりです。

# cpufreq-set -f 800MHz
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
   for example because of hardware which cannot be set to a specific frequency
   or because the userspace governor isn't loaded?

# cpufreq-set -g userspace  
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
   for example because of hardware which cannot be set to a specific frequency
   or because the userspace governor isn't loaded?

何か案は?


@don_crisstiおかげで、あわや、私が試したecho 1 > /sys/devices/system/cpu/intel_pstate/no_turbo後、私はして再起動したp:インスタントカーネルパニックをしてましたintel_pstate=disableし、今ではACPI-cpufreqをを使用していますが、(私はもうエラーメッセージが届かないが)、私はまだ周波数を設定することはできません。ところで、あなたのコメントを答えにしてみませんか?
aditsu

@don_crissti cpupowerについては知りませんでした。それはやや厄介な構文を持っていますが、cpufreqよりもうまく動作するようです。頻度を設定できるようになりました:)ありがとう
aditsu

回答:


41

これは、システムがと呼ばれる新しいドライバーを使用しているためintel_pstateです。このドライバを使用する際に利用できる2つだけの知事がありますpowersaveperformance。知事は、古いでのみ利用可能であるドライバ(あなたは無効に自動的に使用されます起動時に、あなたはその後で知事/周波数を設定します):
userspaceacpi-cpufreqintel_pstatecpupower

  • 現在のドライバーを無効にintel_pstate=disableします:カーネルブート行に追加します
  • ブートし、userspaceモジュールをロードします。modprobe cpufreq_userspace
  • ガバナーを設定します。 cpupower frequency-set --governor userspace
  • 周波数を設定します。 cpupower --cpu all frequency-set --freq 800MHz

おかげで、ところで、周波数セットはせずに同じことをやっているようだ--cpu all
aditsu

3
古いドライバーを使用することには、いくつかの欠点がなければなりません。彼らは何ですか?
kontextify

2
@kontextifyより幸せなユーザー、自発的に新しいリリースをテストするための実験用のネズミとしての役割を果たす傾向が少ない。
メフィスト

0

答えはあなたの質問にあります:

for core in $(seq 0 "$(($(getconf _NPROCESSORS_ONLN) - 1))"); do
echo {performance|powersave} >/sys/devices/system/cpu/cpu$core/cpufreq/scaling_governor ;
done

それとカーネルは、ユーザー空間ガバナーを有効にしてコンパイルする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.