"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 チャンネルの 1 つがコントロールチャンネルとして指定されます。これ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「周波数」セクションでサポートされているチャネルと対応する20 MHz中心周波数を一覧表示することです。

チャネル 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オプション12 KB 集計を受信できるように、受信バッファのサイズを大きくします。。これはドライバのメモリスペースを増やしますが、これがなければ、スニファはより大きなセットを削除します。

この11n_disable=8オプションはモニタモードに必須ではありませんが、送信パケットの集約を有効にします。大幅なパフォーマンス向上監視モード以外のWi-Fiを使用した場合。

おすすめ記事