Wiki

WLAN/Broadcom bcm43xx

Broadcom bcm43xx

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Broadcom Chipsätze werden in viele WLAN-fähige Geräte, wie Router/Access-Points und Notebooks, eingebaut. Lange Zeit war es nur möglich die Broadcom Chipsätze BCM43xx über die Windows-Treiber mittels NdisWrapper in Betrieb zu nehmen. Inzwischen gibt es jedoch den b43/b43legacy-Treiber {en} für Linux.

Eine Liste aller vom b43/b43legacy-Treiber unterstützten Karten findet man hier {en}. Dieser Treiber unterstützt keine WLAN-Module, die über USB angebunden sind. Für diese ist weiterhin der NdisWrapper erforderlich. Weiterhin existiert ein von Broadcom entwickelter Closed-Source-Treiber (STA-Treiber), der die Chipsätze BCM4311, BCM4312, BCM4321 und BCM4322 unterstützt.

Historisches: Mit dem Erscheinen des Kernels 2.6.24 (ab Ubuntu Hardy Heron 8.04) wurden zwei neue einheitliche Treiber eingeführt, b43 und b43legacy, die den bcm43xx-Treiber ersetzen. Der Grund für zwei Treiber ist, dass der b43-Treiber die Broadcom v4-Firmware und der b43legacy-Treiber die Broadcom v3-Firmware (ältere IEEE 802.11b-Chipsätze) unterstützt. Somit können alle Artikel, die den bcm43xx-Treiber erwähnen, als veraltet angesehen werden.

Installation

Der b43/b43legacy-Treiber verwendet eine proprietäre Firmware die aus lizenzrechtlichen Gründen nicht mitgeliefert wird und daher separat heruntergeladen werden muss. Dies geschieht in modernen Ubuntu-Versionen über Jockey, der eine Auswahl an proprietären Treiber bietet und sich um die Installation der Treiber kümmert.

Im Ubuntu GNOME-Menü befindet sich ein Starteintrag für die Verwaltung der proprietären Treiber (Jockey) unter "System -> Systemverwaltung -> Hardware-Treiber".

Oftmals befinden sich dort mehrere Treiber, auch für unterschiedliche Hardware, so z.B. für die Gafikkarte. In unserem Fall interessieren wir uns nur für die WLAN-Treiber, die den Broadcom-Chipsatz unterstützen. Je nach Hardware stehen häufig zwei verschiedene Treiber zur Auswahl: Hardware-Treiber-256.png

  1. b43/b43legacy-Treiber (Open-Source-Treiber, proprietäre Firmware)

  2. STA-Treiber (auch wl- oder bcmwl-Treiber genannt, Closed-Source-Treiber)

Um einen Treiber zu installieren, setzt man einfach per Mausklick ein Häkchen bei "Aktiviert" oder klickt auf "Aktivieren". Für eine Deinstallation des Treibers muss das Häkchen entfernt oder auf "Deaktivieren" geklickt werden. Für die Erstinstallation ist ein Internetzugang über ein Ethernet-Kabel notwendig.

Ist ein Treiber installiert worden, so empfiehlt es sich Ubuntu neu zu starten, damit die Änderung wirksam wird. Anschließend kann mit Hilfe des Network-Managers ein WLAN-Netzwerk gewählt werden.

Tipps:

  1. Nach der Installation eines Treibers wird der evtl. zweite vorhandene Treiber verborgen. Um ihn wieder sichtbar zu machen muss der installierte Treiber deaktiviert werden. Danach stehen wieder beide Treiber zur Auswahl.

  2. Steht der STA-Treiber zur Auswahl, so empfiehlt es sich diesen zu installieren, da er oftmals eine schnellere Verbindung zulässt. Es ist es möglich, dass der STA-Treiber bei nicht aktualisierten Systemen zu Kernel-Freezes/Panics führt. Dies betrifft nur die Versionen Ubuntu Intrepid Ibex 8.10 und Ubuntu Hardy Heron 8.04.

  3. Durch Installation der linux-backports-modules (compat-wireless) kann der b43/b43legacy-Treiber aktualisiert werden.

  4. Sollen alle in Europa erlaubten Kanäle 1-13 für Verbindungen zugelassen werden, so muss in Ubuntu Jaunty Jackalope 9.04 folgender Befehl im Terminal [1] eingegeben werden:

    sudo iw reg set DE 

    Unter Ubuntu Intrepid Ibex 8.10:

    echo 'options cfg80211 ieee80211_regdom="EU"' | sudo tee -a /etc/modprobe.d/cfg80211 

    Allerdings haben diese Befehle keine Auswirkung auf den STA-Treiber, da dieser immer auf die fest vorgegebenen Kanäle 1 - 11 beschränkt ist.

  5. Treten regelmäßige Verbindungsabbrüche unter b43- oder STA-Treiber auf, so kann mit folgendem Befehl Abhilfe geschaffen werden:

    sudo iwconfig <interface> power off 

    "<interface>" muss durch den entsprechenden Interface-Namen ersetzt werden, der durch Eingabe von

    iwconfig 

    in Erfahrung gebracht werden kann. Durch Eintragung des ersten Befehls (ohne "sudo") in die /etc/rc.local wird der Befehl bei jedem Neustart ausgeführt.

  6. Die proprietäre Firmware kann ohne Xorg / Jockey durch die Installation des Paketes b43-fwcutter installiert werden:

    sudo apt-get install b43-fwcutter 

    Während der Paketinstallation wird man gefragt, ob man die proprietäre Firmware automatisch aus dem Internet herunterladen möchte. Die Frage muss mit "Yes" beantwortet werden.

Probleme vor und nach der Installation

Welcher Chipsatz in einem Laptop eingebaut ist und ob er vom b43/b43legacy-Treiber unterstützt wird, lässt sich mit folgenden Befehl im Terminal [1] ermitteln:

lspci -vnn | grep 14e4 

Dieser Befehl führt zu einer Ausgabe ähnlich wie diese hier:

10:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express [14e4:1693] (rev 02)
30:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11a/b/g [14e4:4312] (rev 02) 

In diesem Fall interessieren wir uns nur für die zweite Zeile, da es sich dabei um den PCI-WLAN-Controller handelt (die erste Zeile ist der Ethernet-Controller). Weiterhin interessieren wir uns für die PCI-ID in den hinteren eckigen Klammern (hier 14e4:4312). Ob der Controller bzw. die Karte unterstützt wird, kann hier {en} nachgelesen werden. Ist dies der Fall so kann davon ausgegangen werden, dass die WLAN-Karte vom b43/b43legacy-Treiber unterstützt wird. Ist dies nicht der Fall, so bietet der Broadcom STA-Treiber, der die Chipsätze BCM4311, BCM4312, BCM4321 und BCM4322 unterstützt, eine Alternative.

Die Funktion kann mit der Eingabe von folgendem Befehl im Terminal [1] überprüft werden, der die Suche nach WLAN-Netzwerken veranlasst (Passwort notwendig):

sudo iwlist scan 

Ob eine Verbindung erfolgreich aufgebaut ist kann mit folgendem Befehl im Terminal [1] überprüft werden:

ifconfig 

oder

sudo iwconfig 

Um zu erkennen, welcher Treiber aktuell geladen ist, muss folgender Befehl im Terminal [1] ausgeführt werden:

lsmod 

Der STA-Treiber erscheint mit dem Modulnamen wl und der b43/b43legacy-Treiber entsprechend mit b43 oder b43legacy.

Kann mit keinem der Treiber die WLAN-Karte in Betrieb genommen oder ein WLAN-Netzwerk gefunden werden, so kann das viele verschiedene Gründe haben:

  1. Der Chipsatz ist zu neu (insbesondere IEEE 802.11n-Geräte)

  2. Ein Hardware/Software-Schalter stellt die WLAN-Karte ab (bei vielen Notebooks vorhanden, die WLAN-Betriebsanzeige ist aus)

  3. Ein Netzwerk-Kabel (Ethernet) ist eingesteckt (eine BIOS-Option stellt bei eingestecktem Netzwerk-Kabel die WLAN-Karte ab)

  4. Das Paket ndiswrapper-utils-1.9 ist installiert und das Kernelmodul ndiswrapper ist geladen (insbesondere nach einem Distributions-Upgrade)

  5. Die Kernelmodule ssb/b43/b44 sind geladen und gleichzeitig ist der STA-Treiber installiert (insbesondere bei Ubuntu Hardy Heron 8.04, da Jockey beide Module nicht automatisch entlädt)

Kann jede dieser Optionen ausgeschlossen werden, so kann nur ein erfahrener Benutzer weiterhelfen. Weitere Hilfe bekommt man im Forum.

Linux Wirelss {en} - Aktuelle Installationsanleitung für b43/b43legacy und die Firmwaredateien. Liste der unterstützten Chipsatz-Varianten.
https://help.ubuntu.com/community/WifiDocs/Driver/b43 {en} - b43 Ubuntu Community Documentation.
https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Feisty_No-Fluff {en} - Ndiswrapper unter Ubuntu Feisty Fawn 7.04 bis Hardy Heron 8.04
https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Dapper {en} - BCM43xx unter Ubuntu Dapper Drake 6.06
http://www.zementblog.de/2009/03/13/linux-wlan-mit-b43/ {de} - Linux-WLAN mit B43 (Tutorial in zwei Versionen; einfach/umfangreich)

Diese Revision wurde am 29. Dezember 2009 um 20:42 Uhr von jay-jay erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Netzwerk, Internet

Passwort vergessen?