Antes de wpa_supplicant
poder fazer seu trabalho, a interface de rede deve estar disponível e o driver do dispositivo deve ser carregado. wpa_supplicant
permite especificar um driver com o sinalizador "-D". Eu tentei isso em alguns sistemas, mas wpa_supplicant
nunca parece aceitar o driver especificado. Por exemplo:
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 ~ #
No entanto, se eu começar wpa_supplicant
sem especificar o driver como wpa_supplicant -i eth1 -c /root/wpafile
, então ele funcionará perfeitamente. Porque isto é assim? Além disso, nesse caso, é necessário especificar o driver wpa_supplicant
?
wpa-supplicant
Martin
fonte
fonte
aircrack
. No entanto, eu não entendo do ponto de vista arquitetônico, que nível esses drivers representam.Respostas:
Você está confundindo drivers do kernel e drivers do espaço do usuário. No seu caso, você certamente pode usar o WEXT, mas também o nl80211 (eu acho).
WEXT (ou WE = Wireless Extensions) é a modificação introduzida no kernel Linux em 1997 por Jean Tourrhiles. De acordo com esta página da Web escrita pelo próprio Tourrhiles,
Em outras palavras, o WEXT fica em cima do seu driver e permite que o wpa_supplicant interaja com ele. Observe que wpa_supplicant e o driver pertencem a diferentes regiões do kernel (a primeira no espaço do usuário, a segunda no espaço do kernel), portanto, é necessária uma API capaz de atuar como intermediária. Este é o papel desempenhado pelos chamados drivers mencionados por Bob.
No entanto, esta página da Web Linux-Wireless declara explicitamente que
e
De fato, se uma consulta meu wpa_supplicant for bem (ou seja, não a página de manual, mas o comando
Recebo (em parte) esta resposta:
Em outras palavras, fiel às palavras do Linux Wireless, o suporte a todos os outros drivers, exceto o Wext e o nl80211, foi retirado e o suporte ao Wext foi mantido porque ...
Isso se aplica ao Linux Kernel 3.11.1-031101-generic.
Aqueles de vocês que usaram o hostapd já estão, de certa forma, informados de tudo isso, porque o driver padrão para o hostapd é exatamente nl80211.
fonte