In the process of trying to diagnose WiFi dropouts, I discovered that the regulatory domain on my WiFi interface is set to "world" (00), and changing it to my region (US) should help fix the issue. However, every attempt I've made to do so has been ignored.
Running iw reg set US
has no evident effect:
$ 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)
After extensive Googling on the subject, it seems that what's supposed to happen is iw reg set
causes the kernel to emit a udev event, which causes crda
to get executed and cough up the relevant regulatory info. However, near as I can tell with udevadm
, this event is never emitted. This event's absence is corroborated by the following kluge not working:
$ sudo iw reg set US; sudo COUNTRY=US crda
Failed to set regulatory domain: -7
The error message is from crda
. The kernel will accept WiFi regulatory changes only if it has emitted a udev event/request for them and is expecting a response. Since crda
fails, the kernel clearly wasn't expecting it, suggesting no udev event was emitted.
The WiFi interface is an Intel 7265D; whose kernel driver is iwlmvm
. I have crda
and wireless-regdb
installed, and /etc/default/crda
contains REGDOMAIN=US
. Removing and reloading the iwlmvm
driver has no effect.
Any suggestions of what more to check?
dmesg
output or any of the logs to suggest that any attempt was made to change the regulatory domain. The only message to that effect appears when the driver is first loaded, reporting: "DFS master region: unset" – ewhac Jan 07 '16 at 19:29