lundi 2 février 2009

Installation du Wifi avec le driver officiel Linux Broadcom




Pour Drivers BCM4311, BCM4312, BCM4321 et BCM4322


Pour Linux Ubuntu, Mandriva, Mint, Debian, etc …..

Si toi aussi, tu a passé des heures a essayer d'activer ta carte Wifi Broadcom,
Si toi aussi, tu as essayé plein de truc avec des noms barbares : b43, fwcutter ou b43XX,
Si toi aussi, tu as essayé d'extraire les drivers Windows de fichier .exe récupéré chez Dell ou ailleurs,
Si à toi aussi, on t'a dit qu'il fallait utiliser les drivers de XP et non de Vista,
Si toi aussi, tu as cru un instant que tu devrais utiliser Windows pour surfer avec ton Wifi,

Alors tu va être heureux d'apprendre que ton calvaire est fini car tu trouveras ci-dessous la manip qui marche et qui te rendra heureux en moins de 10 minutes . Cependant, pour éviter toute perte de temps, assurez-vous que ce tuto est bien fait pour vous, en saisissant dans une console la commande suivante :

lspci

Le résultat doit être le suivant :

05:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)

Si cela est indiqué BCM4311, BCM 43212, BCM4321 ou BCM4322, vous pouvez alors continuer ce tuto.
Si vous avez Ubuntu ou Mint, c'est très simple : Allez dans le menu (sous Gnome) Système / Administration / Pilotes de Périphériques. Tu découvriras que ces distributions embarquesnt les drivers Broadcom. Tu cliques sur le bon driver et c'est terminé.
Pour les autres (Mandriva entre autres), il faut continuer le tuto ci-dessous.
Heureusement pour eux, Broadcom fournit maintenant les drivers pour Linux. A récupérer donc ici :



Télécharger la version 32 bits et lire le fichier README dont vous trouverez ci-dessous une traduction ainsi que des instructions améliorées. Le fichier téléchargé est le suivant :
hybrid-portsrc-x86_32-v5_10_27_14.tar.gz


Celui que vous récupérerez sera peut-être avec un nom différent car d'une version supérieure. Adaptez alors ce tuto avec le nom correspondant.Décompressez le fichier, dans son répertoire propre, soit en cliquant droit dessus (extraire ici) soit en ligne de commande :

tar -xvzf hybrid-portsrc-x86_32_5_10_27_6.tar.gz
Contenu de ce nouveau répertoire :
lib
Makefile
src
Positionnez-vous dans ce répertoire :

cd hybrid-portsrc-x86_32-v5_10_27_14

(adaptez le nom avec celui qui aura été effectivement créé).


Tout ce qui suit doit être réalisé en mode Root :

su

Vous devez construire le LKM (Loadable Kernel Module) avec la commande suivante ou vous remplacerez XXXXXXXXXX par votre kernel [Le mien est : 2.6.27.10-desktop586-1mnb. Pour connaître le vôtre tapez : uname -r ]

make -C /lib/modules/XXXXXXXXXX/build M=`pwd`


Dans votre répertoire, de nouveaux fichiers sont apparus :


built-in.o
hybrid-portsrc-x86_32_5_10_27_6.tar.gz
lib
Makefile
modules.order
Module.symvers
src
wl.ko
wl.mod.c
wl.mod.o
wl.o


Le fichier tant désiré est wl.ko. Assurez-vous que vous n'avez pas installé les programmes suivants : b43, b43legacy or b43xx. Si cela est le cas ou dans le doute, tapez l'une après l'autre les commandes suivantes :


rmmod bcm43xx
rmmod b43
rmmod b43legacy
echo 'blacklist ssb' | tee -a /etc/modprobe.d/blacklist


Et pour finir virer les modules installés de ndiswrapper :


rmmod ndiswrapper


Chargez le module ieee80211_crypt_tkip puis finalement chargez le module wl.ko :

modprobe ieee80211_crypt_tkip
insmod wl.ko

Bonne nouvelle : votre wifi marche maintenant. Regardez sa led ou si vous faites un ifconfig, vous verrez wlan0 avec le driver lo.

Mais la doc fournit dans le README de Boradcom ne vous précise pas que si voulez que votre Wifi marche après un reboot, vous devez réalisez les opérations suivantes :
Copiez le fichier wl.ko file vers /lib/modules/2.6.26-1-686/kernel/net/wireless/ avec la commande suivante ou vous remplacerez XXXXXXXXXX par votre kernel. (voir en début de ce tuto).


cp wl.ko /lib/modules/XXXXXXXXXX/kernel/net/wireless/
Créez les dépendances puis chargez le nouveau module :

depmod -a
modprobe wl


Si vous n'avez pas d'erreur alors modprobe fonctionne parfaitement.


Pour Mandriva, l'étape suivante n'est pas nécessaire. Pour les autres systèmes, elle l'est peut être : Dites à votre système de charger le nouveau module en éditant le fichier /etc/modules et en y incluant les 2 lignes suivantes :
ieee80211_crypt_tkip
wl

Maintenant rebootez …. et surfez.

Sources :
------------------------------------------------------------
Sélection d'autres articles :


7 commentaires:

mathieu a dit…

bonjour Pinnochioooo



Je suis matmar08120 et j'ai posté un pb sur le site "commentçamarche" afin de résoudre un probleme sur mandriva 2009.0 concernant le wifi.

J'avais comme je vous l'ai répondu sur le site effectué votre tutoriel qui fonctionnait parfaitement.Mais le lendemain, impossible de me connecter à un accès internet.Je me suis donc dit qu'il fallait mieux que je réinstalle car avec toutes les manipulations effectuées auparavant mon système n'arrivait peut être pas à conserver la configuraton.

J'ai donc réinstaller le système mais désormais j'ai un problème au niveau du wifi.Lorsque j'effectue la commande make :



make -C /lib/modules/<2.6.xx.xx>/build M='pwd'





J'ai ce résultat suivant:
make: *** /lib/modules/2.6.27.10-desktop-1mnb/build: Aucun fichier ou dossier de ce type. Arrêt.

Je ne comprends pas pourquoi ça ne fonctionne pas.J'ai lu également le README de broadcom mais je ne trouve pas de solutions étant vraiment novice, je galère un peu :)


Merci de votre aide si vous pouvez m'aider. Matmar08120

Capucino a dit…

Je pense que tu ne devais pas être en mode root.

Donc, avant, tapes dans une console :

su

Puis mets ton mot de passe.

Anonyme a dit…

Bonjour,
Voila une page qui pourrait être bien utile et dont l'introduction évoque bien la réalité (les interminables recherches stériles des gens non techniciens).
Mais attention, je pense que la cde lsci n'est pas la bonne.
Par ailleurs, j'ai le même problème que Mathieu avec le même résultat en étant bien en root.

j'avoue avoir beaucoup beaucoup de mal à comprendre pourquoi je dois patauger depuis des jours dans une incroyable quantité de doc, alors que je viens d'installer Mdv 2009, que la carte wifi de mon potable tout neuf est des plus basique, bcm4312, que je constate que le problème était déjà évoqué dans des messages au sujet de la mandriva 2007, que lorsqu'on pose la question chez Mandriva, on se fait vertement renvoyé à des réponses de forum qui sont elles-mêmes très vaseuses et inefficaces.
En tout cas, merci pour l'introduction sur les déboires des utilisateurs et aussi pour les efforts !
François

Geoffrey a dit…

Bonjour,

Mathieu, concernant ton pb, essai de formuler de la sorte :

make -C /lib/modules/<2.6.xx.xx>/build M=$('pwd')

Pour moi, ca a "fonctionné".

Mais en attendant, après avoir effectué toutes ces opérations (m'ayant ammené au final à la copie de wl.ko dans etc/kernel/net/wireless/ ), ma carte Broadcom BCM43318 n'est toujours pas reconnue !

En ifconfig, juste eth0 et lo, mais pas de Wlan0 ...

Quelqu'un a une solution ?

La chiotte avec cette carte,à chaque nouvelle version de ubuntu, jamais reconnus ! ... :(

Si quelqu'un a une solution ...

Merci de m'avoir lu,

Geoffrey

Capucino a dit…

Oups ... erreur rectifiée :

La bonne commande est lspci.
J'ai modifié l'article.

Merci pour l'info.

Cyril a dit…

Bonjour,
j'ai le meme probleme que mathieu, lors de la commande 'make -C ...' j'ai l'erreur suivante : aucun fichier ou dossier de ce type (je suis sous débian en root) -> faut-il créer le répertoire (ou fichier) 'build' avant d'exécuter la commande?

juste pour info, en parcourant des forum j'ai essayer de bidouiller des commandes qui me donnent souvent l'erreur : pas de règles pour créer la cible.
je sais pas si ça a un rapport ou si j'ai oublié d'installer quelque chose...

avez-vous une solution? je m'arrache les cheveux !!
AAAAAAAAAHHH !
merci d'avance
a+
Cyril

Anonyme a dit…

Bonjour, je suis désolé, j'ai le même type de problème : Depuis la mise à jour avec 2.6.31-19-generic x86_64, je ne réussis plus à faire fonctionner le wifi !
D'abord quelques informations sur ma config :
J'ai un macbook pro 5,5 en dual boot avec Mac OS 10.6 et Ubuntu.

~$: iwconfig donne
lo no wireless extensions.
eth0 no wireless extensions.
pan0 no wireless extensions.

~$: lspci | grep Network donne
Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)

~$: lspci | grep Ethernet
00:0a.0 Ethernet controller: nVidia Corporation MCP79 Ethernet (rev b1)

~$: cat /etc/network/interfaces
auto lo
iface lo inet loopback

Et voici ce que j'observe en suivant les conseils de ce forum :
~$root$: pwd
~$root$: /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36

~$root$: make -C /lib/modules/2.6.31-19-generic/build M=`pwd`
make: entrant dans le répertoire « /usr/src/linux-headers-2.6.31-19-generic »
LD /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./built-in.o
CC [M] /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./src/shared/linux_osl.o
CC [M] /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./src/wl/sys/wl_linux.o
CC [M] /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./src/wl/sys/wl_iw.o
LD [M] /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./wl.o
ld: Relocatable linking with relocations from format elf32-i386 (/home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./lib/wlc_hybrid.o_shipped) to format elf64-x86-64 (/home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./wl.o) is not supported
make[1]: *** [/home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./wl.o] Erreur 1
make: *** [_module_/home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36.] Erreur 2
make: quittant le répertoire « /usr/src/linux-headers-2.6.31-19-generic »

~$root$: ls
built-in.o lib Makefile README.txt src

~$root$:
Remarquons que /home/guy/Téléchargements/hybrid-portsrc-x86_32-v5.60.48.36./wl.o n'existe pas.
Et que ~$: ls -alG /lib/modules/2.6.31-19-generic/kernel/net/wireless donne :
-rw-r--r-- 1 root 162000 2010-01-28 05:52 cfg80211.ko


... et je suis bloqué. Que faire ?
Cordialement