Faire fonctionner une carte Broadcom BCM4311 sous Mint/Ubuntu

Introduction

Salut, ça fait un moment que je n’ai pas eu à la fois le temps et la motivation d’alimenter ce blog, j’ai pas mal expérimenté ces derniers temps, notamment pour mettre en place des outils pour une asso ou encore lors d’une Install Party.


Donc j’ai bien quelques sujets intéressants qui méritent un article mais manque de temps… pour l’instant je vais me contenter de traiter d’un seul sujet, qui me semble important, à savoir faire fonctionner sous GNU/Linux Mint/Ubuntu une carte WiFi Broadcom assez chiante

Le 28 novembre 2015, j’ai participé à la Journée du Libre de Sarrebourg (Moselle) pour filer un coup de main pour l’Install Party, les organisateurs opté pour Mint, dérivée de Ubuntu, donc la situation exposée dans cet article touche surement aussi Ubuntu, bien que je ne l’ai testé que sous Mint.

J’ai donc découvert lors de cette Install Party l’existence de la carte WiFi Broadcom BCM4311 et du lot d’emmerdes qu’elle apporte, c’est là que je suis content d’être un “extrémiste du Libre” auto-radicalisé du copyleft sur gnu.org, qui n’achete que des périphériques ne nécessitant pas de drivers/firmware proprio
Bref, sur les 12 PC qu’on a installé lors de cette JDL, dont des desktops (sans WiFi), 2 machines étaient équipées de la BCM4311, heureusement, j’ai aussi trouvé la solution le jour j, avant que les PC concernéa ne repartent

Le problème et sa solution décrits dans cet article étaient valables pour les deux machines, sans compter les postes sur divers forums qui mentionnent des problèmes avec cette carte, utilisée par pleins de constucteurs…
Étant donné que

  • Ce modèle de carte WiFi, est vachement répondu
  • La solution du problème traité  ici n’est pas vraiment documentée, j’ai trouvé que des pistes sur des forums GNU/Linux anglophones et divers blogs perso, qui ont servi de base à la solution proposée ici, mais j’ai pas trouvé de solution clé en main pour le Linuxien débutant qui n’a pas le temps de bidouiller
  • En testant un peu, et à partir des infos récoltés sur le divers forums/blogs, j’ai trouvé une solution

Je me suis dit que ça mérite un article, mais j’ai pas eu le temps de l’écrire avant aujourd’hui, donc ça ne fait qu’un bon gros mois que je voulais écrire cet article…
Avant d’aller plus loin, note importante, d’après les infos récoltées dans divers forums, cette même carte peut poser d’autres problèmes pour les quelles d’autres solutions, des cas qui ne s’appliquaient pas aux machines que j’ai installé lors de cette JDL.

Et en plus, comme les problèmes/solutions dépendent de la configuration… dans cet article, je traite uniquement du cas qui répond aux contraintes suivantes

  • Vous n’avez rien modifié concernant la carte Broadcom (fichiers de configuration, chargement/déchargement de modules… )
  • Vous avez installé aucun driver/firmware, ou uniquement le bon firmware pour votre carte, proposé dans la doc officiel d’Ubuntu, à savoir firmware-b43-installer (voir lien dans la partie Solution) et pas un autre.

Bien sur, mon but n’est pas de traiter tous les cas possibles, ce serai de toute façon impossible… donc je ne garantie pas que si vous rencontrez un problème avec une Broadcom BCM4311, c’est forcément celui traité ici, mais l’info peut servir.

Si vous tombez dans un autre cas de figure, essayez plus de vous renseigner sur les forums.
Et vous pouvez toujours me poser des questions en commentaires, en me donnant assez de détails sur le dysfonctionnement rencontré, si j’ai du temps, j’essayerai de filer un coup de main.

Problème

Le constat est simple, pas de réseaux WiFi détectés et aucun outil type ifconfig/iwconfig ne voit l’interface wlan0
Par contre, la carte est bien détectée par le noyau, la commande

donne la référence de la carte WiFi, Broadcom BCM4311, avec comme id 14e4:4311

Deuxième problème lié au premier : le système, du moins Linux Mint plante à l’extinction (freeze sur le logo) si vous avez essayé de charger le module b43 et le terminal ne vous redonne pas la main au moment de chargement du module, car le chargement du module en question plante tout simplement
Résoudre le problème WiFi permettra de résoudre aussi le problème de plantage à l’extinction
Le problème est lié au firmware faisant fonctionner les cartes Broadcom BCM43xx, commun à plusieurs cartes donc, il ce problème peut potentiellement concerner d’autres cartes (mais pas toutes) de la famille Broadcom BCM43xx, pas que la Broadcom BCM4311

Solution

Il faut déjà commencer par installer le paquet firmware-b43-installer ( <– voir le tableau sur la page de doc ubuntu).
À partir de là, je part de principe que vous commencez from scratch, si vous avez modifié des fichier de configurations ou installer d’autres drivers (que celui indiqué) pour cartes WiFi Broadcom BCM43xx, ou (dé)chargé/blacklistés par vous même des modules en rapport avec la carte WiFi, faites les opérations inverses avant de continuer.
Il faut commencer par éditer, en tant que root, le fichier /etc/modprobe.d/blacklist-bcm43.conf avec votre éditeur de texte favori et commentez les lignes suivantes (en les faisant précédé d’un dièse #)

Pour débloquer le chargement des modules nécessaires au fonctionnement de la carte, qui sont bloqués par défaut

Donc il faut remplacer

Par

Sauvegardez votre fichier de configuration modifié
Ensuite assurez vous que tous les autres modules liés aux cartes Broadcom BCM43xx soient bien blacklistés, donc vérifier bien le contenu des fichiers /etc/modprobe.d/blacklist.conf et /etc/modprobe.d/broadcom-wl.conf

Le fichier /etc/modprobe.d/blacklist.conf contient notamment la ligne de commentaire concernant b43 et ssb, suivi d’une ligne qui blackliste un module obsolète, justement remplacé par b43 et ssb à savoir

[/crayon]
Ce module doit donc resté blacklisté, conséquence cette seconde ligne ne doit surtout pas être retirée ou commentée.

Pensez aussi à vérifier également dans ces 3 fichiers /etc/modprobe.d/blacklist-bcm43.conf, /etc/modprobe.d/broadcom-wl.conf/etc/modprobe.d/blacklist.conf, si les blacklisting en sont en doublon, en particulier pour b43 et ssb, si l’un des deux et blacklisté deux fois, il faut supprimer carrément la ligne doublon (celle que vous n’aurez pas commenté précédemment)
La commande suivante vous donnera une vue d’ensemble sur le blacklisting de module b43 ou apparenté

Sachez que b43legacy doit resté blacklisté contrairement à b43, donc la ligne suivante, du fichier /etc/modprobe.d/blacklist-bcm43.conf, ne doit pas être commentée

Ensuite, une fois que les fichiers de configuration mentionnés dans cet article ont été modifiés correctement

  • Methode sale (1) : Soit redémarrer le système (en forçant manuellement l’extinction du système quand il plantera sur le logo) pour qu’au prochain démarrage, les modules manquants, à savoir b43 et ssb, se chargent automatiquement
    (1) Cette methode est mentionnée ici juste pour illustrer le qu’une fois qu’en charge manuellement les modules, s’ils sont pas bloqués lors de la tentative du chargement, ils sont automatiquement chargés au démarrage du système jusqu’à ce qu’on les décharge manuellement, qu’on désintalle, ou qu’on les blackliste, donc vous n’aurez plus de modules à charger ni de fichiers de configuratin à modifié après les redémarrages suivants la résolution du problème
  • Methode propre : Soit les charger manuellement avant d’éteindre la machine, afin de vérifier que le chargement du module ne plante pas, et donc permettre une extinction propre du système, donc il faut taper en tant que root la commande suivante

Conclusion

A partir de là, la carte WiFi Broadcom BCM4311 devrait fonctionner correctement, le système s’eteint proprement, sans planter o/

Note :

Récemment, on m’a encore ressorti le pseudo argument du “windows c’est quand même vachement plus simple quand t’es pas informaticien, plus simple… alors que Debian, tu passe ton temps à essayer de faire fonctionner ton imprimante… pis c’est pas soutenu par une grosse boite, donc c’est quand même moins bien” (non, c’est pas du sarcasme, ni une exagération, on m’a vraiment dit ça comme ça… ), le problème avec ce genre de discours, en plus d’être faux, c’est de décourager les nouveaux utilisateurs GNU/Linux potentiels, donc de contribuer à maintenir le quasi-monopole de micro$oft dans le marché Desktop, en diffusant sa propagande, donc voici deux cas, basés sur mon expérience, pour en finir cette idée reçue… pour prouver qu’un concept est faux, il suffit d’un contre exemple, puisque l’idée de base de la propagande marketing de microsoft (et d’autres), c’est justement de faire des généralisations stupides à partir de cas isolés

Alors oui, il y a du matériel de merde avec des drivers proprio bâclés, presque anti-GNU/Linux, comme la cate WiFi dont cet article parle… mais contrairement au fantasme tant répondu chez les windowsiens

– Ce genre de matériel est très rare, plusieurs années à utiliser exclusivement GNU/Linux comme système sur toutes mes machines, sans oublier les gens que je dépanne ou les Install Party, ou encore le vieux matos que je retape pour moi ou pour des asso… le nombre de fois où je suis tombé sur ce type de matériel, se compte sur les doigts d’une moins après un accident dans un broyeur
– windows n’est absolument pas exempt de ce type de problème, malgré un quasi-monopole sur le marche desktop, obtenu à coup de vente forcée de licence OEM, de propagande pro-M$ menée des medias tech, et d’une collaboration active de l’Éducation Nationale
Il y a quelques années, quand je dépannais encore les gens sous windows, j’ai vu bien pire, même avec du matériel pourtant grand public

Exemple 1 : Il y a 7 ans, bientôt 8, à mes débuts sous GNU/Linux avec Ubuntu, en dualboot avec Vista, je suis tombé sur une carte Nvidia dont le driver officiel
– Ubuntu : fonctionnel et simple à installer (activation des pilotes proprio dans Ubuntu), et carte fonctionne sans souci donc pas de panne matérielle
– windows : que le driver vienne du CD fourni, du site du Nvidia, du site de Asus ou du site de Gigabyte, fait tout bonnement planté windows, sur un écran noir, sans aucune indication

Les génies de dev du driver windows, ils mettent tranquillement en prod un driver qui ne fonctionne même, et qui n’a aucune alternative, normal…
Le pire c’est que c’était pourtant pas du matériel exotique, juste une carte entrée de gamme avec un logo à la con “compatible windows vista”, sauf que les drivers fournis sont tellement foireux que ça revient à du non-support de windows.
Du coup il faillait utiliser les drivers génériques pourris de windows (bien plus restrictifs que les drivers génériques Linux) et bien sûr ne pas oublier de “bloquer une mise à jour”, celle correspondant au driver de la carte nVidia, qu’il fallait supprimer pour ne pas avoir un un écran noir au démarrage suivant… parce que sinon, windows l’installer automatiquement par defaut pendant les autres mises à jours, no comment!
Le coté positif de la chose, c’est qu’à beaucoup contribuer à me faire fuir windows…
Je me sert plus de windows du tout depuis que j’ai mon laptop perso, donc depuis quelques années
Non seulement ça m’a jamais posé de problème de mais au contraire ça m’évite de gaspiller des heures à réparer tout les mois/réinstaller tous les 6 mois un système obsolète
Par contre j’ai continuer de dépanner de windowsiens pendant un certain temps, après avoir banni l’usage de windows pour moi-même
Mais ça a fini par me gonfler, c’est chronophage et inutile, maintenant si un type me demande de lui réparer son windows, je lui tend un Live USB du Manchot

Exemple 2 : Il y a quelques années avant de passer le PC de mes parents sous Ubuntu, alors que windows 7 était déjà bien implanté sur le marché, j’ai du installer une imprimante HP Photosmart sur la machine win7 de mes parents
L’imprimante en question est un vrai cauchemar à gérer sous windows…
Les drivers windows officiels et l’utilitaire d’impression de HP sont une usine à gaz nécessitant deux bonnes heures à s’installer (quand windows ne plante pas durant l’install…)
Sauf qu’il faillait réinstaller le bousin tous les mois, parce que le driver pourri n’arrivait plus à causer à l’imprimante au bout de quelques temps, et aucune solution autre qu’une réinstallation complète des drivers + utilitaires d’impression HP

Alors qu’une Debian sans le moindre paquet proprio, reconnait nativement l’imprimante, qui fonctionne correctement depuis des années, sans la moindre réinstallation de HPLIP

Donc, à un moment donné, il faut trouver mieux que le discours bullshit et techniquement faux d’un vendeur micro$oft, si les trolls anti-logiciel libre veulent avoir l’air juste “moyennement con” plutôt que “extrêmement débile”

Leave a Reply

Your email address will not be published. Required fields are marked *