EDITAR: O mau comportamento do driver ao retornar da suspensão é um problema que eu corri várias vezes com várias interfaces de rede em vários sistemas operacionais. A única coisa que descobri ser eficaz em todos eles é desligar o gerenciamento de energia da placa WiFi. Depois de rever os ajustes que fiz em um sistema para resolver um problema semelhante, ofereço a seguinte resolução.
Primeiro, faremos um backup das configurações de gerenciamento de energia padrão existentes com:
sudo cp /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf.bak
Em seguida, editaremos o conteúdo para desativar totalmente o gerenciamento de energia do WiFi. com gksu gedit /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf que contém o valor padrão wifi.powersave = 3
que permite economizar energia no dispositivo WiFi. Alterando o conteúdo deste arquivo para:
[connection]
wifi.powersave = 0
Completando o acima e também renomeando minha interface para wlan0 resolvi meus problemas em 16.04
Quando isso for feito, você precisará reinicializar ou emitir o comando sudo systemctl restart NetworkManager
para reiniciar o Network Manager
Observação: meu cartão não possui um chip Atheros e é identificado da seguinte maneira:
* - rede descrição: interface sem fio produto: RT2561 / RT61 802.11g PCI fornecedor: Ralink corp. identificação física: 1 informações de ônibus: pci @ 0000: 04: 01.0 nome lógico: wlan0 versão: 00 serial: 00: 1a: ef: 03: 00: aa largura: 32 bits relógio: 33MHz capacidades: pm bus_master cap_list ethernet físico sem fio
Alternativas que podem funcionar para outras pessoas com um problema semelhante são:
Coloque o script bash abaixo na sua pasta /etc/pm/sleep.d
com um nome como 99_wifiup.
NOTA: O 99_ é necessário onde o 99 é o maior número na pasta para garantir que ele seja executado por último.
Você precisará garantir que o script tenha permissões de execução e precisará de permissões de superusuário (sudo) para gravar o arquivo lá. Uma vez no lugar toda vez que você sair da suspensão, ele será executado.
#!/bin/bash
case "" in
suspend | hibernate)
# executed on suspend
;;
resume | thaw)
# executed on resume
/usr/sbin/rfkill block all
/usr/sbin/rfkill unblock all
/sbin/iwlist wlan0 scan
;;
*)
;;
esac
Se isso não funcionar, vale a pena explorar a modificação do script para emitir os comandos nmcli networking off
on suspend e nmcli networking on
on thaw.
Se nenhuma destas soluções funcionar para você e você notar outras anomalias, você pode ter um adaptador WiFi com defeito ou talvez este bug foi ressuscitado.
Fontes:
Modificado /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf e /etc/udev/rules.d/70-persistent-net.rules em um dos meus sistemas.
Mickeypop post # 9 link
man nmcli