TL; DR . Eu preciso chegar ao fundo:
- por que há erros relacionados a
ioctl
ao usar o wext
driver,
- por que não consigo usar o
nl80211
driver.
Ao executar wpa_supplicant
I obtenha erros estranhos (observe as linhas que começam com ioctl
abaixo):
$ sudo wpa_supplicant -D wext -i wlan0 -c wpa_supplicant.conf
Successfully initialized wpa_supplicant
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: Trying to associate with 04:8d:38:59:2d:63 (SSID='netis' freq=2457 MHz)
wlan0: Association request to the driver failed
wlan0: Associated with 04:8d:38:59:2d:63
wlan0: WPA: Key negotiation completed with 04:8d:38:59:2d:63 [PTK=CCMP GTK=TKIP]
wlan0: CTRL-EVENT-CONNECTED - Connection to 04:8d:38:59:2d:63 completed [id=0 id_str=]
Eu preciso saber o porquê de haver ioctl
errors .
Algumas notas:
-
meu objetivo aqui é aprender ; Eu quero me livrar dos erros, mesmo que isso signifique enviar um patch para
wpa_supplicant
, para Raspbian, ou para o próprio kernel / driver do linux,
- não há problema com WiFi; está funcionando; Eu obtenho a conexão com a saída acima, não há problema com isso,
- se é impossível se livrar de erros no meu caso, eu gostaria de entender por que isso é exatamente
- Eu não tentei testar a versão mais atualizada de & Versões RC do kernel Linux; procurando evidências (um commit no repositório de kernel do linux) que eu ajudei antes de mergulhar na compilação do meu próprio kernel,
- Encontrei os erros no código-fonte, aqui e aqui respectivamente. Não tenho certeza de onde ir a partir daí.
O que aprendi até agora
-
A execução de wpa_supplicant
com nl80211
não está funcionando:
$ sudo wpa_supplicant -D nl80211 -i wlan0 -c wpa_supplicant.conf
Successfully initialized wpa_supplicant
nl80211: Driver does not support authentication/association or connect commands
wlan0: Failed to initialize driver interface
Por que não? Eu pensei que nl80211
é superior a wext
:
Is WE being further developed? No it is not. Only bug fixes are being accepted for WE.
What is Wireless-Extensions' replacement? New development should be focused on cfg80211 and nl80211.
https://wireless.wiki.kernel.org/en/developers/Documentation/Wireless-Extensions
-
De acordo com esta lista , o meu dispositivo RTL8188CUS
é suportado pelo driver 8192cu
, que é carregado como um módulo do kernel (veja abaixo),
-
Compilar e executar wpa_supplicant
versão 2.5 produz os mesmos erros ioctl
.
Sobre o meu ambiente
Versão da ação de wpa_supplicant
:
$ wpa_supplicant -v
wpa_supplicant v2.3
Copyright (c) 2003-2014, Jouni Malinen <[email protected]> and contributors
Conteúdo de wpa_supplicant.conf
:
$ cat wpa_supplicant.conf
network={
ssid="my_network_name"
psk="my_password"
}
Lista de dispositivos USB:
$ lsusb
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Versão da distribuição:
$ uname -a
Linux raspberrypi 4.1.18+ #846 Thu Feb 25 14:11:56 GMT 2016 armv6l GNU/Linux
Módulos de kernel carregados:
$ lsmod
Module Size Used by
cfg80211 479279 0
rfkill 21508 1 cfg80211
8192cu 556175 0
bcm2835_gpiomem 3703 0
snd_bcm2835 22502 0
bcm2835_rng 2207 0
snd_pcm 92829 1 snd_bcm2835
snd_timer 22164 1 snd_pcm
snd 67534 3 snd_bcm2835,snd_timer,snd_pcm
uio_pdrv_genirq 3526 0
uio 10078 1 uio_pdrv_genirq
ipv6 358702 24
Conteúdo de ifconfig
:
$ ifconfig
eth0 (...omitted for brevity...)
lo (...omitted for brevity...)
wlan0 Link encap:Ethernet HWaddr 00:f1:40:41:03:a7
inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::c085:fb91:3e68:a44d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:38 errors:0 dropped:61421 overruns:0 frame:0
TX packets:62 errors:0 dropped:4 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19804518 (18.8 MiB) TX bytes:1192972 (1.1 MiB)
Atualização em 10/8/2016 : por sugestão Rui F Ribero abaixo, eu tentei usar drivers não oficiais . Resultados:
-
Este erro: ioctl[SIOCSIWENCODEEXT]: Invalid argument
agora desapareceu! No entanto ioctl[SIOCSIWAP]: Operation not permitted
ainda está presente.
-
wpa_supplicant
ainda não funciona com o driver nl80211
agora não oficial. Só que desta vez a saída tem uma nova mensagem começando com deinit :
$ sudo ./wpa_supplicant -D nl80211 -i wlan0 -c wpa_supplicant.conf
Successfully initialized wpa_supplicant
nl80211: Driver does not support authentication/association or connect commands
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
wlan0: Failed to initialize driver interface