erro de WiFi wpa_supplicant

14

Eu tenho um problema com o programa wpa_supplicant .

Meu problema é sobre o uso de wpa_cli , que precisa de wpa_supplicant . Erro ao executar sudo wpa_cli :

Could not connect to wpa_supplicant

O início manual de wpa_supplicant me dá alguns erros:

sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=0   ### NEW!!!

Config dhcp

## /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {
   range 192.168.2.2 192.168.2.9;
   option domain-name-servers 192.168.1.1;
   option domain-name "home";
   option routers 192.168.2.1;
}

Config wpa_supplicant

## /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
# network={
#   ssid="__SSID__"
#   key_mgmt=WPA-PSK
#   psk="__PASS__"
#   id_str="home"
# }

Config hostapd

## /etc/hostapd/hostapd.conf
interface=wlan0
driver=rtl871xdrv
ieee80211n=1
ssid=__SSID__
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=__PASS__
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

# EDIT
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

Resultados de ifconfig / iwconfig

wlan0   Link encap:Ethernet  HWaddr c0:4a:00:17:40:fd
          inet adr:192.168.2.1  Bcast:192.168.2.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     IEEE 802.11bgn  ESSID:"__SSID__"  Nickname:"<WIFI@REALTEK>"
          Mode:Master  Frequency:2.412 GHz  Access Point: C0:4A:00:17:40:FD
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Como posso iniciar wpa_supplicant sem erros e ter wpa_cli connect?

    
por Val 07.02.2014 / 17:59

2 respostas

4

Por fim, os erros por escrito não afetaram o sistema.

Meu arquivo /etc/network/interfaces parece (somente parte wlan):

iface wlan0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

Com essa configuração, posso usar o comando sudo wpa_cli sem erro!
Graças a peterph enfim :)!

    
por 10.02.2014 / 19:47
7

Os erros wpa_supplicant produz não estão necessariamente relacionados ao problema de conexão wpa_cli . O problema aqui é que wpa_cli é incapaz de estabelecer conexão com wpa_supplicant - incapaz de abrir o soquete de controle. Isso pode ter várias causas:

  1. usuário executando wpa_cli não consegue acessar o soquete dado, por exemplo em wpa_supplicant.conf :

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    Você precisa verificar se os arquivos desse diretório estão acessíveis ao usuário com o qual wpa_cli é executado. Isso significa que não apenas os soquetes são rw - todos os diretórios acima devem ser pelo menos x , o último provavelmente também r , de forma que wpa_clie possa listar todos os soquetes disponíveis.

  2. Ao contrário de wpa_supplicant , wpa_cli não é compatível com DBus. Certifique-se de que wpa_supplicant não esteja escutando somente através do DBus. A julgar pelos arquivos de configuração, isso provavelmente não é o seu caso.

  3. wpa_supplicant não está em execução (conforme comentários abaixo). Isso indicaria que, de fato, pode haver uma conexão entre as mensagens de erro emitidas por wpa_supplicant e a impossibilidade de se conectar a ele. Para certificar-se de executá-lo no modo detalhado ( -d ou mesmo -dd ) e não daemonizing (que é o padrão - apenas certifique-se de não usar a opção -B ). Você também pode observar a tomada de controle, por exemplo:

    watch -n 0.1 "ls -al /var/run/wpa_supplicant"
    

    Lembre-se de que a maioria desses comandos precisa ser executada com privilégios de root, portanto, para depuração, pode ser mais fácil apenas su - root permanentemente, em vez de prefixar cada comando com sudo .

por 07.02.2014 / 21:46