Error de WiFi wpa_supplicant

14

Tengo un problema con el wpa_supplicantprograma

Mi problema es sobre el uso de lo wpa_clique necesita wpa_supplicant. Error cuando estoy ejecutando sudo wpa_cli:

Could not connect to wpa_supplicant

El inicio manual de wpa_supplicantme da algunos errores:

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

¿Cómo puedo comenzar wpa_supplicantsin errores y wpa_cliconectarme?

Val
fuente

Respuestas:

8

Los errores producidos wpa_supplicantno están necesariamente relacionados con su wpa_cliproblema de conexión. El problema aquí es que wpa_clino puede establecer una conexión con wpa_supplicant- no puede abrir el zócalo de control. Esto puede tener varias causas:

  1. el usuario en ejecución wpa_clino puede acceder al socket dado, por ejemplo, en wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    Debe verificar que los archivos en ese directorio sean accesibles para el usuario bajo el cual se wpa_cliejecuta. Eso significa que no solo son los sockets rw: todos los directorios anteriores deben ser al menos x, el último probablemente también rpara que wpa_cliepueda enumerar todos los sockets disponibles.

  2. A diferencia wpa_supplicant, wpa_clino es capaz de DBus. Asegúrese de wpa_supplicantno escuchar solo a través de DBus. A juzgar por sus archivos de configuración, este probablemente no sea su caso.

  3. wpa_supplicantno se ejecuta (según los comentarios a continuación). Esto indicaría que, de hecho, podría haber una conexión entre los mensajes de error emitidos por wpa_supplicanty no poder conectarse a él. Para asegurarte de ejecutarlo en modo detallado ( -do incluso -dd) y no demonizar (que es el valor predeterminado, solo asegúrate de no estar usando la -Bopción). También puede tener cuidado con el zócalo de control, por ejemplo:

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

    Recuerde que la mayoría de estos comandos deben ejecutarse con privilegios de root, por lo que para la depuración puede ser más fácil simplemente su - rootpermanentemente en lugar de prefijar cada comando sudo.

Peterph
fuente
Gracias por tu respuesta. Sobre su primer punto, debo decirle que el archivo /var/run/wpa_supplicantno existe ... ¿Cree que este es el problema?
Val
1
Se crea wpa_supplicantcuando es necesario. Si no existe mientras se está ejecutando, la opción 2 de repente se vuelve más probable. :)
Peter
Bien, pero realmente no sé cómo aplicar su opción 2 .. Se está separando de una "aplicación principal", pero solo estoy usando los comandos de los que hablé wpa_cliy wpa_supplicantno sé cómo evitar solo dbus ... Tenía que decirte que también rfkill listme está dando errores (si está relacionado) "No se puede abrir el dispositivo RFKILL: No existe tal archivo o directorio" ... Estoy realmente perdido
Val
1
main application = wpa_supplicant- Lo arreglé, fue un poco engañoso de hecho. Socket: compruebe lsof | grep wpa_supplicant(cuando lo tenga en funcionamiento): debería mostrarle el socket abierto. En cuanto a rfkill: ¿es /dev/rfkillaccesible para el usuario que ejecuta rfkill?
Peter
Intenté el lsof | grep wpa_supplicantcomando, pero no devuelve un resultado. Por cierto, creo que mi problema es que wpa_supplicantno está comenzando ... Intenté con ps -e | grep wpay también está vacío. Acerca de rfkill, /dev/rfkillno existe para mí ..
Val
5

Finalmente, los errores escritos no afectaron el sistema.

Mi /etc/network/interfacesarchivo se ve así (solo 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

¡Con esta configuración, puedo usar el sudo wpa_clicomando sin error!
Gracias a Peter de todos modos :)!

Val
fuente
Estuve buscando esto por horas. La última línea solucionó mi problema. Gracias.
mehrmoudi