Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Quando um servidor ou máquina remota fica muito tempo ocioso, recursos de economia de energia podem desligar interfaces de rede ou suspender o sistema, resultando na perda de acesso remoto. Esta dica demonstra como desabilitar essas funções no Gentoo
Linux com systemd, abordando a suspensão do sistema, a economia de energia de adaptadores Wi-Fi, o autosuspend de portas USB e o timeout de conexões SSH.
1. Desabilitar suspensão e hibernação no Systemd
O systemd pode suspender a máquina por inatividade. Para evitar isso, mascare os alvos correspondentes:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
2. Desabilitar economia de energia do Wi-Fi
Adaptadores sem fio possuem protocolos próprios que podem causar quedas ou aumento de latência. Para desativar via regra do udev (requer o pacote
net-wireless/iw instalado):
cat << 'EOF' | sudo tee /etc/udev/rules.d/70-wifi-powersave.rules
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="/usr/sbin/iw dev %k set power_save off"
EOF
sudo udevadm control --reload-rules && sudo udevadm trigger
Para verificar se a regra foi aplicada corretamente:
for dev in $(iw dev | awk '/Interface/ {print $2}'); do echo -n "Interface $dev: "; sudo iw dev $dev get power_save; done
3. Evitar queda de conexões remotas SSH
Roteadores e firewalls frequentemente encerram conexões TCP ociosas. Configure o servidor SSH para enviar pacotes "keep-alive":
cat << 'EOF' | sudo tee /etc/ssh/sshd_config.d/99-keepalive.conf
ClientAliveInterval 60
ClientAliveCountMax 3
EOF
sudo systemctl restart sshd
4. Desabilitar o Autosuspend do USB (Regra Udev e Serviço)
O kernel pode cortar a energia de dispositivos USB inativos, o que derruba adaptadores Wi-Fi externos. Crie uma regra udev para os novos dispositivos conectados:
cat << 'EOF' | sudo tee /etc/udev/rules.d/50-usb-power.rules
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="on"
EOF
sudo udevadm control --reload-rules && sudo udevadm trigger
Como os hubs e controladores USB primários da placa-mãe podem iniciar no modo
auto antes das regras surtirem efeito completo, crie um serviço
oneshot no systemd para forçar o estado
on em todos os dispositivos durante o boot:
cat << 'EOF' | sudo tee /etc/systemd/system/disable-usb-autosuspend.service
[Unit]
Description=Desabilitar autosuspend do USB
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'for f in /sys/bus/usb/devices/*/power/control; do echo on > "$f"; done'
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now disable-usb-autosuspend.service
Para auditar o status de energia de todas as portas USB e confirmar o resultado:
grep . /sys/bus/usb/devices/*/power/control
Dica feita com ajuda da Gemini.
Outras dicas deste autor
Corrigindo Saída de Som Invertida no Linux
Memtest86 USB no Linux
Deepin Linux - A nova queridinha do momento
Driver de vídeo ATI no Debian 10 (Buster)
Como instalar Bunsenlabs Helium (Debian Stretch)
Leitura recomendada
Atualizar Samba 4.2 para 4.6 no Debian Jessie
Configurando PPPOE (ADSL) no Slackware
Consertando o áudio com estalos e interrupções no Pipewire
Configuração do instalador do VMware 2 no kernel 2.6.29 (Fedora 11 x64)
Atualizando Fedora 36 para 37
Comentários
Nenhum comentário foi encontrado.