O Que Esta em Jogo
O undervolt é uma técnica que consiste em reduzir a tensão elétrica fornecida a um processador (CPU) ou placa gráfica (GPU) abaixo dos valores definidos de fábrica, mantendo as frequências de operação inalteradas. O objetivo principal é diminuir a potência dissipada na forma de calor, resultando em temperaturas mais baixas, menor consumo energético e, em muitos casos, redução do ruído dos ventiladores. No ecossistema Linux, essa prática continua sendo relevante para usuários que buscam extrair maior eficiência térmica de seus equipamentos, especialmente em notebooks e sistemas compactos onde o resfriamento é limitado.
Contudo, a viabilidade do undervolt no Linux depende fortemente do hardware, do firmware e das mitigações de segurança implementadas pela Intel após a descoberta da vulnerabilidade conhecida como . Essa falha, que permitia a manipulação maliciosa da tensão para corromper dados, levou a fabricante a desabilitar o ajuste de voltagem em muitos processadores modernos por meio de atualizações de microcódigo e configurações de BIOS. Como resultado, nem todos os CPUs Intel suportam undervolt atualmente, e mesmo entre os que suportam, pode ser necessário contornar bloqueios impostos pelo fabricante.
Apesar dessas limitações, a comunidade Linux mantém diversas ferramentas e projetos ativos que permitem realizar o undervolt de forma segura e controlada. As mais conhecidas incluem o utilitário de linha de comando `undervolt` e o pacote `intel-undervolt` para CPUs Intel, além dos aplicativos gráficos LACT e CoreCtrl para GPUs AMD e NVIDIA. Este guia prático aborda os conceitos fundamentais, as ferramentas disponíveis, os passos para aplicação e as respostas para as dúvidas mais comuns sobre undervolt no Linux.
Explorando o Tema
1 Como funciona o undervolt
O princípio do undervolt é simples: cada processador é calibrado na fábrica para operar dentro de uma faixa de tensão que garanta estabilidade em todas as condições. Essa faixa costuma ser conservadora, oferecendo margem extra para lidar com variações de temperatura, envelhecimento e lotes de produção. Ao reduzir a tensão de operação, diminui-se a potência dissipada (P = V² × f × C), o que se traduz em menos calor e menor consumo elétrico.
No Linux, o controle de voltagem é feito por meio da interface MSR (Model-Specific Register) ou via interface ACPI. Ferramentas como `undervolt` e `intel-undervolt` escrevem offsets de tensão nos registradores apropriados, ajustando a tensão dinamicamente conforme a carga. Os parâmetros que podem ser configurados incluem:
- Offset de tensão da CPU (core, cache, gráfico integrado, etc.)
- Temperature target (temperatura alvo para throttling)
- Limites de potência curta e longa (PL1, PL2)
2 Ferramentas principais
2.2.1 Undervolt para CPU Intel
O projeto `undervolt` é um utilitário em Python que oferece uma interface de linha de comando semelhante ao ThrottleStop do Windows. Ele permite definir offsets de tensão para diferentes domínios do processador (core, cache, uncore, etc.) e também ajustar o e os limites de potência. Sua instalação é feita via pip ou diretamente a partir do GitHub. A sintaxe básica é:
sudo undervolt --core -100 --cache -100 --temp 90
Onde `--core -100` aplica um offset de -100 mV ao núcleo da CPU, e `--temp 90` define a temperatura máxima antes do throttling em 90°C. O projeto é leve, não possui dependências pesadas e funciona em distribuições baseadas em Debian, Arch, Fedora, entre outras.
Outra opção é o `intel-undervolt`, que oferece tanto CLI quanto uma interface gráfica (GUI) opcional, facilitando o uso para iniciantes. Ele também suporta a persistência das configurações via systemd.
2.2.2 LACT e CoreCtrl para GPUs
Para GPUs, a comunidade tem adotado com frequência o LACT (Linux AMD/NVIDIA Control Tool) e o CoreCtrl. Ambos permitem controlar a voltagem de forma gráfica, ajustando curvas de frequência-tensão, limites de potência e curvas de ventoinha. O LACT, em particular, tem ganhado popularidade por oferecer suporte a GPUs AMD e NVIDIA de maneira unificada, com uma interface moderna e funcionalidades como monitoramento em tempo real.
Já o CoreCtrl é mais voltado para GPUs AMD, embora também funcione com algumas GPUs Intel e NVIDIA. Ele se integra bem a ambientes desktop e permite criar perfis por aplicação, o que é útil para jogos ou workloads específicos. Ambos podem ser instalados via flatpak ou repositórios oficiais das distribuições.
3 Limitações pós-Plundervolt
A vulnerabilidade Plundervolt (CVE-2019-11157) expôs que a manipulação da tensão poderia ser usada para induzir erros de computação, possibilitando ataques de escalonamento de privilégios. Em resposta, a Intel lançou atualizações de microcódigo que, em muitos processadores a partir da 8ª geração (Coffee Lake), desabilitam a capacidade de ajuste de tensão via software. Em alguns casos, a desabilitação é feita no nível da BIOS, sem opção de reativação.
Como resultado, muitos usuários relatam que o undervolt simplesmente não funciona em laptops ou desktops recentes, mesmo utilizando as ferramentas corretas. Por outro lado, processadores mais antigos (Skylake, Kaby Lake) e alguns modelos selecionados continuam permitindo o ajuste. É essencial verificar o suporte antes de tentar aplicar undervolt. O ArchWiki recomenda testar com a ferramenta `undervolt` e observar se os offsets são aceitos pelo hardware.
4 Valores típicos e testes de estabilidade
Relatos da comunidade indicam que reduções de 100 mV a 200 mV na tensão da CPU e do cache são frequentemente estáveis, especialmente em processadores Intel de 6ª e 7ª gerações. No entanto, cada chip é único devido a variações de fabricação, e o que funciona para um pode causar instabilidade em outro. Por isso, é indispensável realizar testes de estresse após aplicar qualquer ajuste.
Ferramentas recomendadas para stress testing incluem:
- stress e stress-ng para carga geral da CPU
- Prime95 (via Wine ou versão nativa) para testes intensivos de FPU
- s-tui (interface TUI para monitoramento e estresse)
- glmark2 ou Unigine para testes de GPU
Lista: Passos básicos para undervolt de CPU Intel no Linux
- Verificar suporte do hardware – Identifique o modelo exato do processador (ex.: `cat /proc/cpuinfo | grep "model name"`). Consulte listas online de CPUs que permitem undervolt ou teste diretamente com a ferramenta.
- Acessar e configurar a BIOS – Se disponível, habilite opções como "Overclocking Lock" ou "Voltage Control". Em notebooks, pode não haver opção; nesse caso, a chance de sucesso é menor.
- Instalar a ferramenta – Para CPUs Intel, instale `undervolt` via pip (`sudo pip install undervolt`) ou `intel-undervolt` via repositório. Para GPUs, instale LACT ou CoreCtrl.
- Aplicar um offset inicial – Comece com -50 mV no core e cache: `sudo undervolt --core -50 --cache -50`.
- Testar a estabilidade – Execute um stress test (ex.: `stress --cpu 4 --timeout 30s`) e monitore temperaturas (com `sensors` ou `psensor`). Se tudo correr bem, aumente o offset em incrementos de 10-20 mV.
- Persistir as configurações – Crie um script que aplica os offsets na inicialização e registre-o como um serviço systemd, ou utilize a opção de persistência do `intel-undervolt`.
- Validar a longo prazo – Use o computador normalmente por alguns dias, observando se ocorrem travamentos ou erros em aplicações comuns.
Tabela comparativa: Ferramentas de undervolt no Linux
| Ferramenta | Suporte CPU/GPU | Interface | Dificuldade | Observações principais |
|---|---|---|---|---|
| `undervolt` | Intel CPU | CLI | Média | Semelhante ao ThrottleStop; requer Python; permite offsets e limites de potência. |
| `intel-undervolt` | Intel CPU | CLI + GUI (opc) | Fácil | Inclui opção de persistência via systemd; GUI auxilia iniciantes. |
| LACT | AMD/NVIDIA GPU | GUI | Fácil | Controle completo de tensão, clock, ventoinha; suporta aceleração de hardware. |
| CoreCtrl | AMD (principalmente) / Intel/NVIDIA | GUI | Fácil | Integração com perfis por aplicação; curvas de ventilação; voltagem via amdgpu. |
| `nvclock` | NVIDIA GPU (legado) | CLI | Difícil | Desatualizado; funciona apenas com GPUs mais antigas; não recomendado. |
FAQ Rapido
O undervolt pode danificar o hardware?
Não, desde que os offsets sejam mantidos dentro de limites seguros. Reduzir a tensão excessivamente pode causar instabilidade (travamentos, erros de cálculo), mas não causa danos físicos ao processador. O ajuste é totalmente reversível: ao reiniciar sem o script, os valores voltam ao padrão.
Como saber se meu processador Intel suporta undervolt no Linux?
Verifique o modelo e a geração. Processadores Skylake (6ª geração) e anteriores geralmente não possuem bloqueio. A partir de Coffee Lake (8ª geração), muitos foram desabilitados por microcódigo. Você pode testar executando sudo undervolt --read; se o comando retornar valores sem erro, o suporte existe. Consulte também o ArchWiki para listas detalhadas.
Preciso mexer na BIOS para permitir undervolt?
Em muitos casos, sim. Algumas BIOS oferecem opções como "Overclocking Lock" ou "Voltage Control" que precisam estar desabilitadas. Em notebooks, essas opções podem estar ocultas ou simplesmente não existir. Se a BIOS não permite alterações, o undervolt via software provavelmente não funcionará.
Qual a margem de redução de temperatura que posso esperar?
Os ganhos variam conforme o chip, a carga e o sistema de resfriamento. Relatos frequentes indicam reduções de 5°C a 15°C em laptops com offsets entre -100 mV e -150 mV. Em desktops bem refrigerados, a queda de temperatura pode ser menor, mas o consumo de energia diminui significativamente.
O undervolt afeta o desempenho em jogos ou aplicações pesadas?
Se o ajuste for estável, o desempenho não é prejudicado, pois as frequências máximas permanecem as mesmas. Na verdade, ao reduzir o throttling térmico, o undervolt pode melhorar o desempenho sustentado em equipamentos que superaquecem rapidamente. Em alguns casos, pode até permitir clocks ligeiramente maiores.
Posso usar undervolt em GPUs AMD no Linux?
Sim, ferramentas como LACT e CoreCtrl permitem ajustar a tensão da GPU AMD por meio da configuração de curvas V/F (voltagem vs frequência). O LACT, em especial, oferece um controle granular sobre os estados de clock. Para GPUs NVIDIA, o suporte é mais limitado, mas o LACT também oferece opções básicas.
Como desfazer o undervolt?
Basta remover o serviço ou script que aplica os offsets e reiniciar o sistema. Você também pode aplicar offsets de 0 mV manualmente: sudo undervolt --core 0 --cache 0. Como as configurações não são gravadas no hardware, uma simples reinicialização restaura os valores padrão.
Para Encerrar
O undervolt no Linux continua sendo uma técnica valiosa para usuários que desejam otimizar a eficiência térmica e energética de seus sistemas. Embora as restrições impostas pela Intel após a vulnerabilidade Plundervolt tenham limitado a prática em processadores mais recentes, ainda é possível aplicá-la com sucesso em uma vasta gama de hardware antigo e em muitas GPUs. As ferramentas disponíveis – como `undervolt`, `intel-undervolt`, LACT e CoreCtrl – oferecem interfaces que variam de simples scripts de linha de comando a aplicações gráficas completas, atendendo desde o entusiasta mais experiente até o usuário iniciante.
Para obter resultados seguros, é fundamental seguir uma metodologia gradual: começar com offsets conservadores, testar exaustivamente a estabilidade e monitorar as temperaturas. A documentação oficial e os fóruns da comunidade são recursos indispensáveis para solucionar problemas e descobrir os limites específicos de cada hardware. Praticado com responsabilidade, o undervolt prolonga a vida útil dos componentes, reduz o consumo de energia e proporciona uma experiência mais silenciosa e fresca.
