opzione driver (-D) in wpa_supplicant


11

Prima di wpa_supplicantpoter svolgere il suo lavoro, l'interfaccia di rete deve essere disponibile e il driver per il dispositivo deve essere caricato. wpa_supplicantconsente di specificare un driver con flag "-D". Ho provato questo su alcuni sistemi, ma wpa_supplicantnon sembra mai accettare il driver che ho specificato. Per esempio:

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 ~ # 

Tuttavia, se inizio wpa_supplicantsenza specificare il driver come wpa_supplicant -i eth1 -c /root/wpafile, allora funziona perfettamente. Perché è così? Inoltre, nel qual caso è necessario specificare il driver per wpa_supplicant?


1
L'elenco dei driver disponibili include (consultare il manuale): HostAP, Prism54, Madwifi, NDISWrapper, AMTEL, IPW (entrambi driver 2100 e 2200), WEXT (estensioni wireless generiche Linux), Ethernet cablata. Di quelli più interessanti sono WEXT (che è in uso per dispositivi WiFi al 70%), NDISWrapper se stai usando i driver di Windows, avvolto dal livello di compatibilità Linux e Madwifi, se stai usando aircrack. Tuttavia, non capisco dal punto di vista architettonico, quale livello rappresentino questi driver.
Boris Burkov,

Risposte:


13

Stai confondendo i driver del kernel e i driver dello spazio utente. Nel tuo caso, potresti sicuramente usare WEXT, ma anche nl80211 (credo).

WEXT (o WE = Wireless Extensions) sono le modifiche introdotte nel kernel Linux nel 1997 da Jean Tourrhiles. Secondo questa pagina Web scritta dallo stesso Tourrhiles,

Wireless Extension (WE) è un'API generica che consente a un driver di esporre allo spazio utente, alla configurazione e alle statistiche specifiche delle LAN wireless comuni. Il bello è che un singolo set di strumenti può supportare tutte le varianti delle LAN wireless, indipendentemente dal loro tipo (purché il driver supporti l'estensione wireless). Un altro vantaggio è che questi parametri possono essere modificati al volo senza riavviare il driver (o Linux).

In altre parole, WEXT si trova al di sopra del tuo driver e consente a wpa_supplicant di interagire con esso. Si noti che wpa_supplicant e il driver appartengono a diversi reami del kernel, (il primo allo spazio utente, il secondo allo spazio kernel), pertanto è necessaria un'API in grado di fungere da intermediario. Questo è il ruolo svolto dai cosiddetti piloti citati da Bob.

Tuttavia, questa pagina Web Linux-Wireless lo afferma esplicitamente

Stiamo sviluppando ulteriormente?

No non lo è. Per WE sono accettate solo correzioni di bug.

e

Che cos'è la sostituzione delle estensioni wireless?

Il nuovo sviluppo dovrebbe essere focalizzato su cfg80211 e nl80211.

In effetti, se eseguo una query il mio wpa_supplicant in modo drastico (ovvero, non la pagina man, ma il comando

 wpa_supplicant -h

Ricevo (in parte) questa risposta:

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

In altre parole, fedele alle parole di Linux Wireless, il supporto a tutti gli altri driver tranne Wext e nl80211 è stato abbandonato e il supporto a Wext è stato mantenuto perché ...

Usiamo ancora WE?

Sì, cfg80211 e nl80211 sono ancora in fase di elaborazione, pertanto i WE vengono ancora utilizzati. Tutti i driver mac80211 supportano WEs poiché mac80211 lo utilizza. L'idea è di iniziare lentamente a spostare le cose su cfg80211 e nl80211 che non sono ancora presenti e aggiungere anche loro nuove funzionalità.

Questo vale per Linux Kernel 3.11.1-031101-generico.

Quelli di voi che hanno usato hostapd sono, in un certo senso, già informati di tutto ciò, perché il driver standard per hostapd è esattamente nl80211.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.