Kernel-Modules
使 cpupower 更改持久化
我一直在擺弄電源管理,但找不到一種方法來使我想要持久的更改。例如,我使用以下命令設置了最大 cpu 頻率:
sudo cpupower frequency-set --max 2GHz
但每次重新啟動時該值都會恢復到其原始值。有沒有一種標準的方法可以使這種變化持久化?我已經閱讀了核心模組,但我不知道它們是如何工作的……有人可以幫助我嗎?
筆記。我的機器執行的是 Ubuntu 20.04。
關於 CPU 頻率縮放的Arch Wiki 頁面提出了幾種不同的方法來使更改
cpupower
持久執行。
- 正如您所提到的,其中之一是添加核心模組。但是還有其他更簡單的選擇應該更容易。正如 Arch Wiki 中所建議的那樣,更簡單的是啟用
cpufreq
‘s服務。systemd
趕緊跑
sudo systemctl enable cpupower
並且每次啟動機器時都會啟動該服務。我現在沒有在機器上執行
systemd
,所以我無法執行任何測試。
- 第二個選項是添加
udev
規則。我現在已經對此進行了測試,並且效果很好。只需編輯名為/etc/udev/rules.d/50-scaling-governor.rules
或類似的文件(如果它不存在,則創建它)並將以下內容添加到其中:
SUBSYSTEM=="module", ACTION=="add", KERNEL=="acpi_cpufreq", RUN+="/bin/sh -c 'echo 2000000 | tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'"
這會將 CPU0 的最大頻率更改為寫入的值。在您的情況下
2000000
, 或 2.0 GHz。要對機器中的每個 CPU 執行相同操作,只需將前面的命令更改為
SUBSYSTEM=="module", ACTION=="add", KERNEL=="acpi_cpufreq", RUN+="/bin/sh -c 'echo 2000000 | tee /sys/devices/system/cpu/cpu*[0-9]/cpufreq/scaling_max_freq'"
這將改變系統中每個 CPU 的最大頻率。