Debian 9: como instalar TL-WN823N v2 (TP-LINK)

300Mbps Mini Wireless N USB Adapter
Marca: TP-LINK
Modelo: TL-WN823N(EU)
Versão:2.0

Neste tutorial, ensinarei como instalar este dongle USB para wireless no Debian 9. Mas não simplesmente entregar um passo-a-passo, eu quero que você entenda o que está fazendo, e seus conhecimentos expandam-se, consequentemente.

O problema

O manual do produto diz que há suporte oficial para o Linux, pela TP-LINK, porém não existe suporte de verdade pela TP-LINK, e eu penei um bocado para fazê-lo funcionar. Trago então minha solução para você!

O driver oficial, do site da TP-LINK, está obsoleto! O que há ali é o código, a partir do qual você deve compilar (produzir) o driver especificamente para seu sistema, não é só dar 2 cliques. Mas para compilar, você precisa ter o ambiente adequado, isto é, seu sistema tem de possuir algumas características específicas. A característica crucial nesse caso é o kernel do Linux: o site oficial diz que o driver é compatível com as versões 2.6.18 até a 3.10.10. Legal, mas o suporte para a versão 3.10 acabou em novembro de 2017, e já estamos em 2018… O Debian que uso, segundo o comando lsb_release -r é a 9.5, e o kernel, segundo o comando uname -r, é o 4.9.0-7-amd64 (suportado até janeiro de 2019). Então este driver não dá suporte ao Debian 9, apenas versões mais antigas…

Obtendo o firmware

Os repositórios oficiais do Debian 9 incluem o pacote firmware-realtek, que por sua vez inclui o firmware do chipset Realtek rtl8192eu, que é o que está dentro do dongle. Os repositórios do Debian 8 incluem um pacote de mesmo nome (firmware-realtek), que porém, não dá suporte ao chipset em questão (rtl8192eu). Então faça um upgrade do seu sistema, se ainda não estiver usando a versão 9.

Dado que o pacote firmware-realtek não é software livre, é necessário alterar sua lista de repositórios para “tornar visíveis” os pacotes de software proprietário:

  1. em um terminal root, abra a lista de repositórios no editor de texto nano: nano /etc/apt/sources.list;
  2. adicione non-free (com um espaço antes) após cada linha escrita no arquivo;
  3. salve as alterações com ^O (CTRL+O), e depois feche o editor de texto com ^X (CTRL+X);
  4. atualize sua lista de fontes de software com apt update, e instale o firmware com apt install firmware-realtek;
  5. reinicie o computador, para que o firmware seja carregado na próxima inicialização do sistema e entre em ação.

Encontrando redes sem-fio

Após reiniciar, você já deve ser capaz de encontrar as redes sem-fio das redondezas. Por exemplo, se você tiver o network-manager-gnome instalado, o nm-applet (um ícone na barra de aplicativos que exibe informações de rede) deve mostrar-lhe uma lista de redes wireless disponíveis, se você clicar nele. Se você consegue essa geração de lista de redes, você tem o firmware adequado para o seu dongle, e o passo-a-passo anterior teve sucesso em seu objetivo.

Escanear o ar buscando redes sem fio é necessário, mas não suficiente. Tente conectar-se a alguma, mesmo uma sem senha e sem segurança – se não tiver uma assim por perto, você pode configurar seu roteador para tal. O nm-applet roda, roda, mas não conecta? Então ainda tem algo errado.

Conectando-se a redes sem segurança, e WEP

Buscando na internet, vi quais configurações adicionais devem ser feitas:

  1. abra um terminal root;
  2. desabilite o modo de economia de energia do wifi, e também a auto-suspensão do USB com echo "options 8192eu rtw_power_mgnt=0 rtw_enusbss=0" | tee /etc/modprobe.d/8192eu.conf. Estas duas opções geram falha de comunicação do sistema com o dongle;
  3. digite echo "blacklist rtl8xxxu" | tee /etc/modprobe.d/rtl8xxxu.conf;
  4. reinicie o computador. Se ainda assim não funcionar, dê modprobe rtl8xxxu no terminal.

Após configurar o dispositivo assim, tente novamente se conectar a uma rede sem senha e sem segurança, ou com segurança WEP. Conseguiu? Ótimo. Mas e as conexões WPA, WPA2, e WPA-WPA2, funcionam? Se não, siga adiante o tutorial.

Conectando-se a redes WPA, WPA2, e WPA-WPA2

As proteções WPA, WPA2 e WPA-WPA2 são mais recentes que a WEP, já obsoleta devido à falta de segurança. Por isto mesmo, funcionam diferente e exigem configuração adicional.

Conferindo nos logs do sistema (comando nano /var/log/messages como root), constatei que existem quatro “apertos de mão” (4-way handshake) entre o dongle e o roteador sem fio, compondo uma etapa de negociação. É esta etapa que falha e impede e a conexão, registrando no log, após a troca de mensagens “eapol“, que a autenticação falhou pela “razão 15”. O protocolo do “eapol” é uma inovação das tecnologias WPA e WPA2 (não existiam na WEP). E a razão 15 significa que o handshake estourou o tempo-limite.

O que faz o handshake falhar é a aleatorização do endereço MAC do dongle, pelo que pesquisei. Esse recurso é importante para previnir que clientes wireless sejam identificados pessoalmente quando usarem wifis públicos: a cada conexão, um endereço MAC diferente é usado pelo aparelho, dando certa privacidade. Mas isso não funciona bem com o dongle TL-WN823N(EU) v2.0, e o recurso precisa ser desabilitado. Isso é simples de resolver:

  1. abra um terminal root, e edite o gerenciador de redes no editor de textos nano, com nano /etc/NetworkManager/NetworkManager.conf;
  2. adicione as linhas ao arquivo:
    [device]
    wifi.scan-rand-mac-address=no
  3. salve as alterações com ^O (CTRL+O), e depois feche o editor de texto com ^X (CTRL+X);
  4. reinicie o computador.

Voilà! Resolvido. Agora o dongle deve funcionar perfeitamente. Se para você, ainda assim não estiver dando certo, deixe um comentário neste post explicando o que deu errado, e talvez eu possa lhe ajudar.

Deixe uma resposta

O seu endereço de e-mail não será publicado.

*