опція драйвера (-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% пристроїв Wi-Fi), NDISWrapper, якщо ви використовуєте драйвери Windows, обгорнуті шаром сумісності Linux та Madwifi, якщо ви використовуєте aircrack. Хоча я не розумію з архітектурної точки зору, який рівень представляють ці водії.
Борис Бурков

Відповіді:


13

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

WEXT (або WE = бездротові розширення) - це модифікація, введена в ядро ​​Linux в 1997 році Жаном Туррілесом. Відповідно до цієї веб-сторінки, написаної самим Туррілесом,

Бездротове розширення (WE) - це загальний API, що дозволяє водію відкривати користувальницький простір, конфігурацію та статистику, характерну для звичайних бездротових локальних мереж. Краса полягає в тому, що один набір інструментів може підтримувати всі варіанти бездротових локальних мереж незалежно від їх типу (доки драйвер підтримує бездротове розширення). Ще одна перевага полягає в тому, що ці параметри можуть бути змінені на ходу без перезавантаження драйвера (або Linux).

Іншими словами, WEXT знаходиться поверх вашого драйвера і дозволяє wpa_supplicant взаємодіяти з ним. Зауважте, що wpa_supplicant та драйвер належать до різних областей ядра (перше - простір користувача, друге - простір ядра), таким чином, потрібен API, здатний виконувати функцію переходу між ними. Таку роль відіграють так звані драйвери, згадані Боб.

Однак ця веб-сторінка Linux-Wireless чітко стверджує це

Чи ми розвиваємось далі?

Ні, це не так. Для МИ приймаються лише виправлення помилок.

і

Що таке заміна Wireless-Extensions?

Нова розробка повинна бути зосереджена на cfg80211 та nl80211.

Насправді, якщо запит мій wpa_supplicant відверто (тобто не сторінка man, а команда

 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 підтримують WES, оскільки mac80211 використовує його. Ідея полягає в тому, щоб повільно почати переміщувати речі на cfg80211 та nl80211, яких ще немає, і додавати до них якісь нові функції.

Це стосується Linux Kernel 3.11.1-031101-generic.

Ті з вас, хто використовував hostapd, певним чином уже про все це інформують, тому що стандартний драйвер для hostapd - саме nl80211.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.