Como utilizar o cpupower.service no OpenSUSE TW

Mudei para o Tumbleweed recentemente, e estou com uma dificuldade em ativar o cpupower.service nele. Eu usava esse service do systemd para fazer com que o cpu-governor sempre ficasse em performance mode, além de poder definir limites mínimos e máximos para a taxa da cpu. Eu sempre coloco próximo do máximo, por que a minha placa de vídeo integrada faz o scrolling do firefox não ser liso quando eu deixo sem essa manobra.

O que eu quero: setar o cpupower.service para ter taxa de cpu e cpu-governor definidos desde o boot para aumentar performance gráfica (para não ter que digitar coisas todas as vezes que iniciar o pc)

O que está acontecendo: vide imagens

sudo systemctl enable --now cpupower funciona? se fizer sudo systemctl enable e der uns tabs ele lista todos os daemons (?) disponíveis pra habilitar

Não, não funciona.

Resultado do systemctl enable com tab

fiz um sudo find / -xdev -iname "*cpupower*" aqui e o resultado é esse:
https://paste.ubuntu.com/p/HxXZJKYzqR/
imagino que /etc/systemd/system/multi-user.target.wants/cpupower.service ou /usr/lib/systemd/system/cpupower.service são arquivos que devem existir no teu sistema pra ele funcionar

se não existir o arquivo /etc/systemd/system/multi-user.target.wants/cpupower.service tem o seguinte conteúdo:

[Unit]
Description=Apply cpupower configuration
ConditionVirtualization=!container

[Service]
Type=oneshot
EnvironmentFile=/etc/default/cpupower
ExecStart=/usr/lib/systemd/scripts/cpupower
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

caso o outro arquivo não exista (/usr/lib/systemd/system/cpupower.service), o conteúdo dele é o mesmo do anterior.

se não me engano o segundo arquivo é o responsável por criar o primeiro, basta ele estar disponível que ele aparece no sudo systemctl enable [tabs], e ele mesmo trata de criar o outro arquivo (o systemd faz um symlink)

Consegui fazer o symlink, obrigado. Vou reiniciar e ver no que dá.

Bom, o systemctl acusa que está enabled o cpupower.service, mas eu continuo com essa configuração:

ruby@localhost:~> cpupower frequency-info
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: Cannot determine or is not supported.
hardware limits: 800 MHz - 4.30 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 800 MHz and 4.30 GHz.
The governor “powersave” may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 800 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes

Eu lembro que no Arch tinha um arquivo, se eu não me engano era o /etc/default/cpupower, que me deixava configurar facilmente a frequência do processador e o governor, mas aqui esse arquivo só tem uma linha escrito “governor=performance”. Lembro que o outro tinha várias opções. Como conserto isso?

Edit #2: aparentemente está faltando esse arquivo:

ruby@localhost:~> sudo systemctl status cpupower.service
● cpupower.service - Apply cpupower configuration
Loaded: loaded (/usr/lib/systemd/system/cpupower.service; enabled; vendor preset: disabled)
Active: failed (Result: resources) since Mon 2021-01-18 12:50:27 -04; 4min 29s ago

Jan 18 12:50:27 localhost systemd[1]: Starting Apply cpupower configuration…
Jan 18 12:50:27 localhost systemd[702]: cpupower.service: Failed to execute command: No such file or directory
Jan 18 12:50:27 localhost systemd[702]: cpupower.service: Failed at step EXEC spawning /usr/lib/systemd/scripts/cpupower: No such >
Jan 18 12:50:27 localhost systemd[1]: cpupower.service: Main process exited, code=exited, status=203/EXEC
Jan 18 12:50:27 localhost systemd[1]: cpupower.service: Failed with result ‘exit-code’.
Jan 18 12:50:27 localhost systemd[1]: Failed to start Apply cpupower configuration.
Jan 18 12:54:43 localhost.localdomain systemd[1]: cpupower.service: Failed to load environment files: No such file or directory
Jan 18 12:54:43 localhost.localdomain systemd[1]: cpupower.service: Failed to run ‘start’ task: No such file or directory
Jan 18 12:54:43 localhost.localdomain systemd[1]: cpupower.service: Failed with result ‘resources’.
Jan 18 12:54:43 localhost.localdomain systemd[1]: Failed to start Apply cpupower configuration.

1 curtida

Tá faltando você criar os scripts.

Você lembra os comandos corretos para setar o cpupower ?

Talvez nem precise de script.

Se lembrar os comandos, pode colocar direto na definição do service.

Na verdade, o único comando que eu sei é fazer ele definir as coisas manualmente com: sudo cpupower frequency-set --min 3.4GHz --max 4.3GHz -g performance

Nunca precisei mexer muito nisso por que no Arch vinha por default. Mas bem, lá eles usam o systemd-boot, aqui usa Grub. Não sei se tem a ver, mas pode ser que haja diferenças por causa disso.

Executa aí esse comando.

Dá algum erro ?

Na verdade funciona perfeitamente. É que queria que iniciasse por default em cada boot sem ter que rodar o comando.

Então o arquivo de service pode ficar assim

[Unit]
Description=CPU powersave

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set --min 3.4GHz --max 4.3GHz -g performance

[Install]
WantedBy=multi-user.target

Obrigado @leoteodoro e @chimpa_theist pela ajuda. Depois de seguir a orientação de ambos, especialmente a do chimpa no último post, esse é o resultado do cpupower frequency-info

ruby@localhost:~/Pictures> cpupower frequency-info
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: Cannot determine or is not supported.
hardware limits: 800 MHz - 4.30 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 3.40 GHz and 4.30 GHz.
The governor “performance” may decide which speed to use
within this range.

current CPU frequency: Unable to call hardware
current CPU frequency: 4.20 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes

2 curtidas