CPU 전력 변경을 지속적으로 유지

CPU 전력 변경을 지속적으로 유지

전원 관리를 만지작거렸지만 원하는 변경 사항을 지속적으로 적용할 수 있는 방법을 찾을 수 없습니다. 예를 들어 다음 명령을 사용하여 최대 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의 최대 주파수가 기록된 값으로 변경됩니다. 귀하의 경우에는 20000002.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

관련 정보