O módulo WiFi 8812AU não funciona com a versão do kernel = 4.4.0-28-generic

2

Problema

Eu tinha um adaptador WiFi USB de duas bandas Linksys WUSB 6300 funcionando alegremente no meu PC de mesa com o módulo de driver 8812AU.

Quando comecei a trabalhar, usei a método de assinatura de driver para que funcione com o Secure Boot. Funcionou bem com a versão 4.4.0-23-genérica do Kernel e mais tarde também com o 4.4.0-24-generic onde eu renunciei após a atualização.

Após a atualização para a versão 4.4.0-28-genérica, por algum motivo, não tem mais o efeito desejado e parece não carregar o módulo do driver 88 12AU .

Após atualizar para o 4.4.0-38-generic, o comportamento permanece o mesmo.

A ferramenta Drivers adicionais agora me mostra isso , então eu não tenho certeza se de alguma forma os arquivos do módulo foram confundidos acima. Eu sou muito novo no Ubuntu, então eu não sei como dizer. Quando ainda estava funcionando, ele me mostrou este .

Portanto, em consequência, o adaptador de rede não está funcionando e estou sem ideias para verificar ou fazer para recuperá-lo.

Detalhes

lsusb mostra que o adaptador é reconhecido como dispositivo USB:

Bus 002 Device 002: ID 13b1:003f Linksys WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU]

sudo lshw -C network mostra apenas a Ethernet e o WiFi interno (tem um nome muito semelhante). É um adaptador WiFi integrado que está funcionando mal no Ubuntu e, portanto, não é útil para mim.

Nota : 88 21AE é o Wi-Fi interno. Eu estou tentando obter 88 12AU para executar o que não está listado aqui porque não parece ser carregado.

*-network
   description: Ethernet interface
   product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
   vendor: Realtek Semiconductor Co., Ltd.
   physical id: 0
   bus info: pci@0000:03:00.0
   logical name: enp3s0
   version: 11
   serial: 54:a0:50:d5:4b:0b
   size: 10Mbit/s
   capacity: 1Gbit/s
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
   configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8168g-2_0.0.1 02/06/13 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
   resources: irq:42 ioport:e000(size=256) memory:f7d00000-f7d00fff memory:f0000000-f0003fff
*-network
   description: Wireless interface
   product: RTL8821AE 802.11ac PCIe Wireless Network Adapter
   vendor: Realtek Semiconductor Co., Ltd.
   physical id: 0
   bus info: pci@0000:04:00.0
   logical name: wlp4s0
   version: 00
   serial: 54:27:1e:d6:91:8d
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
   configuration: broadcast=yes driver=rtl8821ae driverversion=4.4.0-22-generic firmware=N/A ip=192.168.0.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn
   resources: irq:46 ioport:d000(size=256) memory:f7c00000-f7c03fff

A execução de rfkill list all mostra que nada parece estar bloqueado:

0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

Qualquer ajuda seria muito apreciada!

Muito obrigado.

    
por mz1000 02.10.2016 / 21:38

3 respostas

2

Aqui está um script rápido que escrevi para corrigir manualmente um problema de driver quebrado rtl8812au-dkms que ocorre após cada atualização de software do kernel. Execute o script com sudo após a atualização do software do kernel. O problema com esse driver é que o dkms o constrói para o kernel errado. É um problema com o dkms.conf, no código fonte. Eu posso ter uma correção permanente pendente.

Você pode dizer se você tem um kernel module load error em / var / log / syslog no momento da inicialização. No terminal, um modinfo 8812au mostrará vermagic como incorreto.

#!/bin/bash  
# save as ~/Desktop/fix_8812au.sh  
# in terminal: chmod +x ~/Desktop/fix_8812au.sh
# in terminal, run with: sudo ~/Desktop/fix_8812au.sh

cd /var/lib/dkms

# rtl8812au  

dkms remove rtl8812au/4.3.8.12175.20140902+dfsg -k "$(uname -r)/$(uname -p)"  
dkms build rtl8812au/4.3.8.12175.20140902+dfsg -k "$(uname -r)/$(uname -p)"  
dkms install rtl8812au/4.3.8.12175.20140902+dfsg -k "$(uname -r)/$(uname -p)"

Atualização: o usuário também estava usando uma versão mais antiga do driver 8812au, então instalamos a versão atual de rtl8812au-dkms dos repositórios, e tudo funcionou. O script será necessário imediatamente após a próxima atualização de software do kernel.

Atualização # 2: a correção correta (obrigado @ Jeremy31) para esse bug é editar esses dois arquivos:

gksudo gedit /usr/src/rtl8812au-4.3.8.12175.20140902+dfsg/dkms.conf

gksudo gedit /var/lib/dkms/rtl8812au/4.3.8.12175.20140902+dfsg/build/dkms.conf

and replace MAKE="'make' all" with this line:

MAKE[0]="'make' all KVER=${kernelver}"
    
por heynnema 03.10.2016 / 00:38
2

Este pacote pode ser corrigido editando os arquivos dkms.conf ...

sudo -H gedit /usr/src/rtl8812au-4.3.8.12175.20140902+dfsg/dkms.conf

Em seguida, altere a linha 4 de MAKE="'make' all" para MAKE="'make' all KVER=${kernelver}"

Salve e saia do editor e faça o mesmo com:

sudo -H gedit /var/lib/dkms/rtl8812au/4.3.8.12175.20140902+dfsg/build/dkms.conf

Como um problema semelhante foi relatado nos Fóruns do Ubuntu e minhas edições funcionaram para a última atualização do kernel que recebi .

Para o seu kernel atual, você deve ser capaz de:

dkms build rtl8812au/4.3.8.12175.20140902+dfsg -k $(uname -r)
dkms install rtl8812au/4.3.8.12175.20140902+dfsg -k $(uname -r)
Reinicie     
por Jeremy31 03.10.2016 / 23:59
0

Eu prego que você deve usar os módulos do kernel que estão totalmente assinados e compilados para a versão correta ... então eu peço e forço um módulo em que não consigo descobrir como assinar (sou desafiador de segurança). Na verdade, antes de aprender dkms, acho que devo ter digressado e forçado a versão errada do kernel antes (mas, ei, ainda funcionou!).

Você pode se encontrar na mesma situação. De qualquer forma, usando modprobe você pode instalar um módulo de kernel não assinado adicionando estes parâmetros:

-f, --force                 Force module insertion or removal.
                            implies --force-modversions and
                            --force-vermagic
    --force-modversion      Ignore module's version
    --force-vermagic        Ignore module's version magic

É claro que eu prego que você nunca faça isso, mas novamente ...

    
por WinEunuuchs2Unix 03.10.2016 / 00:57