Kablosuz: `iw reg set US` Etkisi Yok


13

WiFi kesintilerini teşhis etmeye çalışırken, WiFi arayüzümdeki düzenleyici alanın "dünya" (00) olarak ayarlandığını ve bölgem (ABD) olarak değiştirmenin sorunu düzeltmeye yardımcı olacağını keşfettim. Ancak, bunu yapmak için yaptığım her girişim göz ardı edildi.

Koşmanın iw reg set USbelirgin bir etkisi yoktur:

$ 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)

Konuyla ilgili kapsamlı Google çalışanlarından sonra, olması gereken şey, iw reg setçekirdeğin bir udev olayı yaymasına neden crdaolduğu ve bu da ilgili düzenleme bilgilerini öksürmesine neden olduğu görülüyor . Ancak, anlatabileceğim kadarıyla udevadm, bu olay asla yayılmaz. Bu etkinliğin yokluğu, aşağıdaki kluge çalışmadığında desteklenir:

$ sudo iw reg set US; sudo COUNTRY=US crda
Failed to set regulatory domain: -7

Hata mesajı arasındadır crda. Çekirdek, yalnızca bir udev olayı / isteği yayınladıysa ve bir yanıt bekliyorsa, WiFi düzenleme değişikliklerini kabul edecektir. Yana crdabaşarısız çekirdek açıkça hiçbir Udev olay yayılan edildi düşündüren, bunu beklemiyordum.

WiFi arayüzü bir Intel 7265D'dir; kimin çekirdek sürücüsü iwlmvm. Ben kurdum crdave wireless-regdbkurdum ve /etc/default/crdaiçerir REGDOMAIN=US. Sürücüyü kaldırmanın ve yeniden yüklemenin bir iwlmvmetkisi yoktur.

Daha ne kontrol etmek için herhangi bir öneriniz var mı?


1
Herhangi bir değişiklik yapılıp yapılmadığını görmek için çekirdek günlüğünü kontrol ettiniz mi? Stdout'tayken aynı çıktıyı alıyorum, ancak günlüklerim düzenleyici etki alanının gerçekten güncellendiğini söylüyor.
16:58

dmesgDüzenleyici etki alanını değiştirmek için herhangi bir girişimde bulunulduğunu göstermek için çıktıda veya günlüklerde hiçbir şey bulamıyorum . Bu etkiye ilişkin tek ileti, sürücü ilk yüklendiğinde görüntülenir ve "DFS ana bölgesi: ayarlanmadı"
ewhac

1
Çözümünüz kulağa hoş geliyor. Lütfen sorudaki bir düzenleme yerine bir cevaba taşıyın. Daha sonra kendi cevabınızı da kabul edersiniz.
roaima

Yanıtlar:


11

Dün bu sorunu tekrar gözden geçirmeye çalıştım ve yine de 4.6.3 çekirdeğinde bile sorun yaşıyorum. En son ürün yazılımı görüntüsünü manuel olarak yüklemek de yardımcı olmadı. Ancak, iw reg set USaynı çekirdeği çalıştıran ikinci bir dizüstü bilgisayarda denemek iyi çalıştı.

Sorunlu makine, Intel 7265D WiFi kartına sahip bir Thinkpad X1 Carbon (Gen.3); çalışan makine Intel 7260 olan bir Thinkpad T440p'dir. Bu nedenle 7265D sürücü veya bellenimde bir hata olduğu sonucuna varıyorum.

Geçici çözüm

Ayrıca 7265D için bir çözüm buldum. Bunun bir geçici çözüm olduğunu ve gerçek bir düzeltme yayınlandığında / yayınlandığında çakışmalara neden olabileceğini unutmayın:

  • Tüm WiFi çekirdek sürücülerini ve bağımlı modülleri kaldırın:
    sudo modprobe -r iwlmvm
  • cfg80211Düzenleyici etki alanını zorlamak için bir çekirdek parametresi kullanarak çekirdek modülünü yükleyin (bu durumda, 'ABD'):
    sudo modprobe cfg80211 ieee80211_regdom=US
  • WiFi çekirdek sürücülerini yeniden yükleyin:
    sudo modprobe iwlmvm

Şimdi ABD (veya herhangi bir şekilde) yasal alan adı için yapılandırılmış Kablosuz arayüzünü görmelisiniz:

$ iw reg get
country US: DFS-FCC
    (2402 - 2472 @ 40), (N/A, 30), (N/A)
    (5170 - 5250 @ 80), (N/A, 17), (N/A)
    (5250 - 5330 @ 80), (N/A, 23), (0 ms), DFS
    (5490 - 5730 @ 160), (N/A, 23), (0 ms), DFS
    (5735 - 5835 @ 80), (N/A, 30), (N/A)
    (57240 - 63720 @ 2160), (N/A, 40), (N/A)

Güncelleme 2016.11.17: Çekirdek 4.8 Serisinde Sabit

Birkaç hafta önce bir 4.8.x çekirdeğine güncelledikten sonra bugün bu sorunu tekrar kontrol ettim ve WiFi arayüzünün artık düzenleyici alan adını düzgün bir şekilde kabul ettiğini gördüm. Bu, çekirdek rev 4.8.5 içinde veya öncesinde oldu.

$ iw reg get
global
country 00: DFS-UNSET
    (2402 - 2472 @ 40), (6, 20), (N/A)
    (2457 - 2482 @ 20), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
    (2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
    (5170 - 5250 @ 80), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
    (5250 - 5330 @ 80), (6, 20), (0 ms), DFS, AUTO-BW, 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)

phy#0 (self-managed)
country US: DFS-UNSET
    (2402 - 2482 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-80MHZ, NO-160MHZ
    (5170 - 5250 @ 80), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
    (5250 - 5330 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
    (5490 - 5730 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
    (5735 - 5815 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
    (5815 - 5835 @ 20), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-HT40PLUS, NO-80MHZ, NO-160MHZ, PASSIVE-SCAN

Bu, Intel Kablosuz 7265D'im için işe yaramadı, internette 00-World ayarının sabit yazılıma veya yazılıma sabit kodlanmış olduğunu belirten bazı iplikler var.
CMCDragonkai

6

Bazı kod araştırmalarından sonra sorunun ne olduğunu öğrendim:

Intel WiFi cihazı "kendi kendini yöneten" bir cihaz olarak görünür, bu nedenle iw reg seti buna uygulanmaz.

Tek yapmanız gereken iwlwifiparametreyi ayarlamaktır lar_disable=1:

  1. Manuel olarak: modprobe -r iwlwifi & modprobe iwlwifi lar_disable=1
  2. Otomatik olarak: echo "options iwlwifi lar_disable=1" >/etc/modprobe.d/iwlwifi.conf

Teşekkür ederim; Onu deneyeceğim. BTW, "LAR" nedir? 5GHz bandı için radardan kaçınma olayı mı?
ewhac

Dosya /etc/modprobe.d/iwlwifi.confmevcut olabilir, bu yüzden eklemek daha iyidir. Ya ya >>yerine kullanın (gerektiği gibi kök ayrıcalıkları alır). >echo "options iwlwifi lar_disable=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
Lucas


-2
 #!/bin/bash

echo "hello root"
git clone git://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git

echo ""
cd wireless-regdb/
sleep 3

echo ""
gedit db.txt
sleep 1

echo ""
make

echo ""
sudo rm /lib/crda/regulatory.bin

echo ""
sudo cp regulatory.bin /lib/crda/regulatory.bin

echo ""
sudo cp $USER.key.pub.pem /lib/crda/pubkeys/

echo ""
sudo iw reg get

echo ""
ip link set wlan1 down
sleep 3

echo "Boosting Tx Power To 30 Fixed"
iw dev wlan1 set txpower fixed 30mbm
sleep 3

echo "starting wlan1"
ip link set wlan1 up
sleep 2

echo "Checking wlan1 TxPower"
iw dev
sleep 3

echo "Checking Regulatory Domain"
iw reg get
sleep 2

echo "Good Luck"

Lütfen sunulan kodun açıklamasını yapın. Kullanıcıların sadece balık vermeyi değil, balık tutmayı öğrenmelerine yardımcı olun.
Isaac

Soruyu cevaplamadığını biliyorum ve Jan haklı olabilir. Ancak kullanılan temel dosyaların farkındalığının doğru yönde bir ipucu. Bunun yanı sıra şu klasöre sahip değilim /lib/crda/regulatory.bin
JackGrinningCat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.