web-dev-qa-db-fra.com

Le module WiFi 8812AU ne fonctionne pas avec la version du noyau> = 4.4.0-28-generic

Problème

J'avais un adaptateur WiFi USB bi-bande Linksys WUSB 6300 fonctionnant avec bonheur sur mon ordinateur de bureau avec le module de pilote 8812AU.

Lorsque je l’ai fait fonctionner pour la première fois, j’ai utilisé méthode de signature du pilote pour le faire fonctionner avec Secure Boot. Cela a bien fonctionné avec la version 4.4.0-23-generic du noyau et plus tard également avec la version 4.4.0-24-generic où je l'ai démissionné après la mise à jour.

Après la mise à jour vers la version 4.4.0-28-generic, le fait de quitter pour une raison quelconque n’a plus l’effet souhaité et il ne semble pas charger le module de pilote 88 12AU .

Après la mise à jour vers 4.4.0-38-generic, le comportement reste le même.

L'outil Pilotes supplémentaires me montre maintenant this , donc je ne suis pas sûr que les fichiers du module se soient en quelque sorte égarés. Je suis assez nouveau pour Ubuntu, alors je ne saurais pas le dire. Quand cela fonctionnait encore, il m'a montré this .

En conséquence, la carte réseau ne fonctionne pas et je suis à court d'idées sur ce qu'il faut vérifier ou faire pour la remettre au travail.

Détails

lsusb me montre que l'adaptateur est reconnu comme périphérique USB:

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

Sudo lshw -C network ne me montre que l'Ethernet et le WiFi interne (son nom est très similaire). Il s’agit d’un adaptateur WiFi intégré qui fonctionne mal sous Ubuntu et n’est donc pas utile pour moi.

Remarque : 88 21AE est le WiFi interne. J'essaie de faire fonctionner 88 12AU qui n'est pas répertorié ici, car il ne semble pas être chargé.

*-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

Lancer rfkill list all montre que rien ne semble bloqué:

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

Toute aide serait grandement appréciée!

Merci beaucoup.

2
mz1000

Voici un script rapide que j'ai écrit pour résoudre manuellement un problème de pilote cassé rtl8812au-dkms qui se produit après chaque mise à jour logicielle du noyau. Exécutez le script avec Sudo après la mise à jour du logiciel du noyau. Le problème avec ce pilote est que dkms le construit pour le mauvais noyau. C'est un problème avec dkms.conf, dans le code source. Je peut avoir un correctif permanent en attente.

Vous pouvez savoir si vous avez un kernel module load error dans/var/log/syslog au moment du démarrage. En terminal, un modinfo 8812au indiquera vermagique comme incorrect.

#!/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)"

Mise à jour: l'utilisateur utilisait également une ancienne version du pilote 8812au. Nous avons donc installé la version actuelle de rtl8812au-dkms à partir des référentiels, et tout a fonctionné. Le script sera requis immédiatement après la prochaine mise à jour logicielle du noyau.

Mise à jour # 2: le correctif correct (merci @ Jeremy31) de ce bogue consiste à éditer ces deux fichiers:

. 20140902 + dfsg/build/dkms.conf 
 
 Et remplacez MAKE = "'make' all" par cette ligne: 
 
 MAKE [0] = "' make 'all KVER = $ {kernelver} "
2
heynnema

Ce paquet peut être corrigé en modifiant les fichiers dkms.conf ...

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

Puis changez la ligne 4 de MAKE="'make' all" en MAKE="'make' all KVER=${kernelver}"

Sauvegardez et quittez l'éditeur puis faites la même chose avec:

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

Comme un problème similaire a été signalé sur Forums Ubunt et mes modifications ont fonctionné pour la dernière mise à jour du noyau que j'ai reçue.

Pour votre noyau actuel, vous devriez être capable 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)
3
Jeremy31

Je prêche que vous devriez utiliser des modules du noyau qui sont entièrement signés et compilés dans la bonne version ... alors je pèche et force un module car je ne sais pas comment signer (je suis confronté à des problèmes de sécurité). En effet, avant d’apprendre dkms, je pense avoir dû digérer et forcer la mauvaise version du noyau avant (mais bon, cela fonctionnait quand même!).

Vous pourriez vous retrouver dans la même situation. Quoi qu'il en soit, en utilisant modprobe, vous pouvez installer un module de noyau non signé en ajoutant ces paramètres:

-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

Bien sûr, je prêche que vous ne devriez jamais faire cela, mais encore une fois ...

0
WinEunuuchs2Unix