Tlp、cpupower、またはその他のツールを使用してCPU周波数を制御できませんでした。カーネルのバージョンは5.3.0-19-genericです。
Intel_pstate activeを使用するか、カーネルブートパラメーターとして 'intel_pstate = disabled'を指定してintel pstateをオフにしようとすると、acpi-cpufreqがドライバーになります。いずれにしても、CPU周波数を制御するものはありません。
注:x86_energy_perf_policyでperfポリシーを変更できるようにするには、BIOSで「セキュアブート」をオフにする必要がありました。それでも、問題はありませんでした。
これが動作です:
(1)ポリシー「パフォーマンス」を備えたintel_pstateドライバーを使用すると、CPU周波数が最大1.3 GHz(約1.25 GHz)近くに移動します。ポリシー「powersave」を使用すると、CPU周波数が1.1GHz付近でホバリングするか、まったく変化しなかった可能性があります。 cpupowerまたはtlp設定で何かを設定しようとしても何も起こりませんでした。
(2)acpi-cpufreqドライバーを使用する場合、ツール(個別に使用)の設定は重要ではありません。
システムから他のツールを削除しながら、ツールを1つずつ使用して、ツールが競合していないことを確認しました。
システムの機能:CPU周波数は、「オンデマンド」ガバナーによって常に制御されているかのように調整されます。しかし、とにかく、私はパフォーマンスポリシー、ガバナー、またはその他の設定を設定して、CPUを任意の頻度より低く保つことはできません。
私は2週間Googleを精査して自分の問題に関連するすべてを調べ、多くの提案を試みましたが、何もうまくいきませんでした。すべてのツール(tlp、cpupower、cpufreqd、cpurequtilsなど)では、CPUはデフォルトで「オンデマンド」ガバナーによって制御されます。 (システムはこれを設定するスクリプト/ lib/systemd/set-cpufreqを呼び出します。)もちろんこれを変更できますが、問題ではないようです。
どんな助けでも大歓迎です。
解決策を見つけました。まず、not intel_pstateを無効にします。次に、必要に応じてtlpのデフォルトを設定します。
次に、BIOSで「セキュアブート」を一時的にオフにします。これは、次のコマンドが機能するために必要です。
問題(CPUが8つあるため、0〜7)
$ x86_energy_perf_policy -c 0-7 --hwp-max 1
これにより、ある種のハードウェアの最大周波数パラメーター(?ファームウェア)が最低レベルに設定され、最大CPU周波数canが最低CPU周波数に一致するようにcpupowerによって変更されます。 (--hwp-min 1は、最小周波数パラメーターがまだ設定されていない場合は設定します。ただし、これを行う必要はありません。)
これで、BIOSで「セキュアブート」を再びオンにすることができます。
次に発行
$ cpupower -c all frequency-set -u 800Mhz -g powersave
あなたが好きな速度でそれが動作するはずです。これまでのところ、うまくいきました。サスペンド/ウェイクは、CPU周波数設定を妨げません。 tlpのACおよびBATT設定は、本来あるべきものとして尊重されています。
注:システムがアイドル状態のとき、私が到達できる最小の電力は約3.5ワットです。 7390が下がる場合は、投稿してください!
あなたはこれを使うことができます CPUをスロットルするためのGUIまたは単純なBashスクリプト? 周波数を上書きするために:
このデモでは、cpuf
ウィンドウが左側にあり、conky
システム情報が右側にあります。これがデモの進行方法です。
800
/3500
です800
/800
に上書きすると、CPU使用率が20%に急上昇します3500
/3500
に上書きすると、CPU使用率が10%に低下します