80MHzのチャネル幅を持つ802.11acワイヤレスネットワークの問題のトラブルシューティングを求められました。ワイヤレスデバイスを監視モードで設定するときに、80 MHzのチャネル幅をiw
に指定するのに問題があります。
私のレギュレータドメインで80 MHzチャネルが許可されていることを確認しました
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)
しかし、次のiw
コマンドを発行してChannel 40を使用すると、エラーメッセージが表示されます。
# 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チャネルのリスト は、20 MHzのチャネル幅を持つチャネル40が周波数5190〜5210 MHzに及ぶと述べています。 80 MHzのチャネル幅を使用している場合、実際にはチャネル42を使用しているように見えますが、これも機能しません。 このイラスト はチャンネルを説明するのに良い仕事をします。 「中心周波数」を「最高周波数と最低周波数の中間の周波数」と解釈すると、5210 MHzになりますが、制御周波数は何ですか。チャネル40は5200 MHzですか?チャネル42の5210 MHz?
機能する唯一のiw
コマンドはset channel 40
、20 MHzチャネル幅になります。
OPには遅すぎるかもしれませんが、Google経由で到着する人々にとっては...
802.11acでは、80 MHzチャネルは4つの20 MHzチャネルをカバーします。 20 MHzチャネルの1つが制御チャネルとして指定されています。 OPによって引用された図 はこれをうまく示しています。チャネル40を制御チャネルとして使用する場合、80 MHzチャネルはチャネル36、40、44、および48をカバーします。チャネル36は、40 MHzと同じ40 MHzおよび80 MHzチャネルを共有します。ホストがチャネル36でフレームを送信する場合、チャネル40のネットワークは、チャネル36のトラフィックがクリアされるのを待たなくても、20 MHzのチャネル40を使用して送信できます。
中心周波数iw <dev> set freq
は、80 MHzチャネルの中心に必要です。中心周波数は、図の80 MHzチャネル境界から(5170 MHz + 5250 MHz)/ 2 = 5210 MHzとして、またはサブチャネル中心周波数(5180 MHz + 5240 MHz)/ 2 = 5210 MHzから計算できます。
何らかの理由でチャートが手元にない場合、チャネルから周波数へのマッピングを取得する別の方法は、[周波数]セクションにサポートされているチャネルとその20 MHz中心周波数の両方をリストするiw list
を使用することです。
チャネル40は5200 MHzなので、Sudo iw wlo1 set freq 5200 80 5210
が機能しているはずです。
Intel NICの使用について言及しているが、どのモデルについて言及していない。チェックするいくつかの事柄:
iw list
の出力の「機能」セクションに表示されます。 AC7265を使用していますが、最大2つのストリームでMCS 0〜9のVHT RXおよびTXをサポートしています。dmesg
ブートメッセージに含まれます。 Intel NICがiwlwifiを使用していると仮定すると、「iwlwifi 0000:03:00.0:ロードされたファームウェアバージョン22.391740.0 op_mode iwlmvm」のようなものが表示されます。最終的に成功したメッセージです。最終的に読み込まれることを確認してください。 iwlwifiドライバーページ、ファームウェアセクション は、新しいバージョンがないことを確認する場合に最新のファームウェアを取得する方法を説明します。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を使用する場合は 大幅なパフォーマンスの向上 です。