WiFi :`iw reg set US`는 효과가 없습니다


13

WiFi 드롭 아웃을 진단하는 과정에서 WiFi 인터페이스의 규제 도메인이 "world"(00)로 설정되어 있고이를 내 지역 (US)으로 변경하면 문제를 해결하는 데 도움이됩니다. 그러나 내가 시도한 모든 시도는 무시되었습니다.

달리기 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)
$ 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)

주제에 대한 광범위한 인터넷 검색 후, 발생해야 할 일은 iw reg set커널이 udev 이벤트를 발생 crda시켜 실행되고 관련 규제 정보를 기침하는 것으로 보입니다 . 그러나와 말할 수있는 것처럼 udevadm이 이벤트는 절대로 방출되지 않습니다. 이 이벤트의 부재는 다음과 같은 클루지가 작동하지 않음으로 확증됩니다.

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

오류 메시지는에서 온 것 crda입니다. 커널은 udev 이벤트 / 요청을 생성하고 응답을 기대하는 경우에만 WiFi 규제 변경을 승인합니다. crda실패 했기 때문에 커널은 분명히 그것을 기대하지 않았으며 udev 이벤트가 발생하지 않았 음을 나타냅니다.

WiFi 인터페이스는 Intel 7265D입니다. 커널 드라이버는 iwlmvm입니다. 내가 가진 crdawireless-regdb설치, 그리고 /etc/default/crda포함 REGDOMAIN=US. iwlmvm드라이버를 제거했다가 다시로드해도 효과가 없습니다.

더 확인해야 할 사항이 있습니까?


1
커널 로그에서 변경 사항이 있는지 확인 했습니까? stdout에서와 동일한 결과를 얻었지만 내 로그에 따르면 규제 도메인이 실제로 업데이트되었다고 말합니다.
saiarcot895

dmesg규제 영역을 변경하려고 시도했음을 나타내는 출력 또는 로그 에서 아무것도 찾을 수 없습니다 . "DFS 마스터 영역 : 설정 안 됨"
ewhac

1
귀하의 솔루션은 좋은 소리입니다. 질문을 수정하지 말고 답변으로 이동하십시오. 그런 다음 자신의 답변도 받아들입니다.
roaima

답변:


11

어제이 문제를 다시 시도했지만 커널 4.6.3에서도 여전히 문제가 있습니다. 최신 펌웨어 이미지를 수동으로 설치해도 도움이되지 않았습니다. 그러나 iw reg set US동일한 커널을 실행하는 두 번째 랩톱에서 시도 하면 정상적으로 작동했습니다.

문제는 Intel 7265D WiFi 카드가있는 Thinkpad X1 Carbon (Gen.3)입니다. 작동하는 컴퓨터는 Intel 7260이있는 Thinkpad T440p입니다. 따라서 7265D 드라이버 또는 펌웨어에 버그가 있다고 결론지었습니다.

해결 방법

또한 7265D에 대한 해결 방법을 발견했습니다. 이는 해결 방법이며 실제 수정 사항이 릴리스 된 경우 충돌을 일으킬 수 있습니다.

  • 모든 WiFi 커널 드라이버 및 종속 모듈을 제거하십시오.
    sudo modprobe -r iwlmvm
  • 설치 cfg80211(이 경우, '미국'에서)하는 규정을 강제로 커널 매개 변수를 사용하여, 커널 모듈을 :
    sudo modprobe cfg80211 ieee80211_regdom=US
  • WiFi 커널 드라이버를 다시 설치하십시오.
    sudo modprobe iwlmvm

이제 미국 (또는 기타) 규제 도메인에 대해 구성된 WiFi 인터페이스가 표시됩니다.

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

2016.11.17 업데이트 : 커널 4.8 시리즈에서 수정되었습니다.

몇 주 전에 4.8.x 커널로 업데이트 한 후 처음으로이 문제를 다시 확인했으며 WiFi 인터페이스가 이제 규제 도메인을 올바르게 받아들이고있는 것으로 나타났습니다. 이것은 커널 개정판 4.8.5 이전 또는 이전에 발생했습니다.

$ 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

이것은 Intel Wireless 7265D에서 작동하지 않았습니다. 인터넷에는 00-World 설정이 펌웨어 또는 하드웨어 잠금으로 하드 코딩되어 있다고 언급하는 스레드가 있습니다.
CMCDragonkai

6

일부 코드 연구 후 문제가 무엇인지 알았습니다.

인텔 WiFi 장치는 "자체 관리"장치로 표시되므로 iw reg 세트가 적용되지 않습니다.

iwlwifi매개 변수를 설정하기 만하면됩니다 lar_disable=1.

  1. 수동으로 : modprobe -r iwlwifi & modprobe iwlwifi lar_disable=1
  2. 자동 : echo "options iwlwifi lar_disable=1" >/etc/modprobe.d/iwlwifi.conf

감사합니다; 나는 그것을 시도 할 것이다. BTW, "LAR"은 무엇입니까? 5GHz 대역의 레이더 회피 일입니까?
ewhac

파일 /etc/modprobe.d/iwlwifi.conf이 존재할 수 있으므로 추가하는 것이 좋습니다. 하나를 사용 >>하는 대신 >하거나 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"

제시된 코드에 대한 설명을 작성하십시오. 사용자에게 물고기를 줄뿐만 아니라 낚시하는 법을 배우도록 도와줍니다.
NotAnUnixNazi

나는 그것이 질문에 대답하지 못하고 Jan이 옳을 수도 있음을 알고 있습니다. 그러나 사용되는 기본 파일을 인식하는 올바른 방향의 팁입니다. 그 외에도 /lib/crda/regulatory.bin 폴더가 없습니다
JackGrinningCat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.