Dalam proses mencoba mendiagnosis dropout WiFi, saya menemukan bahwa domain pengaturan pada antarmuka WiFi saya diatur ke "dunia" (00), dan mengubahnya ke wilayah saya (AS) akan membantu memperbaiki masalah tersebut. Namun, setiap upaya yang saya lakukan untuk melakukannya telah diabaikan.
Berlari iw reg set US
tidak memiliki efek yang jelas:
$ 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)
Setelah Googling ekstensif pada subjek, tampaknya apa yang seharusnya terjadi adalah iw reg set
menyebabkan kernel memancarkan peristiwa udev, yang menyebabkan crda
dieksekusi dan batuk info peraturan yang relevan. Namun, sedekat yang saya tahu udevadm
, acara ini tidak pernah dipancarkan. Ketidakhadiran acara ini dikuatkan oleh kluge berikut yang tidak berfungsi:
$ sudo iw reg set US; sudo COUNTRY=US crda
Failed to set regulatory domain: -7
Pesan kesalahan berasal dari crda
. Kernel akan menerima perubahan pengaturan WiFi hanya jika telah memancarkan acara / permintaan udev untuk mereka dan mengharapkan tanggapan. Karena crda
gagal, kernel jelas tidak mengharapkannya, menunjukkan tidak ada acara udev yang dipancarkan.
Antarmuka WiFi adalah Intel 7265D; driver kernel yang mana iwlmvm
. Saya telah crda
dan wireless-regdb
menginstal, dan /etc/default/crda
berisi REGDOMAIN=US
. Menghapus dan memuat ulang iwlmvm
driver tidak berpengaruh.
Ada saran apa lagi yang perlu diperiksa?
dmesg
output atau log apa pun untuk menyarankan bahwa segala upaya dilakukan untuk mengubah domain pengaturan. Satu-satunya pesan untuk efek yang muncul ketika driver pertama kali dimuat, melaporkan: "Wilayah master DFS: tidak disetel"Jawaban:
Saya mencoba meninjau kembali masalah ini kemarin, dan masih memiliki masalah bahkan dengan kernel 4.6.3. Menginstal gambar firmware terbaru secara manual juga tidak membantu. Namun, mencoba
iw reg set US
laptop kedua yang menjalankan kernel yang sama bekerja dengan baik.Mesin yang bermasalah adalah Thinkpad X1 Carbon (Gen.3), yang memiliki kartu WiFi Intel 7265D; mesin yang berfungsi adalah Thinkpad T440p, yang memiliki Intel 7260. Oleh karena itu saya menyimpulkan bahwa ada bug pada driver atau firmware 7265D.
Penanganan masalah
Saya juga menemukan solusi untuk 7265D. Ketahuilah bahwa ini adalah solusi, dan dapat menyebabkan konflik jika / ketika perbaikan aktual dilepaskan:
sudo modprobe -r iwlmvm
cfg80211
modul kernel, menggunakan parameter kernel untuk memaksa domain pengaturan (dalam hal ini, 'AS'):sudo modprobe cfg80211 ieee80211_regdom=US
sudo modprobe iwlmvm
Anda sekarang akan melihat antarmuka WiFi yang dikonfigurasi untuk domain regulasi AS (atau apa pun):
Pembaruan 2016.11.17: Diperbaiki pada Seri Kernel 4.8
Saya memeriksa masalah ini lagi hari ini untuk pertama kalinya setelah memperbarui beberapa minggu yang lalu ke kernel 4.8.x, dan menemukan bahwa antarmuka WiFi sekarang tampaknya menerima domain pengaturan dengan benar. Ini terjadi pada atau sebelum kernel rev 4.8.5.
sumber
Setelah beberapa penelitian kode saya menemukan apa masalahnya:
Perangkat Intel WiFi muncul sebagai perangkat "self-manged", jadi set iw tidak akan diterapkan untuk itu.
Yang perlu Anda lakukan adalah mengatur
iwlwifi
parameterlar_disable=1
:modprobe -r iwlwifi & modprobe iwlwifi lar_disable=1
echo "options iwlwifi lar_disable=1" >/etc/modprobe.d/iwlwifi.conf
sumber
/etc/modprobe.d/iwlwifi.conf
mungkin ada sehingga lebih baik untuk ditambahkan. Baik digunakan>>
sebagai gantinya>
atauecho "options iwlwifi lar_disable=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
(dapatkan hak istimewa root sesuai kebutuhan).sumber