# [Solved] WLAN Karte BCM4322 mit broadcom-sta

## phikajo

Hallo zusammen,

ich habe jetzt alle Foren Beiträge zu dem Thema durch und bekomme die Karte nicht zum Laufen. Evtl. hat jemand noch eine Idee...

Hardware ist ein Macbook Pro aus 2011

lspci:

```
 

Network controller [0280]: Broadcom Inc. and subsidiaries BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)

        Subsystem: Apple Inc. AirPort Extreme [106b:008d]

        Kernel driver in use: wl

        Kernel modules: wl

```

net-wireless/wpa_supplicant-2.10-r1 incl. USE Flags: net-wireless/wpa_supplicant qt5 broadcom-sta -fils -mesh -mbo

net-wireless/broadcom-sta-6.30.223.271-r6

Bei der Kernel Konfig habe ich mich an diese Anleitung gehalten:

[url]https://wiki.gentoo.org/wiki/Macbook_Pro_(early_2011)[/url]

wpa_supplicant.conf:

```

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=wheel

update_config=1

network={

ssid="ssid"

psk="password"

proto=RSN

key_mgmt=WPA-PSK

pairwise=CCMP

group=CCMP

auth_alg=OPEN

}

```

wpa_supplicant -iwlp2s0 -c/etc/wpa_supplicant/wpa_supplicant.conf

```

Successfully initialized wpa_supplicant

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

^Cwlp2s0: CTRL-EVENT-DSCP-POLICY clear_all

wlp2s0: CTRL-EVENT-DSCP-POLICY clear_all

nl80211: deinit ifname=wlp2s0 disabled_11b_rates=0

wlp2s0: CTRL-EVENT-TERMINATING

```

ifconfig

```

wlp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        inet 169.254.138.155  netmask 255.255.0.0  broadcast 169.254.255.255

        inet6 fe80::f2b4:79ff:fe16:b59c  prefixlen 64  scopeid 0x20<link>

        ether f0:b4:79:16:b5:9c  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        device interrupt 17

```

Last edited by phikajo on Wed Jun 29, 2022 9:40 am; edited 1 time in total

----------

## mike155

Bei WLAN Problemen sieht man nicht sofort, was den Fehler verursacht.

Fang am besten ganz unten auf der Hardware-Ebene an - und hangle Dich nach oben durch. Das Netzwerk-Interface wlp2s0 wird ja immer hin angezeigt. Also funktioniert es auch schon teilweise!

Überprüfe dmesg auf Fehler und fehlende Firmware

```
dmesg | grep -i error

dmesg | grep -i firmware
```

Falls fehlende Firmware oder sonstige Fehler angezeigt werden: löse das Problem

Scanne die WLAN-Umgebung. Hier sollte Dein WLAN Access-Point angezeigt werden. Häufig werden auch weitere Access-Points in der Umgebung angezeigt.

```
ifconfig wlp2s0 up

iw wlp2s0 scan

iwlist wlp2s0 scan     # auf manchen (älteren?) Rechnern muss dieser Befehl verwendet werden

```

Wird Dein WLAN Access-Point angezeigt? Wenn ja, wissen wir, dass Hardware und Hardware-Treiber funktionieren. Dann können wir uns als nächstes um den Netzwerk-Stack kümmern.

Last edited by mike155 on Tue Mar 22, 2022 11:46 am; edited 1 time in total

----------

## phikajo

```

gentoo / # dmesg | grep -i error

[    2.233296] efi-framebuffer: probe of efi-framebuffer.0 failed with error -22

[    2.738870] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2

gentoo / # dmesg | grep -i firmware

[    0.314306] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-04] only partially covers this bridge

[    0.521355] ACPI: video: [Firmware Bug]: ACPI(IGPU) defines _DOD but not _DOS

[    2.737123] Loading firmware: regulatory.db

[    2.738870] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2

```

Schaut hier zumindest nicht nach WLAN Problemen aus... (Müsste ich mich um diese Fehler kümmern?)

```

iw wlp2s0 scan

```

wird ohne Ergebnisse ausgeführt.

----------

## mike155

 *Quote:*   

> 
> 
> ```
> [    2.737123] Loading firmware: regulatory.db
> 
> ...

 

Die regulatory.db enthält die lokalen Einstellungen für das WLAN. Ich weiß nicht, ob sie unbedingt geladen sein muss. Aber wenn das WLAN nicht funktioniert und ein Fehler beim Laden der regulatory.db angezeigt wird, würde ich dieses Problem lösen.

Wenn ich die Ausgabe richtig interpretiere, hast Du die WLAN Kernel-Module fest in den Kernel eincompiliert? In diesem Fall kannst Du folgendes an CONFIG_EXTRA_FIRMWARE hinzufügen:

```
CONFIG_EXTRA_FIRMWARE="regulatory.db regulatory.db.p7s"
```

Außerdem muss das Paket net-wireless/wireless-regdb installiert sein.

Kernel neu bauen und installieren, reboot. Die Fehlermeldung sollte dann nicht mehr in dmesg auftauchen.

 *Quote:*   

> 
> 
> ```
> iw wlp2s0 scan
> ```
> ...

 

Hast Du auch den anderen Befehl (iwlist) ausprobiert? Bei manchen Maschinen funktioniert nur der. 

Bevor bei einem der beiden Befehle Access-Points angezeigt werden, macht es m.E. keinen Sinn, sich um die höheren Schichten incl. wpa-supplicant zu kümmern.

Gibt es einen funktionierenden WLAN Access-Point in Deiner Umgebung? Bist Du beispielsweise mit Deinem Smartphone bei einem solchen Access-Point angemeldet? Oder kannst Du mit anderen Rechnern WLAN nutzen?

----------

## phikajo

Vielen Dank für die Hilfe!

Ich habe jetzt wie beschrieben folgendes an CONFIG_EXTRA_FIRMWARE hinzugefügt:

```
 

CONFIG_EXTRA_FIRMWARE="regulatory.db regulatory.db.p7s"

```

Der Fehler im dmesg ist weg und der Befehl

```

iw wlp2s0 scan

```

liefert Ergebnisse und findet auch meinen Access Point (MAC Adresse). Sieht gut aus!

ein

```
wpa_supplicant -iwlp2s0 -c/etc/wpa_supplicant/wpa_supplicant.conf 
```

wirft immer noch den gleichen Fehler 

```
Successfully initialized wpa_supplicant

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1

^Cwlp2s0: CTRL-EVENT-DSCP-POLICY clear_all

wlp2s0: CTRL-EVENT-DSCP-POLICY clear_all

nl80211: deinit ifname=wlp2s0 disabled_11b_rates=0
```

----------

## mike155

 *Quote:*   

> liefert Ergebnisse und findet auch meinen Access Point (MAC Adresse). Sieht gut aus! 

 

Prima! Dann scheinen Hardware und Hardware-Treiber zu funktionieren!   :Smile: 

Hier die Befehle, mit denen ich mein Notebook mit meiner FritzBox per WLAN verbinde (falls ich mal WLAN verwende - ich bevorzuge Ethernet-Kabel):

```
ifconfig wlp2s0 up

iw dev wlp2s0 connect "<SSID>"

wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlp2s0

sleep 1

dhclient -v wlp2s0

```

/etc/wpa_supplicant/wpa_supplicant.conf

```
network={

        ssid="<SSID>"

        scan_ssid=1

        key_mgmt=WPA-PSK

        psk="<password>"

}
```

/etc/dhcp/dhclient.conf

```
send dhcp-lease-time 3600;

timeout 60;

retry 60;

reboot 10;

select-timeout 5;

initial-interval 2;

request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name;

require subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name;
```

<SSID> und <password> musst Du natürlich durch Deine Werte ersetzen. 

Die Optionen "request" und "require" kann man definieren - muss man aber nicht. Für den Anfang ist es vermutlich besser, wenn Du die Zeilen weglässt. 

Mit den beiden Optionen kann man angeben, welche Werte vom DHCP Server geholt werden sollen - und welche zurückgeliefert werden müssen. Ich mag es beispielsweise nicht, wenn hostname und domainame vom DHCP-Server gesetzt werden - also lasse ich diese Optionen weg. time-offset lasse ich ebenfalls weg.

----------

## phikajo

Die Meldung

```
wlp2s0: CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
```

bleibt bestehen. Sowohl per Console als im WPA-GUI. Es ist zum Verzweifeln. Offensichtlich funktioniert die Karte mit den Treibern grundsätzlich. Es muss am WPA_SUPPLICANT liegen.

Irgendwelche Tipps? Kann ich noch weitere Configs posten?

Vielen Dank

----------

## mike155

Du könntest bei Google suchen nach

```
wpa_supplicant CTRL-EVENT-SCAN-FAILED ret=-22 retry=1
```

Hier ist beispielsweise ein Thread, in dem ein paar User den gleichen Fehler hatten: https://bbs.archlinux.org/viewtopic.php?id=235916.

Problem scheint zu sein, dass die WLAN-Karte erst noch eingeschaltet werden muss.

Bei einem User hat es geholfen, die WLAN-Karte per Fn-Tastenkombination einzuschalten. 

Ein anderer User musste

```
ip link set wlp2s0 up 
```

ausführen.

Ein weiterer User musste erst noch irgendwo "ap_scan=1" konfigurieren.

Es gibt da einige Lösungsvorschläge, die offenbar auch immer ein paar Usern geholfen haben.

Vielleicht hilft einer der Lösungsvorschläge auch bei Dir?

----------

## phikajo

Danke für die Vorschläge aber ich denke ich habe jeden Google Treffer zu dem Thema durchgearbeitet. Ich denke es liegt am Broadcom-STA Treiber.

Um sicher zu sein, versuche ich meinen WLAN USB Stick zu testen, allerdings scheinen meine USB Ports nicht zu funktionieren. Die Diode an dem Stick bleibt dunkel und lspci erkennt nichts. Ich kümmere mich erstmal darum.

----------

## phikajo

Mich lässt das Thema einfach nicht los. Ich möchte gerne die Wlan Karte auf meinem Macbook mit Gentoo zum Laufen bekommen. Den Versuch mit den broadcom-sta Treiber habe ich aufgegeben. Der Treiber ist wohl nicht ohne Grund ~amd64 masked.

Die Karte wird grundsätzlich auch von dem b43 Treiber unterstützt.

Also habe ich den broadcom-sta deinstalliert und den b43 Treiber installiert. Merkwürdig ist nur folgendes:

```
 Network controller: Broadcom Inc. and subsidiaries BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)

        Subsystem: Apple Inc. AirPort Extreme

        Kernel driver in use: b43-pci-bridge

        Kernel modules: wl

```

Unter Kernel Modules steht immer noch wl. Ich habe den wl.ko aus dem System gelöscht. Wäre an sich nicht das Problem, nur wpa_supplicant meldet:

```

Successfully initialized wpa_supplicant

wlan0: SME: Trying to authenticate with 98:de:XX:XX:XX:XX (SSID='SSID' freq=2432 MHz)

wlan0: Trying to associate with 98:de:XX:XX:XX:XX (SSID='SSID' freq=2432 MHz)

wlan0: CTRL-EVENT-ASSOC-REJECT bssid=98:de:XX:XX:XX:XX status_code=27

wlan0: SME: Deauth request to the driver failed

```

```
iw wlan0 scan | grep SSID
```

findet meine SSID

----------

## phikajo

Lösung: Mein Accesspoint war auf 802.11 N fest eingestellt. Der Treiber (zumindest für meinen Chip) unterstützt das nicht. 

Ich habe den Accesspoint jetzt auf Mixed Mode (bgn) eingestellt und es läuft!

----------

