Raspberry Pi WLAN Verbindungsprobleme mit neueren Router lösen
Gestern wollte ich meinen neuen RaspberryPi 4b ins WLAN einhängen und bin da auf unerwartete Probleme gestoßen.
Test WPA
Zum testen muss man WLAN erst mal disconnecten und dem wpa daemon killen und kann dann mit wpa_supplicant die Verbindung überprüfen. Bitte dran denken das man dafür via Lan connected sein muss :)
sudo ifdown wlan0
sudo killall wpa_supplicant
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
CTRL-EVENT-ASSOC-REJECT mit bssid=00:00
Wenn die bssid nur Nullen beinhalten bei einem REJECT kann man davon ausgehen das der Router gar nicht erreicht werden kann. Z.b. ist die WLAN Antenne Geerdet ist, durch ein Fehlerhaftes Gehäuse z.B. oder der Router ist zu weit weg.
CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
set key_mgmt
Bei meinem Router wird das veraltete WPA-PSK nicht mehr unterstützt und man sieht dann im Router log nur AP-STA-POSSIBLE-PSK-MISMATCH und beim einen Test WPA mit wpa_supplicant CTRL-EVENT-ASSOC-REJECT status_code=16. Die Lösung kann WPA-PSK-SHA256 mit ieee80211w=2 sein. Dafür muss man seine wpa_supplicant.conf um folgendes ergänzen.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
und füge den aktuellen WPA key_mgmt algo hinzu
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
eapol_version=1
ap_scan=1
fast_reauth=1
pmf=1
network={
ssid="router_SSID"
psk=....
key_mgmt=WPA-PSK-SHA256
ieee80211w=2
}
Die Lösung hatte ich hier gefunden. github issue
Generate WPA Password
sudo wpa_passphrase "router_SSID" "wlanpassword" >> /etc/wpa_supplicant/wpa_supplicant.conf
WLAN Autoconnect
Damit sich mein WLAN selber Verbindet beim Booten und das Powermanagment aus ist um Verbindungsprobleme zu vermeiden habe ich diese config angelegt.
sudo nano /etc/network/interfaces.d/wlan.conf
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
post-up iw wlan0 set power_save off
brcmfmac modprobe options
Es gibt wohl verschiedenste Probleme und ein paar Lösungen sind die Optionen. Alle zu verwenden macht kein sin aber zum testen hier die Vorgehensweise.
Kernelmodule auswerfen.
sudo rmmod cfg80211
sudo rmmod brcmfmac
brcmfmac Config Optionen.
sudo nano /etc/modprobe.d/brcmfmac.conf
options brcmfmac roamoff=1
options brcmfmac p2pon=0
cfg80211 Config Optionen.
sudo nano /etc/modprobe.d/cfg80211.conf
options cfg80211 cfg80211_disable_40mhz_24ghz=1
Kernelmodule mit der neuen Config laden.
sudo modprobe brcmfmac
Und jetzt wieder testen wie in Test WPA Probieren ob es geht.
Nützliche Commands
List Verfügbare Wlan Channels
sudo iwlist chan
Show Country Infos
iw reg get
List Router
sudo iwlist scan|egrep 'ESSID|Channel:'
#oder full
sudo iwlist scan
Wlan infos
iwconfig
Viel Spaß beim Nachbauen