Checklist para problemas com WiFi
Dica publicada em Linux / Redes
Checklist para problemas com WiFi
Deixo aqui um checklist genérico, que considero útil para usuários iniciantes que tenham problemas com WiFi, após ter visto muitos posts com os mesmos problemas e soluções bem parecidas.
Alguns dos problemas comuns podem ser: o sistema não reconhece a placa de rede WiFi, WiFi não gerenciável ou WiFi caindo a todo momento. Bom, chega de conversa e vamos ao que interessa.
# lspci -v
# lspci -v | grep -i "network"
O último comando acima produzirá uma saída parecida com esta:
0c:00.0 Network controller: Intel Corporation PRO/Wireless 5300 AGN [Shiloh] Network Connection
Subsystem: Intel Corporation Device 1121
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
[b]Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
# lshw
# lshw -C network
O comando acima produzirá uma saída parecida com esta:
*-network DISABLED
description: Wireless interface
product: Ultimate N WiFi Link 5300
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:0c:00.0
logical name: wlan0
version: 00
serial: 00:21:6a:ca:9b:10
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes [b]driver=iwlwifi[/b] driverversion=3.2.0-0.bpo.1-amd64 firmware=8.83.5.1 build 33692 latency=0
link=no multicast=yes wireless=IEEE 802.11abgn
resources: irq:46 memory:f1ffe000-f1ffffff
Se na saída do seu comando não aparecer as linhas "Kernel (lspci)" ou "driver (lshw)", o problema é que o Kernel não conseguiu alocar um módulo/driver para tua placa de rede. Sendo assim, uma intervenção manual é requerida.
Veja o link abaixo e procure conforme tua placa. Vamos pegar como exemplo a placa Intel:
Para iniciantes, acredito que o interessante neste link é apenas para conhecimento e para verificar o driver apropriado para tua placa. Com a informação em mãos, siga para a documentação da tua distro.
Por exemplo, o Debian:
Após instalar o essencial para sua distro, rode os comandos abaixo:
# modprobe -rv módulo
# modprobe -v módulo
Substitua "módulo" pelo módulo/driver apropriado para tua placa de rede. Após estes procedimentos, o WiFi provavelmente estará funcionando. Se ainda não funcionar, pode ser que precise "subir" a interface de rede, geralmente a wlan0, com um dos comandos a seguir:
# ifconfig wlan0 up
Ou:
# ip link set wlan0 up
Caso retorne a seguinte mensagem: SIOCSIFFLAGS: Operation not possible due to RF-kill
É necessário desbloquear o driver. Isto geralmente ocorre com drivers USB. Em todo caso, você deverá rodar o seguinte comando:
# rfkill list all
O comando acima retornará uma saída parecida com esta:
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
Se a saída for algo como "Soft blocked: yes", rode o comando abaixo:
# rfkill unblock all
Caso a saída do comando acima seja parecida com esta:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
Quer dizer que o driver está bloqueado por hardware. Geralmente, a tecla de liga/desliga o WiFi está desligada, pressione-a e rode o rfkill list all. Caso ainda não resolva, pode ser que precise habilitar (enable) o WiFi na BIOS.
Caso o arquivo esteja ok e mesmo assim o ícone permaneça cinza, abra o arquivo (com sudo) "/etc/NetworkManager/NetworkManager.conf".
Identifique a linha: "managed=false"
E mude para: managed=true
Salve e saia do arquivo. Rode o comando abaixo:
# service network-manager restart
Após isto, provavelmente o WiFi estará gerenciável novamente. É importante notar que, em caso de alteração em qualquer dos arquivos supracitados, o seguinte comando deverá ser rodado para que a alteração tenha efeito:
# service network-manager restart
Há casos em que os procedimentos acima não bastam, então, deixo mais uma opção: no mesmo arquivo (NetworkManager.conf), terá o seguinte conteúdo:
Tudo o que você terá que fazer é comentar a linha: unmanaged-devices
Ficando assim:
echo "options iwlwifi 11n_disable=1" | sudo tee /etc/modprobe.d/iwlwifi.conf
sudo modprobe -rfv iwlwifi
sudo modprobe -v iwlwifi
Novamente, como exemplo, o driver iwlwifi, substitua o módulo/driver conforme tua realidade. O primeiro comando está adicionando a seguinte informação ao arquivo do driver:
Com isto, estamos desabilitando algumas características do driver iwlwifi referente ao padrão 802.11n. O restante do comando:
sudo tee /etc/modprobe.d/iwlwifi.conf
... está adicionando aquela informação ao arquivo de configuração do driver: iwlwifi.conf. Com isto, esta modificação torna-se persistente.
Bom, é isto.
Fiz um apanhado de tópicos resolvidos com este problema e, na maioria dos casos, a solução foi uma destas. Espero que seja útil.
Abraços.
Alguns dos problemas comuns podem ser: o sistema não reconhece a placa de rede WiFi, WiFi não gerenciável ou WiFi caindo a todo momento. Bom, chega de conversa e vamos ao que interessa.
Reconhecer a placa WiFi
1º passo: verificar placa de rede e módulo do kernel com os comandos abaixo:# lspci -v
# lspci -v | grep -i "network"
O último comando acima produzirá uma saída parecida com esta:
0c:00.0 Network controller: Intel Corporation PRO/Wireless 5300 AGN [Shiloh] Network Connection
Subsystem: Intel Corporation Device 1121
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
[b]Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
# lshw
# lshw -C network
O comando acima produzirá uma saída parecida com esta:
*-network DISABLED
description: Wireless interface
product: Ultimate N WiFi Link 5300
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:0c:00.0
logical name: wlan0
version: 00
serial: 00:21:6a:ca:9b:10
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes [b]driver=iwlwifi[/b] driverversion=3.2.0-0.bpo.1-amd64 firmware=8.83.5.1 build 33692 latency=0
link=no multicast=yes wireless=IEEE 802.11abgn
resources: irq:46 memory:f1ffe000-f1ffffff
Se na saída do seu comando não aparecer as linhas "Kernel (lspci)" ou "driver (lshw)", o problema é que o Kernel não conseguiu alocar um módulo/driver para tua placa de rede. Sendo assim, uma intervenção manual é requerida.
Veja o link abaixo e procure conforme tua placa. Vamos pegar como exemplo a placa Intel:
Para iniciantes, acredito que o interessante neste link é apenas para conhecimento e para verificar o driver apropriado para tua placa. Com a informação em mãos, siga para a documentação da tua distro.
Por exemplo, o Debian:
Após instalar o essencial para sua distro, rode os comandos abaixo:
# modprobe -rv módulo
# modprobe -v módulo
Substitua "módulo" pelo módulo/driver apropriado para tua placa de rede. Após estes procedimentos, o WiFi provavelmente estará funcionando. Se ainda não funcionar, pode ser que precise "subir" a interface de rede, geralmente a wlan0, com um dos comandos a seguir:
# ifconfig wlan0 up
Ou:
# ip link set wlan0 up
Caso retorne a seguinte mensagem: SIOCSIFFLAGS: Operation not possible due to RF-kill
É necessário desbloquear o driver. Isto geralmente ocorre com drivers USB. Em todo caso, você deverá rodar o seguinte comando:
# rfkill list all
O comando acima retornará uma saída parecida com esta:
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
Se a saída for algo como "Soft blocked: yes", rode o comando abaixo:
# rfkill unblock all
Caso a saída do comando acima seja parecida com esta:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
Quer dizer que o driver está bloqueado por hardware. Geralmente, a tecla de liga/desliga o WiFi está desligada, pressione-a e rode o rfkill list all. Caso ainda não resolva, pode ser que precise habilitar (enable) o WiFi na BIOS.
WiFi não gerenciável (ícone em cinza, não clicável)
Geralmente, este problema ocorre por conta do arquivo "/etc/network/interfaces". O conteúdo correto deste arquivo, é:# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback
Caso o arquivo esteja ok e mesmo assim o ícone permaneça cinza, abra o arquivo (com sudo) "/etc/NetworkManager/NetworkManager.conf".
Identifique a linha: "managed=false"
E mude para: managed=true
Salve e saia do arquivo. Rode o comando abaixo:
# service network-manager restart
Após isto, provavelmente o WiFi estará gerenciável novamente. É importante notar que, em caso de alteração em qualquer dos arquivos supracitados, o seguinte comando deverá ser rodado para que a alteração tenha efeito:
# service network-manager restart
Há casos em que os procedimentos acima não bastam, então, deixo mais uma opção: no mesmo arquivo (NetworkManager.conf), terá o seguinte conteúdo:
[main] plugins=ifupdown,keyfile dns=dnsmasq [ifupdown] managed=false [keyfile] unmanaged-devices=mac:mac_address
Tudo o que você terá que fazer é comentar a linha: unmanaged-devices
Ficando assim:
[main] plugins=ifupdown,keyfile dns=dnsmasq [ifupdown] managed=false #[keyfile] #unmanaged-devices=mac:mac_address
WiFi desconecta a todo momento
Opção que geralmente funciona:echo "options iwlwifi 11n_disable=1" | sudo tee /etc/modprobe.d/iwlwifi.conf
sudo modprobe -rfv iwlwifi
sudo modprobe -v iwlwifi
Novamente, como exemplo, o driver iwlwifi, substitua o módulo/driver conforme tua realidade. O primeiro comando está adicionando a seguinte informação ao arquivo do driver:
iwlwifi: options iwlwifi 11n_disable=1
Com isto, estamos desabilitando algumas características do driver iwlwifi referente ao padrão 802.11n. O restante do comando:
sudo tee /etc/modprobe.d/iwlwifi.conf
... está adicionando aquela informação ao arquivo de configuração do driver: iwlwifi.conf. Com isto, esta modificação torna-se persistente.
Bom, é isto.
Fiz um apanhado de tópicos resolvidos com este problema e, na maioria dos casos, a solução foi uma destas. Espero que seja útil.
Abraços.