"iw set freq"의 매개변수를 계산하는 방법

"iw set freq"의 매개변수를 계산하는 방법

채널 폭이 80MHz인 802.11ac 무선 네트워크 문제를 해결하라는 요청을 받았습니다. 모니터 모드에서 무선 장치를 설정할 때 80Mhz 채널 폭을 지정하는 데 문제가 있습니다 iw.

내 조정기 도메인이 80MHz 채널을 허용하는지 확인했습니다.

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)

그러나 채널 40을 사용하기 위해 다음 명령을 실행하면 iw오류 메시지만 나타납니다.

# iw dev <devname> set freq <control freq> [20|40|80|80+80|160] [<center freq 1>] [<center freq 2>]
$ sudo iw wlo1 set freq 5200 80
command failed: Invalid argument (-22)
$ sudo iw wlo1 set freq 5210 80
command failed: Invalid argument (-22)
$ sudo iw wlo1 set freq 5200 80 5210
command failed: Invalid argument (-22)
$ sudo iw wlo1 set freq 5210 80 5210
command failed: Invalid argument (-22)
$ sudo iw wlo1 set freq 5210 80 5200
command failed: Invalid argument (-22)
$ sudo iw wlo1 set channel 42
command failed: Invalid argument (-22)

또한 제어 주파수와 중앙 주파수의 차이와 채널 번호와의 관계에 대해 약간 혼란스럽습니다. 위키피디아WLAN 채널 목록20MHz의 채널 폭을 나타내는 채널 40은 주파수 5190-5210MHz에 걸쳐 있습니다. 이는 80MHz 채널 폭을 사용하면 실제로 채널 42를 사용하고 있지만 그 역시 작동하지 않는다는 의미인 것 같습니다.이 그림채널에 대한 훌륭한 설명. "중심 주파수"를 "최고 주파수와 최저 주파수 사이의 중간 주파수"로 해석하면 5210MHz가 되는데, 제어 주파수는 무엇입니까? 채널 40은 5200MHz입니까? 채널 42는 5210MHz입니까?

유일하게 iw유효한 명령은 set channel 4020MHz 채널 폭을 생성하는 명령입니다.

답변1

OP에는 너무 늦을 수 있지만 Google을 통해 도착하는 사람들에게는 ...

802.11ac에서 80MHz 채널은 4개의 20MHz 채널을 포함합니다. 20MHz 채널 중 하나가 제어 채널로 지정됩니다. 이것OP에서 인용한 수치이것을 아주 잘 보여줍니다. 채널 40을 제어 채널로 사용하는 경우 80MHz 채널은 채널 36, 40, 44 및 48을 포함합니다. 채널 36은 40MHz와 동일한 40MHz 및 80MHz 채널을 공유합니다. 호스트가 채널 36에서 프레임을 전송하는 경우 채널 40의 네트워크는 채널 36의 트래픽이 지워질 때까지 기다리지 않고도 20MHz 채널 40을 사용하여 계속 전송할 수 있습니다.

중심 주파수는 iw <dev> set freq80MHz 채널의 중심에 있어야 합니다. 중심 주파수는 그림의 80MHz 채널 경계를 기준으로 (5170MHz + 5250MHz) / 2 = 5210MHz로 계산하거나 하위 채널 중심 주파수 (5180MHz + 5240MHz) / 2 = 5210으로 계산할 수 있습니다. MHz.

어떤 이유로든 편리한 차트가 없는 경우 채널-주파수 매핑을 얻는 또 다른 방법은 iw list"주파수" 섹션에 지원되는 채널과 해당 20MHz 중심 주파수를 나열하는 것입니다.

채널 40은 5200MHz이므로 sudo iw wlo1 set freq 5200 80 5210작동합니다.

Intel 네트워크 카드를 사용한다고 언급했지만 어떤 모델인지는 언급하지 않았습니다. 확인해야 할 몇 가지 사항:

  1. iw listVHT는 출력의 기능 섹션 에 나열되어야 합니다 . MCS 0-9에 대해 최대 2개의 스트림까지 VHT RX 및 TX를 지원하는 AC7265가 있습니다.
  2. 최신 펌웨어가 있는지 확인하세요. Ubuntu를 통해 커널을 얻었고 최신 LTS를 사용하고 있다면 최신 플랫폼이 없다면 아마도 꽤 최신 펌웨어를 가지고 있을 것입니다. 최신 플랫폼(예: 2017년의 Skylake)이 있다면 시도해 볼 수도 있습니다.하드웨어 지원 스택. dmesg드라이버가 로드되면 펌웨어에 문제가 있다는 표시가 부팅 메시지에 나타납니다. Intel 네트워크 카드가 iwlwifi를 사용한다고 가정하면 "iwlwifi 0000:03:00.0: 로드된 펌웨어 버전 22.391740.0 op_mode iwlmvm"과 같은 내용이 표시되어야 합니다. 최종 성공 메시지 앞에 여러 개의 실패 메시지가 나타나더라도 걱정하지 마세요. 결국에는 로드되는지 확인하세요. 이것iwlwifi 드라이버 페이지, 펌웨어 섹션최신 버전이 없는지 확인하려는 경우 최신 펌웨어를 얻는 방법을 설명합니다.
  3. 802.11ac에 대한 모듈 옵션을 활성화합니다. 에는 /etc/modprobe.d/iwlwifi.conf다음이 있습니다.

    # /etc/modprobe.d/iwlwifi.conf
    # iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
    # microcode file installed on the system. When removing iwlwifi, first
    # remove the iwl?vm module and then iwlwifi.
    remove iwlwifi \
    (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
    && /sbin/modprobe -r mac80211
    
    options iwlwifi 11n_disable=8 amsdu_size=3
    

amsdu_size=3옵션12KB 집계를 수신할 수 있을 만큼 수신 버퍼 크기를 늘립니다.. 이는 드라이버의 메모리 공간을 늘리지만 이것이 없으면 스니퍼는 더 큰 집합을 삭제하게 됩니다.

11n_disable=8옵션은 모니터 모드에 꼭 필요한 것은 아니지만 전송 패킷 집계를 활성화합니다.상당한 성능 개선모니터링 모드 이외의 Wi-Fi를 사용한 경우.

관련 정보