Bei dem Versuch, WLAN-Aussetzer zu diagnostizieren, habe ich festgestellt, dass die Regulierungsdomäne auf meiner WLAN-Schnittstelle auf "world" (00) festgelegt ist. Wenn Sie sie in meine Region (US) ändern, kann das Problem möglicherweise behoben werden. Jeder Versuch, den ich unternommen habe, wurde jedoch ignoriert.
Laufen iw reg set US
hat keine offensichtlichen Auswirkungen:
$ iw reg get
country 00: DFS-UNSET
(2402 - 2472 @ 40), (6, 20), (N/A)
(2457 - 2482 @ 40), (6, 20), (N/A), PASSIVE-SCAN
(2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
(5170 - 5250 @ 160), (6, 20), (N/A), PASSIVE-SCAN
(5250 - 5330 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
(5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
(5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN
(57240 - 63720 @ 2160), (N/A, 0), (N/A)
$ sudo iw reg set US
$ iw reg get
country 00: DFS-UNSET
(2402 - 2472 @ 40), (6, 20), (N/A)
(2457 - 2482 @ 40), (6, 20), (N/A), PASSIVE-SCAN
(2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
(5170 - 5250 @ 160), (6, 20), (N/A), PASSIVE-SCAN
(5250 - 5330 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
(5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
(5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN
(57240 - 63720 @ 2160), (N/A, 0), (N/A)
Nach ausgiebigem Googeln zu diesem Thema scheint es, iw reg set
dass der Kernel ein udev -Ereignis auslöst, das dazu führt, dass der Kernel crda
ausgeführt wird und die relevanten behördlichen Informationen ausspuckt. Soweit ich das beurteilen kann, udevadm
wird dieses Ereignis jedoch nie gesendet. Die Abwesenheit dieses Ereignisses wird durch folgende nicht funktionierende Kluge bestätigt:
$ sudo iw reg set US; sudo COUNTRY=US crda
Failed to set regulatory domain: -7
Die Fehlermeldung stammt von crda
. Der Kernel akzeptiert Änderungen der WLAN-Richtlinien nur, wenn er ein udev-Ereignis / eine udev-Anforderung für sie gesendet hat und eine Antwort erwartet. Da dies crda
fehlschlägt, hat der Kernel dies offensichtlich nicht erwartet, was darauf hindeutet, dass kein udev -Ereignis ausgegeben wurde.
Die WiFi-Schnittstelle ist ein Intel 7265D; wessen Kerneltreiber ist iwlmvm
. Ich habe crda
und wireless-regdb
installiert und /etc/default/crda
enthält REGDOMAIN=US
. Das Entfernen und Neuladen des iwlmvm
Treibers hat keine Auswirkung.
Irgendwelche Vorschläge, was Sie noch überprüfen sollten?
dmesg
Ausgabe oder in den Protokollen finden, das darauf hindeutet, dass versucht wurde, die Regulierungsdomäne zu ändern. Die einzige entsprechende Meldung wird beim erstmaligen Laden des Treibers angezeigt und lautet: "DFS-Antworten:
Ich habe gestern versucht, dieses Problem erneut zu untersuchen, und habe immer noch das Problem, auch mit Kernel 4.6.3. Die manuelle Installation des neuesten Firmware-Images hat ebenfalls nicht geholfen. Auf
iw reg set US
einem zweiten Laptop mit demselben Kernel zu arbeiten, funktionierte jedoch einwandfrei.Die Problemmaschine ist ein Thinkpad X1 Carbon (Gen.3) mit einer Intel 7265D WiFi-Karte. Die Arbeitsmaschine ist ein Thinkpad T440p mit Intel 7260. Ich komme daher zu dem Schluss, dass der 7265D-Treiber oder die Firmware einen Fehler aufweisen.
Umgehung
Ich habe auch eine Problemumgehung für die 7265D entdeckt. Beachten Sie, dass dies eine Problemumgehung ist und zu Konflikten führen kann, wenn ein tatsächlicher Fix veröffentlicht wird:
sudo modprobe -r iwlmvm
cfg80211
Kernelmodul mithilfe eines Kernelparameters, um die Regulierungsdomäne zu erzwingen (in diesem Fall "US"):sudo modprobe cfg80211 ieee80211_regdom=US
sudo modprobe iwlmvm
Sie sollten nun die WiFi-Schnittstelle sehen, die für die US-amerikanische (oder was auch immer) Regulierungsdomäne konfiguriert ist:
Update 2016.11.17: In Kernel 4.8 Series behoben
Ich habe dieses Problem heute zum ersten Mal überprüft, nachdem ich vor ein paar Wochen ein Update auf einen 4.8.x-Kernel durchgeführt habe, und festgestellt, dass die WLAN-Schnittstelle die Regulierungsdomäne nun offenbar ordnungsgemäß akzeptiert. Dies geschah in oder vor Kernel-Version 4.8.5.
quelle
Nach einigen Code-Recherchen habe ich herausgefunden, wo das Problem liegt:
Das Intel WiFi-Gerät wird als "selbstgesteuertes" Gerät angezeigt, daher wird der iw-Reg-Satz nicht auf das Gerät angewendet.
Alles was Sie tun müssen, ist den
iwlwifi
Parameter einzustellenlar_disable=1
:modprobe -r iwlwifi & modprobe iwlwifi lar_disable=1
echo "options iwlwifi lar_disable=1" >/etc/modprobe.d/iwlwifi.conf
quelle
/etc/modprobe.d/iwlwifi.conf
existiert möglicherweise, deshalb ist es besser, sie anzuhängen. Verwenden Sie entweder>>
anstelle von>
oderecho "options iwlwifi lar_disable=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
(erhält nach Bedarf Root-Berechtigungen).quelle