GNU/Linux >> Tutoriels Linux >  >> Linux

Comment activer Broadcom Wireless sur Manjaro

Voici un problème intéressant. Il y a plusieurs semaines, j'ai testé Manjaro 18.0.4 Illyria sur mon ordinateur portable HP Pavilion, et j'ai rencontré un phénomène intéressant. L'ordinateur portable est équipé d'une carte Broadcom Wireless et, lors de la session en direct, avec des pilotes gratuits et non libres, le réseau fonctionnait correctement. Cependant, après l'installation, je n'avais plus de réseau sans fil.

En regardant l'apparence du système, j'ai trouvé une erreur indiquant l'erreur WLC_SCAN (-22). Une fois que j'ai frappé les Intertubes avec cette recherche, tout s'est déchaîné. J'ai trouvé des dizaines de messages sur les forums Arch et Manjaro parlant de ce problème. Certaines solutions ont été proposées, mais elles étaient soit inefficaces, soit très difficiles à mettre en œuvre. J'ai donc décidé d'essayer de résoudre ce problème par moi-même, d'où ce guide. Suivez-moi.

Problème plus en détail

En l'occurrence, dans mon cas, l'icône Sans fil s'est affichée et le gestionnaire de réseau a répertorié un certain nombre de points d'accès à proximité de l'ordinateur portable. Mais quand j'ai essayé de me connecter, rien ne se passait. Je taperais le mot de passe, j'attendrais, puis le point d'accès sélectionné disparaîtrait simplement de la liste et aucune connexion ne serait établie. En exécutant dmesg, j'ai vu le texte suivant :

[ 526.274664] IPv6 :ADDRCONF(NETDEV_UP) :wlo1 :le lien n'est pas prêt
[ 526.276614] ERREUR @wl_cfg80211_scan :
[ 526.276619] Erreur WLC_SCAN (-22)

J'ai fait identifier une carte de réseau sans fil (en service). Le module (gratuit) du noyau wl a été chargé en mémoire. Cependant, le système n'a pas pu établir de connexion. La désactivation d'IPv6 n'a pas aidé - c'est juste un artefact de ne pas utiliser IPv6 sur le(s) routeur(s).

J'ai essayé certaines des solutions rapides suggérées dans les différents fils de discussion. L'un d'eux consistait à utiliser le bouton matériel sur le boîtier de l'ordinateur portable pour allumer/éteindre l'antenne sans fil, puis à vérifier l'état avec la commande rfkill. Certaines personnes ont déclaré que cela les aidait à "débloquer" leurs cartes. Cela n'a pas fonctionné pour moi.

rfkill list
0 :hp-wifi :LAN sans fil
Bloqué logiciel :non
Bloqué matériel :oui
1 :hp-bluetooth :Bluetooth
Bloqué logiciel :oui
Bloqué dur :oui
2 :phy0 :LAN sans fil
Bloqué logiciel :non
Bloqué dur :non

Je ne voulais pas commencer à jouer avec yaourt à ce stade, en essayant broadcom-wl-dkms et d'autres trucs et astuces mentionnés. Je voulais voir si je pouvais résoudre ce problème avec des modifications minimes de l'état de mon système et, espérons-le, aucun téléchargement via un réseau câblé (ou similaire).

Solution

En regardant d'autres distributions que j'ai utilisées sur cette machine - y compris le Fedora 30 quelque peu problématique, ainsi que d'autres qui avaient une bonne connectivité réseau et une vitesse raisonnables, j'ai réalisé que je devrais plutôt utiliser les modules du noyau b43 pour le périphérique sans fil que le blob wl. La première étape a été de décharger manuellement le module existant (wl) et de charger celui b43 :

sudo modprobe -r wl

sudo modprobe b43

Une fois que j'ai fait cela, le problème a changé. Je n'avais plus du tout de Wireless, même si le module b43 a été chargé en mémoire. J'ai donc vérifié à nouveau les messages système et j'ai vu l'erreur suivante :

[ 120.170582] Prise en charge des révisions de cœurs 0x17 et 0x18 désactivée par le paramètre de module allhwsupport=0. Essayez b43.allhwsupport=1
[ 120.170590] b43 :la sonde de bcma0:1 a échoué avec l'erreur -524
[ 120.170611] Pilote Broadcom 43xx chargé [ Fonctionnalités :PNLS ]

Comme le dit l'erreur, j'avais besoin de charger le module avec différents paramètres :

sudo modprobe b43 allhwsupport=1

Succès! Une fois que j'ai fait cela, la carte sans fil est revenue à la vie, j'ai pu me connecter et utiliser le réseau très bien. Le problème est donc résolu - mais nous devons encore comprendre pourquoi, puis activer automatiquement l'utilisation du module b43 au démarrage.

Modules sur liste noire

Pour une raison quelconque, les éditions gratuites et non libres de Manjaro Illyria ont le module b43 sur liste noire, ce qui expliquerait pourquoi ils ne seraient pas chargés au démarrage. Vous pouvez le vérifier en examinant le contenu du fichier nommé linux419-broadcom-wl.conf sous /etc/modprobe.d. À l'intérieur, toute la gamme de modules pertinents était répertoriée, y compris b43, b43legacy, bcma, ssb et autres.

Activer le chargement de b43 au démarrage

Maintenant que nous avons un correctif manuel, nous devons le rendre permanent. Cela nécessite l'édition de deux fichiers. Premièrement, vous devez ajouter b43 à la liste des modules à démarrer sous /etc/modules-load.d/modules.conf. Si vous cat le contenu de ces fichiers, il affichera quelque chose comme :

# Liste des modules à charger au démarrage

Vous devez ajouter b43 en dessous, comme ceci :

# Liste des modules à charger au boot
b43

Mais ce n'est pas tout. Nous devons ajouter une option de chargement de module sous /etc/modprobe.d. Ceci est similaire à ce que nous avons fait avec la carte Realtek Wireless pour la faire fonctionner sur les anciens noyaux 3.X. Vous devez créer un fichier de configuration au format suivant :"nom du module".conf. Dans ce cas, b43.conf. Dans ce fichier, nous avons besoin de l'option allhwsupport :

options b43 allhwsupport=1

Pour vérifier, le fichier devrait ressembler à ceci :

cat /etc/modprobe.d/b43.conf
options b43 allhwsupport=1

Et c'est tout. Redémarrez et votre réseau sans fil sera opérationnel.

Conclusion

Nous y voilà. Ce n'était pas anodin. Mais je trouve cela plus élégant que de compiler et de construire manuellement des modules, et de devoir utiliser un réseau séparé juste pour récupérer les packages nécessaires. Le fait qu'il existe également deux répertoires différents que vous devez utiliser pour activer le chargement du module rend également cela un peu plus compliqué.

Quoi qu'il en soit, la solution à long terme consiste à faire en sorte que la distribution détecte automatiquement le matériel potentiellement "mauvais" déjà en phase de production et effectue les ajustements en conséquence - installez des outils de compilation et des en-têtes, modifiez la configuration du système à l'avance, etc., donc lorsque l'utilisateur se connecte dans un premier temps, tout fonctionne. J'espère que vous avez trouvé ce tutoriel utile. Prenez soin de vous, Manjariens.


Linux
  1. Comment activer les statistiques HAProxy

  2. Comment activer le transfert IP sur Linux

  3. Comment activer HTTP2 dans NGINX

  4. Comment activer le hachage md5 sous Linux

  5. Comment activer la partition d'échange Linux?

Comment désinstaller les applications WINE

Comment activer IPv6 dans Nginx ?

Comment activer la compression GZIP dans Nginx

Comment activer un référentiel EPEL

Comment activer les sauvegardes dans le cloud

Comment activer l'authentification en clair dans Dovecot ?