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: 14.511 ]

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

Usando o seu módulo IRDA no Linux

Recuperando seus dados com o "truque da geladeira"

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

Dominando o BrOffice.org: Tabelas no Writer; Uso do Navegador de Objetos

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

Leitura recomendada

Instalando e configurando a multifuncional Epson CX3700

Easy Peasy 1.5 Linux para Netbooks

Usando um adaptador USB bluetooth no Slackware 10.2

Grave seus boots remotos com uma placa mãe

Netbook Positivo Mobo White 1020 com Mandriva

  
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