Ao acordar do modo de espera, às vezes meu laptop Linux não restabelece sua conexão Wi-Fi à Internet.
Curiosamente, a reinicialização corrige isso , embora seja meio chato ter que fazer um desligamento / reinicialização completos.
Em outras palavras, ao sair do modo de espera, às vezes meu laptop HP Debian Buster v10.4 não consegue se reconectar ao meu ponto de acesso doméstico. Isso ocorre a uma taxa, aproximadamente, de cerca de 1 em cada 6 festas do pijama ou mais.
Após perceber que o Wi-fi está fora do ar, clicar em rescan for wireless networks
não resolve. Além disso, iw wlan0 scan
, (ou explicitamente iw dev wlan0 scan
) fornece: 'comando falhou: a rede está inativa (-100)'.
Estudando cuidadosamente a saída de journalctl -n 1000 -u NetworkManager -u wpa_supplicant
, posso ver que logo após a linha: "NetworkManager state is now ASLEEP" (ou seja, ao acordar), o primeiro problema parece estar em uma linha que diz: " device (wlan0): suplicante interface state : concluído -> desativado ".
Acho que deveria ter sido "... concluído -> desconectado", que aparece em ativações de trabalho, ou seja, quando o WI-fi funciona corretamente novamente após o despertar.
O que não resolve:
- Sair e entrar novamente;
- Dormir e acordar de novo,
- Hibernando e depois acordando disso
- Reiniciando o Network Manager (com
$ sudo systemctl restart NetworkManager.service
) - Corrida
$ sudo nmcli networking on
- Excluindo e recriando o
wlan0
dispositivo de rede com:iw dev wlan0 del
, depoisiw phy phy0 interface add wlan0 type managed addr ca:xxx:4b
. Mesmo que isso pareça funcionar, o wi-fi ainda não funciona.
Eu também verifiquei que $ rfkill list
não relata nenhum bloqueio.
Aqui está o relatório de status do nmcli quando em um estado de falha (internet inativa). Observe o GENERAL.STATE abaixo. (Eu ofusquei endereços reais.)
$ nmcli device show wlan0
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 00:26:##:##:##:2A
GENERAL.MTU: 1500
GENERAL.STATE: 20 (unavailable) <-- this is not right
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
...
Além disso, aqui está o relatório de status de uma conexão wi-fi normal :
$ nmcli device show wlan0
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 00:26:##:##:##:2A
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected) <--- this is when it works
GENERAL.CONNECTION: Auto NETGEAR14
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 192.168.1.128/32
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.128/32, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]: dst = 192.168.1.1/32, nh = 0.0.0.0, mt = 600
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.ROUTE[4]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.DNS[1]: 192.168.1.1
IP6.ADDRESS[1]: fe80::...:7f2a/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 600
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
Alguma ideia? Existe uma maneira de reinicializar o driver de rádio phy0 ?
A melhor maneira de depurar isso verificando as mensagens de log do sistema no momento em que sua conexão desaparece:
O NetworkManager não usa diretamente as APIs Wi-Fi do kernel, ele depende do wpa_supplicant para isso. Pode ser que ele
wpa_supplicant.service
esteja bloqueado, continue travando ou esteja em conflito com outra ferramenta Wi-Fi (por exemplo, iwd, connman ou uma instância wpa_supplicant diferente iniciada acidentalmente por outro aplicativo).Você pode aumentar a verbosidade do NetworkManager executando:
e de wpa_supplicant executando:
Além disso, tente ignorar completamente o NM & w_s e peça diretamente ao kernel para verificar as redes - se funcionar, é provável que o problema esteja no lado do espaço do usuário; caso contrário, é provável que seja do lado do driver/hardware:
Tente substituir sua placa WI-FI (hardware).
Custou-me cerca de US $ 20 por um novo e é bastante fácil de encontrar dentro do seu laptop (procure ajuda no you-tube). Peguei o número da peça direto do cartão antigo. Você precisará de algumas pequenas chaves de fenda tipo relógio.
Já se passaram dois meses desde que recebi o novo cartão e o problema acabou.
O meu ficou assim: