ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[wifi_broadcom_bcm43xx]]

Piste: » wifi_broadcom_bcm43xx


Wifi basé sur le chipset Broadcom Bcm43xx

Pour Ubuntu Gutsy (7.10) c'est le plus simple: Methode simple

Pour Ubuntu Hardy (8.04) l'installation automatique n'est pas systèmatique! :-(. Par contre il existe un très bon How to (dans la langue de Shakespare), à première vue ne concernant pas Hardy, mais finalement plutôt général. Suivez le guide !

Bcm43xx

Cette famille de chipset équipe pas mal de cartes de portables ou cartes wifi comme la WMP54GS et WPC54GS. Il est possible de passer par ndiswrapper pour pouvoir les utiliser mais c'est un peu lourd. Heureusement il existe une méthode plus légère et tout aussi efficace avec fwcutter, que nous allons décrire ici.

Pour déterminer la version de la carte réseau sur votre portable, utilisez la commande suivante:

# lspci | grep Network
01:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)

Remarques (Peuvent être fausses depuis HARDY)

Pour les cartes Broadcom 4318, si la méthode avec fwcutter ne marche pas, il vous faudra utiliser NdisWrapper. La procédure à suivre est disponible ici (en anglais) ou la méthode généraliste décrite ici: ndiswrapper

Les cartes Broadcom 4318 fonctionnent sous Edgy (64) avec le driver bcm43xx et le firmware wl_apsta.o configuré en WPA2 (testé sur HP dv5053ea) mais avec un ssid masqué, il faut ajouter wpa-ap-scan 2 à /etc/network/interfaces

Pour les cartes Broadcom 4328 sous hardy heron amd64 il faut visiter ce lien : bcm4328

Les cartes PCMCIA 16 bits à base de chip Broadcom ne fonctionnent pas avec le driver bcm43xx. (par exemple les carte Wifi WPCB-104B et WPCB-152G Freebox) Pour ces cartes, il faut attendre la finalisation du driver b43 disponible à partir du noyau 2.6.24 http://linuxwireless.org/en/users/Drivers/b43

Pour les cartes Broadcom BCM94311MCG Rev01 la connexion fonctionne avec le paquet b43-fwcutter, seulement le débit est limité a 6 Mbit/s, il faut donc utiliser Ndiswrapper pour profiter du débit théorique 54 Mbit/s

Pour les cartes Broadcom BCM94311 Rev02, et Broadcom BCM94312 il faut utiliser Ndiswrapper avec le fichier suivant :
sp34152.exe
Source : http://forum.ubuntu-fr.org/viewtopic.php?pid=1362550#p1362550

3 différentes méthodes d'installations

Hardy et b43-fwcutter

Depuis les dernières versions du kernel, et la version 8.04 (Hardy) de Ubuntu, l'installation de certains modules wifi Broadcom sont simplifiés grâce à b43-fwcutter. SOURCE: linux wireless site web

Version de la carte

Le tableau ci-dessous répertorie le fonctionnement de cette méthode suivant le modèle de carte wifi Broadcom.

Si vous obtenez des résultats différent de ceux décrits ici, ou absents du tableau, merci de les ajouter.

chips infos
# bcm4303 802.11bOK: procédure ci-dessous
# bcm4303 autres Non ?
# bcm4306 rev 1 & 2OK: procédure ci-dessous cf note
# bcm4306 rev 3OK: procédure ci-dessous
# bcm4309le mode 802.11a ne fonctionne pas (encore)
# bcm4310 USB rev 01 / NDiswrapper, Impossible avec B43+ Firmware ?
# bcm4311 rev 1 / bcm4312OK: procédure ci-dessous
# bcm4311 rev 2 / bcm4312Le noyau 2.6.24 à besoin d'un patch (semble fonctionner par défaut avec la version 2.6.24-19)
# bcm4312 rev 1 OK : fonctionne avec le driver/firmware installé par le gestionnaire de périphérique ( testé sur Dell Inspiron 1521/noyau 2.6.24-19 )
# bcm4312NON COMPATIBLE
# bcm4318OK: procédure ci-dessous
# bcm4328NON COMPATIBLE
# bcm4329NON COMPATIBLE
La version du noyau de Hardy rend impossible l'installation de la carte wifi bcm4311 rev 2. Le prochain kernel devrait résoudre le problème. Il existe un patch pour le noyau permettant l'installation du wifi via b43-fwcutter.

Procédure

  1. Installez le paquet b43-fwcutter via synaptic ou apt-get:
    apt-get install b43-fwcutter
    
  2. L'installation demandera s'il faut extraire le code. Répondre OUI.
  3. Après installation, votre wifi devrait fonctionner.

Notes

  • Le paquet b43-fwcutter est disponible sur le CD d'Ubuntu 8.04 (Hardy)
  • Si vous installez b43-fwcutter via synaptic, il faut cocher "Extraction du firmwmare pendant l'install".
  • Certaines révisions de la carte bcm4306 n'ont pas l'air de marcher avec le code par défaut. il faut suivre le procédé suivant:
  1. Télécharger le firmware ici.
  2. Extraire le fichier wl_apsta.o qui est dans le répertoire kmod de l'archive et l'enregistrer sur le bureau par exemple.
  3. taper les commandes:
    cd /lib/firmware/`uname -r`
    sudo b43-fwcutter /[CHEMIN VERS LE FICHIER]/wl_apsta.o
    sudo rmmod b43
    sudo modprobe b43
    
  4. désactiver la connexion sans fil en cliquant sur l'applet de connexion, la redémarrer, et ça devrait marcher.

Hardy et bcm4312 (rev 02)

Si la commande

lspci | grep Network

Vous renvoie quelque chose comme ça :

03:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 02)

ce qui suit peut vous intéresser.

On commence par installer ndiswrapper et blacklister le driver natif qui ne fonctionne pas, et on crée un répertoire temporaire qui nous servira à installer le driver fonctionnel.

Pour cela, exécutez les lignes suivantes :

echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
sudo apt-get install ndiswrapper-utils-1.9
mkdir /tmp/bcm43xx; cd /tmp/bcm43xx

On va ensuite télécharger le driver windows puis extraire le fichier qui nous interesse :

sudo apt-get install cabextract
wget ftp://ftp.hp.com/pub/softpaq/sp34001-34500/sp34152.exe
cabextract sp34152.exe

On configure ensuite ndiswrapper et on active le support du WPA :

sudo ndiswrapper -i bcmwl5.inf
ndiswrapper -l
sudo depmod -a
sudo modprobe ndiswrapper
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
sudo ndiswrapper -m
echo 'ndiswrapper' | sudo tee -a /etc/modules
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant

Exécutez ensuite la commande suivante :

sudo lshw -C network | tail -1

Si cette ligne contient quelque chose comme "module=ssb", passez à la suite. Sinon tout devrait fonctionner.

Si vous lisez ceci, c'est que la commande

sudo lshw -C network | tail -1

vous a renvoyé une ligne contenant "module=ssb"

Exécutez les lignes suivantes sans vous soucier des éventuelles erreurs, sauf pour la commande "sudo rmmod ssb" (je n'ai personnellement pas rencontré d'erreur à l'exécution de cette commande, je ne sais donc pas quelle démarche suivre en cas d'erreur).

sudo rmmod b43
sudo rmmod b44
sudo rmmod b43legacy #this step added Apr 27 2008
sudo rmmod ssb
sudo rmmod ndiswrapper
sudo modprobe ndiswrapper
sudo modprobe ssb
sudo modprobe b44 #this step added May 1 2008

Exécutez de nouveau la commande

sudo lshw -C network | tail -1

Cette fois-ci, la ligne devrait contenir quelque chose comme "module=ndiswrapper".

Pour rendre cette opération "automatique", exécutez la commande suivante :

echo -e '#Hardy ssb/ndiswrapper workaround, added' `date` '\ninstall ndiswrapper modprobe -r b43 b44 b43legacy ssb; modprobe --ignore-install ndiswrapper $CMDLINE_OPTS; modprobe ssb; modprobe b44;' | sudo tee -a /etc/modprobe.d/ndiswrapper

Tout devrait fonctionner maintenant.

Source: https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Feisty_No-Fluff#head-dc4447a654d5a60371368cd14456d035fcd9a42b

Installation du firmware

Installez le paquet bcm43xx-fwcutter.

Avec feisty, lors du paramétrage du paquet, il est proposé de "cutter" un firmware automatiquement (le wl_apsta.o qui fonctionnait avec bcm4306 et bcm4318 mais dont la version 4 n'est pas encore supportée). refusez en tapant "n" !

Le paquet bcm43xx-fwcutter va nous permettre d'installer le firmware (cette opération est à renouveler à chaque mise à jour du noyau).

Il nous faut maintenant un fichier bcmwl5.sys (le plus récent possible en version 3 et non 4 - non supportée pour l'instant - ), tapez par exemple (recommandé) :

 wget http://ubuntuondell.tuxfamily.org/download/bcmwl5/bcmwl5.sys

Autrement une liste de liens est disponible en tapant dans une console:

 zless /usr/share/doc/bcm43xx-fwcutter/README.gz

On crée un répertoire bcmwl5.sys

 sudo mkdir /lib/firmware/`uname -r`/bcmwl5.sys

Maintenant on extrait le firmware du fichier en tapant :

sudo bcm43xx-fwcutter -w /lib/firmware/`uname -r`/bcmwl5.sys bcmwl5.sys

Vous pouvez aussi extraire le firmware dans /lib/firmware afin qu'il soit chargé par le module bcm43xx quel que soit le kernel utilisé.

Relancez le module bcm43xx :

sudo rmmod bcm43xx
sudo modprobe bcm43xx

Sous Ubuntu (Gnome) ou Xubuntu (XFCE), installez le paquet network-manager-gnome.

Éditez le fichier /etc/network/interfaces et n'y laissez que ceci:

auto lo
iface lo inet loopback

Puis, ajoutez dans la liste des applications démarrées automatiquement au démarrage l'applet nm-applet :

nm-applet --sm-disable

Lancez cette applet enfin pour cette session en tapant Alt–F2 :

nm-applet --sm-disable

Une nouvelle icône dans votre zone de notification apparaitra. Un clic permet de choisir votre réseau wifi. Entrez-y votre clé wep et l'essid de votre réseau (pour une connexion WPA - faites une recherche sur le wiki).

Si jamais vous n'arriviez pas à vous connecter à un reseau WPA editez votre fichier /etc/network/interfaces et ajoutez "wpa-ap-scan 2" à la fin de la ligne de votre carte wifi

Par exemple si vous avez ça :

iface wlan0 inet dhcp

Transformez-le en :

iface wlan0 inet dhcp wpa-ap-scan 2

Alternative au script

Remarque : sur un modèle HP Pavillon zd7000 avec une carte BCM4306 (c'est aussi valable pour les portables Aspire 7000), sous Dapper, il est nécessaire de placer le firmware dans /lib/firmware. La méthode suivante réalise ceci par l'installation d'un paquet.

Remarque 2 : sur un portable modèle Hp pavillon dv6000 series (avec une carte BCM4311 ou Dell 1390), sous feisty, seule cette méthode fonctionne directement. Elle a aussi l'avantage d'être la plus légère pour le système.

soit vous téléchargez directement le paquet ici http://ubuntu.cafuego.net/pool/feisty-cafuego/bcm43xx/bcm43xx-firmware_1.3-1ubuntu2_all.deb (il ne sera donc pas mis à jour en cas de besoin (ce qui ici peut être positif, une mise à jour pouvant rendre le système dysfonctionnel)

Editez /etc/apt/sources.list:

le dépôt varie d'une version à l'autre, la clé à changé aussi. le plus sûr est de se rendre sur le site pour vérifier. Cafuego's Sarge Backports
 deb http://ubuntu.cafuego.net dapper-cafuego bcm43xx 

ajoutez la clé :

 wget http://ubuntu.cafuego.net/969F3F57.gpg -O- | sudo apt-key add -

rechargez apt-get :

 sudo apt-get update 

Puis :

sudo apt-get install bcm43xx-firmware

ou téléchargez directement le paquet :

wget -c http://ubuntu.cafuego.net/pool/dapper-cafuego/bcm43xx/bcm43xx-firmware_1.3-1ubuntu1_all.deb

et installez-le :

sudo dpkg -i bcm43xx-firmware_1.3-1ubuntu1_all.deb

Configuration :

sudo modprobe bcm43xx

Attention le firmware ne fonctionne pas avec la carte wifi BCM4318

Sur ce meme principe avec la BCM4318 : http://liaudetgael.free.fr/spip.php?article5

Pour Ubuntu Gusby c'est plus simple: Methode simple

Remarques

L'utilisation du firmware téléchargé plutôt que celle du script peut provoquer des gels réguliers identifiés dans le journal du noyau : "kernel : bcm43xx: Controller restarted". Avec le script, le firmware extrait peut ne pas contenir les mêmes fichiers (exemple pour le HP ZV6000, absence du fichier bcm43xx_microcode3.fw). Donc, la méthode consistant à extraire soi-même le firmware semble préférable.

Assurez vous que votre carte wifi n'ai pas été désactivée manuellement par un raccourci clavier (Fn→F2) ou par bouton wifi dédié sur le portable.

Vous pouvez aussi utiliser le fichier http://boredklink.googlepages.com/wl_apsta.o pour générer vos .fw .

L'injection de paquet en mode monitor ne fonctionnera qu'avec un patch encore très expérimental ( http://tinyshell.be/aircrackng/forum/index.php?topic=281.0 ). Cela nécessite aussi pour le moment de patcher les outils d'injection et/ou de monitoring.

Attention: extraire le firmware dans /lib/firmware afin qu'il soit chargé par le module bcm43xx quel que soit le kernel utilisé.

Problème " dpkg : erreur de traitement de bcm43xx-fwcutter "

Si lors de l'installation d'un paquet s'affiche une erreur de code 1 dans ce style :

Paramétrage de bcm43xx-fwcutter (006-1) ...
--20:05:00--  http://boredklink.googlepages.com/wl_apsta.o
           => `wl_apsta.o'
Résolution de boredklink.googlepages.com... 72.14.203.118
Connexion vers boredklink.googlepages.com|72.14.203.118|:80... connecté.
requête HTTP transmise, en attente de la réponse... 404 Not Found
20:05:00 ERREUR 404: Not Found.

dpkg : erreur de traitement de bcm43xx-fwcutter (--configure) :
 le sous-processus post-installation script a retourné une erreur de sortie d'état 1
Paramétrage de libglibmm-2.4-1c2a (2.13.3-0ubuntu1) ...

et

Des erreurs ont été rencontrées pendant l'exécution :
 bcm43xx-fwcutter
E: Sub-process /usr/bin/dpkg returned an error code (1)

c'est qu'il faut réinstaller un firmware pour Bcm43xx-fwcutter.

Commencez par télécharger ce fichier compressé et décompressez-le sur le bureau (Clik droit ⇒ Extraire ici)

Puis en terminal :

cd ~/Desktop/broadcom-wl-4.80.53.0/kmod/
sudo bcm43xx-fwcutter -w /lib/firmware wl_apsta.o

La dernière commande devrait retourner :

nom@nom_ordi:~$ sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/wl_apsta.o
*** WARNING ***
This file contains new version4 
firmware. v4 firmware is _not_ supported by 
the driver in mainline kernels. For v4 firmware 
you need latest bcm43xx development version 
(wireless-dev kernel tree). If you don't know what 
this warning is about, use a 3.xx.xx.xx driver version 
instead to extract the firmware.

  filename   :  wl_apsta.o
  version    :  4.80.53.0
  MD5        :  9207bc565c2fc9fa1591f6c7911d3fc0
  microcodes :  4 5 11 13 
  pcms       :  4 5 

  microcode  :  4
  revision   :  0x015f
  patchlevel :  0x007e
  date       :  2006-07-29
  time       :  05:54:02

  microcode  :  5
  revision   :  0x015f
  patchlevel :  0x007e
  date       :  2006-07-29
  time       :  05:54:02

  microcode  :  11
  revision   :  0x015f
  patchlevel :  0x007e
  date       :  2006-07-29
  time       :  05:54:02

  microcode  :  13
  revision   :  0x015f
  patchlevel :  0x007e
  date       :  2006-07-29
  time       :  05:54:02

extracting bcm43xx_microcode4.fw ...
extracting bcm43xx_microcode5.fw ...
extracting bcm43xx_microcode11.fw ...
extracting bcm43xx_microcode13.fw ...
extracting bcm43xx_pcm4.fw ...
extracting bcm43xx_pcm5.fw ...
extracting bcm43xx_initval01.fw ...
extracting bcm43xx_initval02.fw ...
extracting bcm43xx_initval03.fw ...
extracting bcm43xx_initval04.fw ...
extracting bcm43xx_initval05.fw ...
extracting bcm43xx_initval06.fw ...
extracting bcm43xx_initval07.fw ...
extracting bcm43xx_initval08.fw ...
extracting bcm43xx_initval09.fw ...
extracting bcm43xx_initval10.fw ...
extracting bcm43xx_initval20.fw ...
extracting bcm43xx_initval21.fw ...
extracting bcm43xx_initval22.fw ...
extracting bcm43xx_initval23.fw ...
extracting bcm43xx_initval24.fw ...
extracting bcm43xx_initval25.fw ...

Dorénavant vous n'aurez plus de message d'erreur à l'installation de paquets.


Contributeurs : Ju , nyl, Id2ndR, GottferDamnt , LinuXp0wer


wifi_broadcom_bcm43xx.txt · Dernière modification: Le 01/07/2008, à 22:59 par 82.246.13.63, 127.0.0.1
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL