Вчера я сделал крупное обновление своей системы Linux. iwconfig
Раньше команда отображала информацию 802.11[abgn], но теперь она отображает только 802.11.
Есть ли способ заставить iwconfig отображать доступные диапазоны карты?
Если нет, есть ли способ получить эту информацию с помощью какой-либо другой команды?
решение1
Это было намеренно удалено из кода «эмуляции WEXT».в ядре Linux v4.7.
iwconfigполучает этот фрагмент текста из ядра с помощьюioctl(ИМЯ_SIOCGIW), функция из API WEXT (Wireless Extensions). Однако:
Текст, возвращаемый SIOCGIWNAME, ограничен 16 байтами и
IEEE 802.11abgn
уже достигает этого предела — места для указания нетac
, не говоря уже о более новых поправках.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
в этом поле.