1

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

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

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

Спасибо большое!

1 ответ1

2

Это было намеренно удалено из кода "WEXT emulation" в ядре Linux v4.7.

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

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

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

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

Это также означает, что весь пакет wireless_tools считается устаревшим из-за его зависимости от WEXT API. Вместо этого используйте iw для управления устройствами Wi-Fi:

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

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

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

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


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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .