昨日、Linux システムを大幅にアップデートしました。以前はiwconfig
802.11[abgn] 情報を表示していたコマンドが、現在は 802.11 のみが表示されます。
iwconfig でカードの利用可能なバンドを表示する方法はありますか?
そうでない場合、他のコマンドを使用してその情報を取得する方法はありますか?
答え1
これは「WEXTエミュレーション」コードから意図的に削除されましたLinuxカーネルv4.7。
iwconfigこのテキストをカーネルから取得するにはioctl(SIOCGIWNAME)、WEXT (Wireless Extensions) API の関数。ただし、
SIOCGIWNAME によって返されるテキストは 16 バイトに制限されており、
IEEE 802.11abgn
すでにその制限に達しています。 を示すスペースac
はなく、さらに新しい修正を示すスペースはありません。WEXTは全体として、実質的に802.11n時代にとどまっています。その一般的な設計は実際には以前の802.11 Wi-Fi(iwconfig1988 年の WaveLAN のサブコマンドがまだ保持されており、マルチバンド Wi-Fi アダプター、チャネル幅などの最新の機能に対応するのが困難です。
現代のワイヤレスドライバーのほとんどは、mac80211/cfg80211アーキテクチャを拡張し、nl80211 API を直接提供します。nl80211 API は、はるかに多くの機能を提供し、WEXT が抱えるさまざまな問題の影響を受けません。カーネルは、mac/cfg80211 の情報を使用して既存の WEXT 操作をエミュレートしますが、それをさらに拡張する興味も理由もありません。(mac80211 アーキテクチャは、2006 年に Devicescape によって導入されました。このLWNの記事。
これはまた、全体がワイヤレスツールパッケージはWEXT APIに依存しているため、廃止されていると考えられています(もちろんWEXTドライバを使用する場合は除きます)。代わりに、私w最新の mac/cfg80211 ドライバーを搭載した Wi-Fi デバイスを管理するには:
iw phy
(の略iw phy phy0 info
) は、物理カードの機能を表示します。残念ながら、「802.11b/g/n」と明記されていませんが、バンド、HT/VHT サポートなどに基づいて推測することはできます。- 802.11a – 5GHz帯を示します
- 802.11b – 1/2/5.5/11 Mbpsの「非HT」ビットレートで2.4 GHz帯域を示します
- 802.11g – 6/9/12/18/24/36/48/54 Mbpsの「非HT」レートの2.4 GHz帯域を示します。
- 802.11n – 両方の帯域で「HT」(高スループット)をサポート
- 802.11ac – 5GHz帯で「VHT」(超高スループット)をサポート
- 802.11ax – 「HE」(高効率)をサポート
iw dev
(の略iw dev wlan0 info
) は、周波数などのソフトウェア インターフェイスの現在の構成を表示します。技術的には、同じ phy を使用して複数の wlan# インターフェイスを持つことが可能です。iw [dev] wlan0 link
現在のリンク状態をより詳細に表示します。iw [dev] wlan0 station dump
上記と同様です。
コミット メッセージに記載されているように、HT や VHT などの機能は、もはや修正とは見なされません (小文字で示されています)。これらは、802.11 の以降のエディションに統合されています。たとえば、「802.11-2012」には「n」が完全に組み込まれ、「802.11-2016」には「ac」が含まれています。
また、エミュレーションの変更は、独自の ioctl ハンドラーを持つ WEXT ネイティブ ドライバーには影響しないことに注意してください。したがって、非常に古いデバイス (または Realtek) を使用している場合は、このフィールドにはIEEE 802.11-DS
または のような名前が引き続き表示されますIEEE 802.11b
。