Como Instalar Seu Adaptador WiFi RTL8821 No GNU-Linux

Artigo demonstra os percalços na configuração de dispositivo WiFi 802.11AC (RTL8821CU), com nenhum suporte do fabricante. O dispositivo USB traz, inclusive, um disco com driver para Windows (apenas) o qual precisa ser ejetado para a interface de Rede WiFi "Double Band" emergir. Veremos como desabilitar o disco via UDEV e como compilar o driver a partir de colaboração de entusiastas GNU-Linux.

[ Hits: 15.160 ]

Por: morvan bliasby em 19/02/2019


Identificando (Corretamente) O Device E Compilando O Driver



Baseado no anúncio do fabricante, baixamos o driver a partir de vários entusiastas que pegaram o original, do sítio da Realtek, e processaram mudanças, principalmente após o Kernel 4.15, que mudou algumas regras nos arquivos Header (.h), influindo e até impedindo a correta compilação. Baixei uma dezena de arquivos com correções, principalmente a partir do Repositório GitHub. Os primeiros que compilei, malgrado mensagens de sucesso, sequer criavam o "Device" de Rede; um simples ifconfig -a reportava a Rede Ethernet, o Loopback, etc. Nada de Rede WiFi.

Ao observar mais atentamente o DMesg, na inserção do dispositivo USB, já com a regra UDEV em ação, onde deveria haver:

usb 3-6: New USB device found, idVendor=0bda, idProduct=A811... (rtl881x)

Se via:

usb 3-6: New USB device found, idVendor=0bda, idProduct=C811... (rtl882x)

Esse o motivo de o driver não carregar e nem gerar, claro, o dispositivo.

Primeiro, ao descobrir essa diferença no IdProduct, abri o arquivo ../os_dep/linux/usb_intf.c, comum a todos os drivers, e coloquei o Id do device nele, na seção 8821.

Abaixo, exemplo. Observe-se que no driver que sugiro não é necessário inserir isso. Já está no arquivo, além de correções aplicadas pelo autor:

... {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0xC811, 0xff, 0xff, 0xff), .driver_info = RTL8821C}, /* 8811CU */

Após essa definição, o dispositivo era criado, mas não associava, sequer localizava algum SSID de Rede; estranho.

Foi daí que tive a feliz ideia de não mais procurar tutoriais sobre o Chipset rtl882x. Já tinha compilado (com muitos erros, em alguns casos) uma pá de drivers. Fiz uma busca no GitHub com a palavra-chave do Chipset (rtl8821) e me deparei com essa URL abaixo:
Como se depreende, é para essa placa (li o código fonte antes de compilar) e já está com as diretivas no Header para o futuro Kernel (5.x). Compilação perfeita. Rodou de primeira. Um driver anterior estava até funcionando, mas o led não acionava. Esse tem o led implementado, e é bom para vermos a atividade do dispositivo, além , claro, da questão estética.

Compilando

Após descompactar a pasta (o arquivo no GitHub tem três arquivos, e é, claro, o compactado), via CLI ou com aplicativos como o ark, vá para o raiz dela e faz-se o básico:

make ; sudo make install

Sucesso!

Conclusão

Sou um feliz usuário desse pequeno "Dongle" de Rede e precisava compartilhar com vocês esse case (e com o vendedor, também). Boa compilação e espero que logo logo esse e outros códigos fonte estejam disponibilizados e incorporados ao Kernel.

É impressionante a diferença no desempenho das Redes 2.4Hhz e 5Ghz. Baixei uma compilação do Android em segundos, via Rede 5Ghz. Nem precisei fazer novamente; bastou ver as taxas de download de outros dispositivos.

Não esqueça colocar, no caso de Rede de Alta Velocidade, AC, a conexão como preferencial. Basta, no NetWork Manager, deixá-la autenticando sempre que disponível. Veja imagem:
Seja Legal, seja Livre, Use GNU/Linux!
Morvan, Usuário GNU_LInux #433640.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Primeiro problema: Desativar O Disco Virtual Com Drivers
   3. Criando A Regra UDEV Para Desativação Automática Do Disco USB
   4. Identificando (Corretamente) O Device E Compilando O Driver
Outros artigos deste autor

Recuperando seus dados com o "truque da geladeira"

Configurando o seu teclado sem fio (e, via de regra, sem LEDs indicadores de estado) no Linux

Introdução ao gEDA - Suíte de eletrônica

Dominando o BrOffice.org: Pincel de Estilo, Sumários e Objetos OLE no Writer

Usando o seu módulo IRDA no Linux

Leitura recomendada

Instalando placa wireless no OpenSUSE 11.0 (método genérico para qualquer placa)

Firmware dd-wrt em Linksys WRT54G

Configurando placa wireless Broadcom 94311MC6 no Mandriva

Tempest for Elisa: Transforme seu monitor em estação de rádio

Instalando a placa de rede wireless DWL-G520+ no Fedora Core 3

  
Comentários
[1] Comentário enviado por sacioz em 20/02/2019 - 19:52h

Muito bom o artigo , um entusiasta de primeira .

[2] Comentário enviado por morvan em 20/02/2019 - 21:29h

Comentário enviado por sacioz em 20/02/2019 - 19:52h
Muito bom o artigo , um entusiasta de primeira .
Obrigado pelo retorno. É isso que nos faz sempre querer relatar nossas experiências.


[3] Comentário enviado por removido em 01/03/2019 - 21:56h

Poderia testar esse adaptador WiFi usando o kernel 5 para ver como fica o suporte na pratica.

https://sempreupdate.com.br/linus-torvalds-fala-sobre-o-linux-kernel-5-0/

kernel 5.0-rc8
Data: 2019-02-25
https://www.kernel.org/


[4] Comentário enviado por morvan em 02/03/2019 - 00:18h


Poderia testar esse adaptador WiFi usando o kernel 5 para ver como fica o suporte na pratica.
https://sempreupdate.com.br/linus-torvalds-fala-sobre-o-linux-kernel-5-0/
kernel 5.0-rc8
Data: 2019-02-25
https://www.kernel.org/

MeiaNoite, não testei na versão 5.X; esperando a própria, pois tem um grande acréscimo no que tange drivers, de Rede inclusive. Para quem usa o Fedora, como eu, pode tentar baixar já compilado, a partir do Repositório Koji, ou pode compilar por si, mesmo ainda nos RC´s.

[5] Comentário enviado por deathraiser em 10/03/2019 - 09:32h

SHOW!!!

[6] Comentário enviado por morvan em 10/03/2019 - 10:26h


deathraiser em 10/03/2019 - 09:32h

SHOW!!!

Estamos aqui para contribuir. Obrigado pelo retorno.

[7] Comentário enviado por jonathan_santos em 30/05/2019 - 09:52h

EXCELENTE MORVAM!! Me salvou....quer dizer...salvou o adaptador, que, caso eu fracassasse nesta última tentativa, iria para o lixo!! Funcionou até o led rsrsrsr!!! Exatamente como você disse no tópico, instalei milhares de drives e módulos, todos sem sucesso. Só para que fique registrado, para futuras consultas, eu precisei alterar uma linha de código de um arquivo do instalador. Ao inserir o comando "make", ele me retornava este erro: r/rtl8821CU_WiFi_linux_v5.4.1_28754.20180921_COEX20180712-3232/os_dep/linux/ioctl_cfg80211.c:691:2: error: implicit declaration of function ‘ktime_get_boottime_ts64’; did you mean ‘ktime_get_boottime’? [-Werror=implicit-function-declaration]
ktime_get_boottime_ts64(&ts); //get_monotonic_boottime(&ts);
Tudo o que fiz foi entrar no diretório /rtl8821CU_WiFi_linux_v5.4.1_28754.20180921_COEX20180712-3232/os_dep/linux/, fazer uma cópia backup do arquivo ioctl_cfg80211.c (vai que piora tudo, rsrsr!!) e alterar a linha 691: onde estava "ktime_get_boottime_ts64" ficou "ktime_get_boottime". Mais uma vez, agradeço a dedicação que você teve em explicar detalhadamente o processo. VLW!!!

[8] Comentário enviado por morvan em 30/05/2019 - 10:32h


... EXCELENTE MORVAM!! Me salvou....quer dizer...salvou o adaptador, que, caso eu fracassasse nesta última tentativa, iria para o lixo!! Funcionou até o led rsrsrsr!!! Exatamente como você disse no tópico, instalei milhares de drives e módulos, todos sem sucesso. Só para que fique registrado, para futuras consultas, ...


Tamos aqui para ajudar. Esse é o espírito SL. Abaixo, eu outro comentário, eu aponto uma URL que eu testei para o Kernel 5.1.x (quebrando compilação por problema com tipagem).

[9] Comentário enviado por morvan em 30/05/2019 - 10:35h

Bom dia. Com apassagem do 5.0 para o 5.1, este driver deu problema na compilação (dessa vez, problema com tipagem); eu estava mais à cata de uma solução do que propriamente fuçar, pois tempo era justo o que me falta[va]. Achei estte endereço; ele resolve problemas com headers, tipos e ainda com gerenciamento de energia do chipset:

https://github.com/brektrou/rtl8821CU

Deem uma testada, por favor.
Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.

[10] Comentário enviado por morvan em 30/07/2022 - 22:12h

Boa noite. O driver está "broken" no Linux 5.18. Pesquisei e localizei a página:

https://github.com/morrownr/8821cu-20210118

Compilou. Ainda testando.
Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts