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
Script gerador de senha
Impressora compartilhada pedindo senha direto [Resolvido]
Servidor VNC no Funtoo
GRUB não aparece, mas funciona [RESOLVIDO]
[Resolvido] VirtualBox can't enable the AMD-V extension
Leitura recomendada
Mudar cor da tela de carga de início / desligamento - Ubuntu 10.04/10.10 (Plymouth)
Repositórios, flash player, Amarok e K3b funcionando
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Ver interfaces USB em sistema guest WindowsXP no Virtualbox em OpenSUSE 11.0
Atualização automática no Ubuntu 8.04
Comentários
Nenhum comentário foi encontrado.