전원 관리를 만지작거렸지만 원하는 변경 사항을 지속적으로 적용할 수 있는 방법을 찾을 수 없습니다. 예를 들어 다음 명령을 사용하여 최대 CPU 주파수를 설정했습니다.
sudo cpupower frequency-set --max 2GHz
그러나 값은 재부팅할 때마다 원래 값으로 되돌아갑니다. 이 변경 사항을 지속적으로 유지하는 표준 방법이 있습니까? 커널 모듈에 대해 읽었지만 어떻게 작동하는지 모르겠습니다... 누구든지 도와주실 수 있나요?
노트. 내 컴퓨터에서 Ubuntu 20.04를 실행 중입니다.
답변1
이것CPU 주파수 스케일링에 대한 Arch Wiki 페이지cpupower
변경 사항을 유지 하려면 여러 가지 접근 방식이 권장됩니다 .
- 언급했듯이 그 중 하나는 커널 모듈을 추가하는 것입니다. 그러나 더 쉬워야 할 다른 더 간단한 옵션이 있습니다. 더 쉬운 방법은 Arch Wiki에서 제안한 대로 서비스를
cpufreq
활성화 하는 것입니다.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.0GHz입니다. 머신의 모든 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의 최대 주파수가 변경됩니다.
답변2
# cat<<EOF > /etc/systemd/system/cpupower.service
[Unit]
Description=CPU powersave
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower -c all frequency-set --governor powersave -d 400MHz -u 1000MHz
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemcl enable cpupower