Команда iwconfig не показывает abgn

Команда iwconfig не показывает abgn

Вчера я сделал крупное обновление своей системы Linux. iwconfigРаньше команда отображала информацию 802.11[abgn], но теперь она отображает только 802.11.

Есть ли способ заставить iwconfig отображать доступные диапазоны карты?

Если нет, есть ли способ получить эту информацию с помощью какой-либо другой команды?

решение1

Это было намеренно удалено из кода «эмуляции WEXT».в ядре Linux v4.7.

iwconfigполучает этот фрагмент текста из ядра с помощьюioctl(ИМЯ_SIOCGIW), функция из API WEXT (Wireless Extensions). Однако:

  1. Текст, возвращаемый SIOCGIWNAME, ограничен 16 байтами и IEEE 802.11abgnуже достигает этого предела — места для указания нет ac, не говоря уже о более новых поправках.

  2. WEXT в целом практически застрял в 802.11n эре. Его общий дизайн на самом делепредшествует802.11 Wi-Fi (iwconfigвсе еще содержит подкоманды для WaveLAN 1988 года, и у него возникают проблемы с работой с современными функциями, такими как многодиапазонные адаптеры Wi-Fi, ширина канала и т. д.

Большинство современных беспроводных драйверов построены наmac80211/cfg80211архитектура и напрямую предоставляют API nl80211, который обеспечивает гораздо больше возможностей и не подвержен различным проблемам, которые есть у WEXT. Ядро по-прежнему эмулирует существующие операции WEXT, используя информацию из mac/cfg80211, но нет ни интереса, ни веской причины расширять его дальше. (Архитектура mac80211 была представлена ​​в 2006 году компанией Devicescape; см.эта статья LWN.)

Это также означает, что весьбеспроводные_инструментыПакет считается устаревшим из-за его зависимости от WEXT API (конечно, если вы не используете драйвер WEXT). Вместо него используйтеайвдля управления устройствами Wi-Fi, имеющими современные драйверы mac/cfg80211:

  • iw phy(сокращение от iw phy phy0 info) покажет возможности вашей физической карты. К сожалению, там не указано "802.11b/g/n", но вы все равно можете сделать вывод, основываясь на диапазонах, поддержке HT/VHT и т. д.

    • 802.11a – показывает диапазон 5 ГГц
    • 802.11b – показывает диапазон 2,4 ГГц с битрейтами 1/2/5,5/11 Мбит/с «не-HT»
    • 802.11g – показывает диапазон 2,4 ГГц со скоростями 6/9/12/18/24/36/48/54 Мбит/с «не-HT»
    • 802.11n – поддерживает «HT» (высокая пропускная способность) на обоих диапазонах
    • 802.11ac – поддерживает «VHT» (очень высокую пропускную способность) в диапазоне 5 ГГц
    • 802.11ax – поддерживает «HE» (высокая эффективность)
  • iw dev(сокращение от iw dev wlan0 info) покажет текущую конфигурацию программного интерфейса, например частоту. Технически возможно иметь несколько интерфейсов wlan#, использующих один и тот же phy.

  • iw [dev] wlan0 linkпокажет текущее состояние ссылки более подробно.

  • iw [dev] wlan0 station dumpаналогичен вышеизложенному.


Обратите внимание, что, как говорится в сообщении о фиксации, такие функции, как HT и VHT, больше не считаются поправками (на что указывают строчные буквы) — они были объединены в более поздние редакции стандарта 802.11, например, «802.11-2012» полностью включает «n», а «802.11-2016» включает «ac».

Также обратите внимание, что изменение эмуляции не влияет на драйверы WEXT-native, которые имеют собственные обработчики для ioctl. Так что если вы используете очень старое устройство – или Realtek – то вы все равно получите имена вроде IEEE 802.11-DSили IEEE 802.11bв этом поле.

Связанный контент