SDB:Broadcom (BCM4306) WLAN Installation under SUSE

aus openSUSE, der freien Wissensdatenbank

Es wurde vorgeschlagen, diesen Artikel oder diese Sektion mit SDB:Broadcom (BCM4306) WLAN Installation zu verschmelzen. (Discuss)


Inhaltsverzeichnis

SDB:Broadcom (BCM4306) WLAN Installation unter SUSE

Version 9.3 - 10.3

Situation

Dieses Workaround können Sie benutzen wenn Sie über eine WLAN Karte mit einem BCM4306 Chip verfügen, welche aufgrund fehldender Treiber inaktiv ist.

Verfahren

Generell gibt es zwei Verfahren um die WLAN-Karten des Broadcom Chipsatzes BCM43xx zu aktivieren. Methode 1 beschreibt die Aktivierung mittels Ndiswrapper und Methode 2 beschreibt den Vorgang mittels Kernelunterstützung (erst ab openSUSE 10.2 möglich).

Fall 1 - Sie möchten die WLAN-Karte ausdrücklich mit Ndiswrapper aktivieren oder haben eine ältere Suse Linux Distribution (vor openSUSE 10.2). Sie möchten maximale Geschwindigkeit und maximale Stabilität ihrer WLAN-Karte ausnutzen. Ihnen ist auch klar, dass sie den Kernel mit z.B. CPU-Parameteränderungen NICHT neu kompilieren können. Dann bei "Ndiswrapper Prozedur" weitermachen.

Fall 2 - Sie möchten die WLAN-Karte nur mittes kernelunterstützter Treiber für den BCM43xx Chipsatz in Betrieb nehmen. Reduzierte Geschwindigkeiten bis zu 11 MBit/s reichen Ihnen und sie wissen auch, dass die Stabilität dieser Lösung bei nicht allen Broadcom Chips hervorragend ist. Dann bei "Originaler Treiber Prozedur" weitermachen.

In beiden Fällen ist es trotzdem erforderlich die Firmware von Extern zu besorgen. Die Firmware ist nirgendwo auf Servern des openSUSE Projektes gespeichert!

Bemerkung: Zumindest für openSUSE 10.3 scheint sich die Situation verbessert zu haben. Eine Siemens PCMCIA 54 Mbit Karte mit Broadcom Chipsatz BCM43xx läuft mit voller Leistung out-of-the-box. Einfach während der Installation Karte einstecken. Die Karte wird erkannt und das Treibermodul wird geladen. Die Karte kann sogar konfiguriert werden, bleibt aber inaktiv. Danach im YaST das Repository für WLAN-Karten aktivieren und die Firmware nachziehen (nach Broadcom suchen). Danach läuft die Karte ohne Neustart und kann sofort über den KNetworkmanager angesprochen werden.

Ndiswrapper Prozedur

Achtung: Bevor die Ndiswrapper Prozedur durchgeführt wird müssen zuerst - falls vorhanden - die originalen BCM43xx Treiber entsprechend dem Kapitel "BCM43xx Treiber entfernen" deinstalliert werden.

1. Überprüfen Sie ob ndiswrapper installiert ist: Yast > Software > Software Installation und suchen Sie nach ndiswrapper. 2. Starten Sie die Shell Konsole (Kmenu > System > Terminal Programm > Terminal) und loggen Sie sich als root ein:

sux -

Tippen Sie Ihr root passwort ein. Danach erstellen Sie ein Verzeichnis:

mkdir /lib/windrivers

Es werden die Windows Treiber für den BCM4306 Chipsatz benötigt. Diese erhalten Sie unter http://www.silfreed.net/download/hpzt3000cto/SP23107A.tar.gz . Speichern Sie diesen unter /lib/windrivers:

mv VERZEICHNIS_ZUM_TREIBER/lib/windrivers

In der Konsole wechseln Sie in das Verzeichnis welches die Treiber enthält:

cd /lib/windrivers

Anschließend entpacken Sie diese mit folgendem Befehl:

tar -zxvf Name_des_Treibers.tar.gz

z.B.: tar -zxvf SP23107A.tar.gz then

cd Name_des_Treibers

Überprüfen Sie ob bereits ein weiteres ndiswrapper Modul läuft:

ndiswrapper -l

Falls bereits ein Modul läuft entfernen Sie dieses mit:

ndiswrapper -e NAME_DES_MODULES

Nach der Installation starten Sie den Treiber:

ndiswrapper -i bcmwl5.inf

und laden das Modul mit:

modprobe ndiswrapper

Nun können Sie Ihre WLAN Karte mit YAST > Netzwerkgeräte > Netzwerkkarte konfigurieren. Erstellen Sie dazu eine neue Wireless Karte und benutzen Sie das Modul ndiswrapper. Die Einstellungen sind von Ihrem Netzwerk abhängig. (Statische IP oder DHCP, Verschlüsselung, usw.)

Außerdem können Sie mit dem Kwifimanager die Aktivität der Karte überprüfen. Die Installation von Kwifimanager erfolgt über Yast. Starten Sie den Kwifimanger über die Shortcut (Alt + F2) und tippen Sie kwifimanger ein.

Alternative führen Sie in der Konsole als "root" den Befehl

iwconfig

und

ifconfig 

aus um zu sehen ob die Karte erkannt wurde.

Originale Treiber Prozedur

1. Stellen sie sicher, dass das bcm43xx-fwcutter Paket installiert ist: Yast > Software > Software installieren oder löschen und suchen sie nach bcm43xx-fwcutter.

2. Besorgen sie sich die Firmware ihres WLAN-Chips. Ein Hinweis wo diese zu finden ist befindet sich hier. Die Firmware ist ebenso auf der mitgelieferten Treiber-CD für Windows enthalten. Kopieren sie die Firmware auf den Desktop ihrer openSUSE Distribution.

3. Starten Sie die Shell Konsole (Kmenu > System > Terminal Programm > Terminal) und loggen Sie sich als root ein:

sux -

Tippen Sie Ihr root passwort ein.

Extrahieren sie nun den relevanten Teil der Firmware und speichern sie das Ergebnis in das /lib/firmware Directory, indem sie folgendes Kommando eingeben (Achtung: wl_apsta.o ist nur ein Beispiel!)

bcm43xx-fwcutter -w /lib/firmware ~/Desktop/wl_apsta.o

4. Ein alternativer Weg die Firmware zu installieren ist der, das Installitionsskript innerhalb des bcm43xx-fwcutter Pakets zu benutzen. Dazu benötigt man eine laufende Internetverbindung, weil hierbei versucht wird die Datei wl_apsta.o herunter zu laden und im Verzeichnis /lib/firmware zu speichern versucht. Das Kommando dazu lautet:

install_bcm43xx_firmware

5. Die Treiber können nun mit der Firmware arbeiten. Laden sie das Modul nun dauerhaft mit dem Kommando:

modprobe bcm43xx

6. Nach einem Reboot kann über Yast > Netzwerkgeräte > Netzwerkkarte die WLAN-Karte konfiguriert werden.

BCM43xx Treiber entfernen

Führen sie diese Prozedur nur aus, wenn sie tatsächlich die originalen BCM43xx treiber entfernen wollen und vorhaben die WLAN-Karte mittels Ndiswrapper anzusteuern.

1. Starten Sie die Shell Konsole (Kmenu > System > Terminal Programm > Terminal) und loggen Sie sich als root ein:

sux -

Tippen Sie Ihr root passwort ein. Danach erstellen Sie ein Verzeichnis:

2. Überprüfen sie ob die BCM43xx Treiber tatsächlich installiert sind:

lsmod | grep bcm43xx

Sollte hier etwas angezeigt werden bedeutet dies, dass der Treiber installiert ist und mit folgendem Kommando gelöscht werden kann.

rmmod bcm43xx

Verhindern sie einen ungewollten Neuladen von bcm43xx indem sie die Zeile "blacklist bcm43xx" an das untere Ende der Dateil /etc/modprobe.d/blacklist setzen. Mit dem Editor Kwrite geschieht dies mit folgendem Kommando:

su -c 'kwrite /etc/modprobe.d/blacklist'

Editieren sie ebenso die folgende Datei und ändern sie den Modulnamen. Ändern sie 'bcm43xx' zu 'ndiswrapper' mit dieser Befehlszeile:

su -c 'kwrite /etc/sysconfig/hardware/hwcfg-bus-pci-xxx         (nicht mehr möglich ab openSUSE 10.3)

2. Folgen sie nun den Anweisungen im Kapitel "Ndiswrapper Prozedur" um die WLAN-Karte auf Ndiswrapper umzukonfigurieren.