Pular para o conteúdo

WIFI não funciona após o suspend [Resolvido]

Olá a todos! Recentemente fiz uma instalação do Linux Mint 19 Xfce 64 bits em um velho notebook CCE Win. O WIFI parava de funcionar após o SUSPEND. Após ler as documentações e as postagens internet afora, eu consegui chegar a uma solução.
Marcos Antonio Mello Estevão mestevao
Hits: 7.621 Categoria: Linux Subcategoria: Hardware
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Uma pequena introdução

O Linux utiliza um mecanismo de gerencia o as funções de hardware. Este mecanismo conversa com o hardware do computador por uma camada de abstração chamada HAL (Hardware Abstraction Layer), que é parte componente dos subsistemas do Linux.

As ferramentas pm-utils (Power Manager Utils) e systemd (System and Service Manager) fazem parte do conjunto de softwares da freedesktop.org e são as responsáveis por executar a função sleep, que é composto pelas operações SUSPEND, HIBERNATE, HYBRID_SUSPEND e HYBRID_HIBERNATE. Todas tem a função que restaura a volta ao sistema (RESUME|THAW|POST).

Por exemplo, se o usuário fechar a tampa do notebook (LID CLOSE ACTION), o sistema irá executar uma das funções sleep que está configurada para esta ação. Ao abrir a tampa, o sistema irá executar a função de RESUME.

Porém as ferramentas pm-util e systemd tem suas particularidades.

O pm-utils trabalha com os flags suspend, hibernate, resume e thaw.

O systemd trabalha com pre e post. O pre é o momento anterior ao sleep e post e o momento posterior ao sleep, quando ocorre o evento wakeup. Fica mais ou menos assim:

    LID FECHADO ------(pre)----->  SLEEP ------------> LID ABERTO -----(post)-----> WAKEUP

Solução

Descobri que ocorre um problema com os módulos do adaptador WIFI, me obrigando a derrubar os módulos e levantá-los em seguida. Para corrigir este problema bastava escrever um script, que seria executado assim que a função RESUME fosse executada. Porém, para isso, é necessário saber qual mecanismo é utilizado pelo sistema para fazer o sleep.

As distribuições mais recentes do Linux utilizam o systemd para isso. Os ambientes gráficos mais populares são integrados ao systemd. Não sei se a ferramenta systemd é dependente da pm-utils, mas é interessante incluir a solução nos dois casos. Para isso teremos que identificar o nome do módulo do WIFI.

Como identificar os módulos do WIFI

Para identificar o nome do módulo do WIFI execute como superusuário o comando a seguir:

# lshw -C network

Separei o fragmento que nos interessa da saída do comando:

  *-usb                     
       description: Wireless interface
       product: 802.11 bg WLAN
       vendor: Ralink
       physical id: 3
       bus info: usb@1:3
       logical name: wlx0019dba00811
       version: 0.01
       serial: 00:19:db:a0:08:11
       capabilities: usb-2.00 ethernet physical wireless
       configuration: broadcast=yes driver=rt73usb driverversion=4.15.0-20-generic firmware=1.7 ip=192.168.1.6 link=yes maxpower=300mA multicast=yes speed=480Mbit/s wireless=IEEE 802.11

Podemos ver que em description aparece "Wireless interface", que é o nosso adaptador WIFI. A informação que procuramos é o nome do módulo de driver, informação que está em configuration.

       configuration: broadcast=yes driver=rt73usb driverversion=4.15.0-20-generic firmware=1.7 ip=192.168.1.6 link=yes maxpower=300mA multicast=yes speed=480Mbit/s wireless=IEEE 802.11

O nome do módulo de driver é o rt73usb.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Uma pequena introdução
   2. O script wifi-wakeup
Nenhum artigo encontrado.

Rode Linux no seu iPod

Como utilizar duas GPU em Notebook Optimus com drive legacy 390xx

Instalando drivers da nVidia com kernel 2.6

Custo-benefício dos computadores - Avaliação elementar

Configurando o som na placa ASUS A7V8X-X

#1 Comentário enviado por reginaldoalima em 03/08/2018 - 18:33h
Este deve ser o post de numero 200, que leio sobre como fazer meu wifi funcionar no Debian 9. Estava usando o Ubuntu 18.4 LTS e estou me arrependendo amargamente de ter substituído pelo Debian. já tentei de tudo, inclusive formatar e reinstalar o Debian 9, mas hoje depois de 1 mês estou começando a desistir e retornar para o Ubuntu.
#2 Comentário enviado por ricardogroetaers em 22/08/2018 - 09:20h
Embora eu não tenha conhecimentos para uma análise, parabenizo pelo artigo e pela criação do script que resolveu o problema. Considerando que o problema foi descoberto na versão mais recente do Linux Mint, seria interessante levar ao conhecimento dos desenvolvedores, tanto do problema quanto da solução.
#3 Comentário enviado por Wilson1987 em 20/10/2018 - 21:59h
Posso relatar que aconteceu o mesmo problema comigo assim que atualizei meu ubuntu para o 18.10. Tentei resolver e não consegui, aí acabei de retornar para o 18.04 e por enquanto o wifi funciona corretamente.

Contribuir com comentário

Entre na sua conta para comentar.