Nel tentativo di diagnosticare gli abbandoni WiFi, ho scoperto che il dominio normativo sulla mia interfaccia WiFi è impostato su "world" (00) e che cambiarlo nella mia regione (US) dovrebbe aiutare a risolvere il problema. Tuttavia, ogni tentativo che ho fatto per farlo è stato ignorato.
La corsa iw reg set USnon ha effetti evidenti:
$ 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)
Dopo un'approfondita ricerca su Google sull'argomento, sembra che ciò che dovrebbe accadere è che iw reg setil kernel emetta un evento udev, il che provoca crdal'esecuzione e la tosse delle informazioni normative pertinenti. Tuttavia, quasi come posso dire udevadm, questo evento non viene mai emesso. L'assenza di questo evento è confermata dal seguente Kluge che non funziona:
$ sudo iw reg set US; sudo COUNTRY=US crda
Failed to set regulatory domain: -7
Il messaggio di errore proviene da crda. Il kernel accetterà le modifiche normative WiFi solo se ha emesso un evento / richiesta udev per loro e si aspetta una risposta. Dato che crdafallisce, il kernel chiaramente non se lo aspettava, suggerendo che non è stato emesso alcun evento udev.
L'interfaccia WiFi è un Intel 7265D; il cui driver del kernel è iwlmvm. Ho crdae wireless-regdbinstallato, e /etc/default/crdacontiene REGDOMAIN=US. La rimozione e il ricaricamento del iwlmvmdriver non ha alcun effetto.
Qualche suggerimento su cosa controllare di più?
dmesgnell'output o nei registri per suggerire che è stato fatto qualsiasi tentativo di cambiare il dominio normativo. L'unico messaggio in tal senso appare quando il driver viene caricato per la prima volta, riportando: "Regione master DFS: unset"