опция драйвера (-D) под wpa_supplicant


11

Прежде чем wpa_supplicantможно будет выполнять свою работу, должен быть доступен сетевой интерфейс и должен быть загружен драйвер для устройства. wpa_supplicantпозволяет указать драйвер с флагом "-D". Я пробовал это на нескольких системах, но, wpa_supplicantкажется, никогда не принимает драйвер, который я указал. Например:

T42 ~ # lspci -v -s 02:02.0
02:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
    Subsystem: Intel Corporation Device 1011
    Flags: bus master, medium devsel, latency 64, IRQ 11
    Memory at c0214000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [dc] Power Management version 2
    Kernel driver in use: ipw2200
    Kernel modules: ipw2200
T42 ~ # wpa_supplicant -D ipw2200 -i eth1 -c /root/wpafile 
Unsupported driver 'ipw2200'.
T42 ~ # 

Однако если я начну wpa_supplicantбез указания драйвера вроде wpa_supplicant -i eth1 -c /root/wpafile, то он работает без нареканий. Почему это так? Кроме того, в каком случае необходимо указать драйвер для wpa_supplicant?


1
Список доступных драйверов включает (см. Руководство): HostAP, Prism54, Madwifi, NDISWrapper, AMTEL, IPW (драйверы 2100 и 2200), WEXT (универсальные беспроводные расширения Linux), проводной Ethernet. Из них наиболее интересными являются WEXT (который используется для 70% Wifi-устройств), NDISWrapper, если вы используете драйверы Windows, с оболочкой из слоя совместимости с Linux и Madwifi, если вы используете aircrack. Хотя я не понимаю с архитектурной точки зрения, какой уровень представляют эти драйверы.
Борис Бурков

Ответы:


13

Вы путаете драйверы ядра и драйверы пространства пользователя. В вашем случае вы, конечно, можете использовать WEXT, но также nl80211 (я думаю).

WEXT (или WE = Wireless Extensions) - это модификация, введенная в ядро ​​Linux в 1997 году Жаном Туррихесом. Согласно этой веб-странице, написанной самим Туррхилсом,

Wireless Extension (WE) - это общий API, позволяющий драйверу предоставлять доступ к пользовательскому пространству, конфигурации и статистике, характерным для обычных беспроводных локальных сетей. Прелесть этого в том, что один набор инструментов может поддерживать все варианты беспроводных локальных сетей, независимо от их типа (при условии, что драйвер поддерживает Wireless Extension). Еще одним преимуществом является то, что эти параметры могут быть изменены на лету без перезапуска драйвера (или Linux).

Другими словами, WEXT находится поверх вашего драйвера и позволяет wpa_supplicant взаимодействовать с ним. Обратите внимание, что wpa_supplicant и драйвер принадлежат к разным областям ядра (первое - к пространству пользователя, второе - к пространству ядра), поэтому требуется API, способный выступать в качестве посредника. Эту роль играют так называемые водители, упомянутые Бобом.

Тем не менее, эта веб-страница Linux-Wireless прямо говорит, что

МЫ развиваемся?

Нет это не так. Для МЫ принимаются только исправления ошибок.

и

Что такое замена беспроводных расширений?

Новая разработка должна быть ориентирована на cfg80211 и nl80211.

На самом деле, если запрос мой wpa_supplicant прямо (т. Е. Не справочная страница, а команда

 wpa_supplicant -h

Я получаю (частично) этот ответ:

drivers:
  wext = Linux wireless extensions (generic)
  nl80211 = Linux nl80211/cfg80211
  wired = Wired Ethernet driver
  none = no driver (RADIUS server/WPS ER)
options:....

Другими словами, в соответствии со словами Linux Wireless, поддержка всех других драйверов, кроме Wext и nl80211, была прекращена, а поддержка Wext была поддержана, потому что ...

Мы все еще используем МЫ?

Да, cfg80211 и nl80211 все еще работают, поэтому WE все еще используются. Все драйверы mac80211 поддерживают WE, как и mac80211. Идея состоит в том, чтобы постепенно начать перемещать вещи на cfg80211 и nl80211, которые еще не добавлены, и добавлять к ним новые функции.

Это относится к ядру Linux 3.11.1-031101-generic.

Те из вас, кто использовал hostapd, в некотором роде уже проинформированы обо всем этом, потому что стандартный драйвер для hostapd - это точно nl80211.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.