Erreur WiFi wpa_supplicant

14

J'ai un problème avec le wpa_supplicantprogramme.

Mon problème concerne l'utilisation de wpa_cliquels besoins wpa_supplicant. Erreur lors de l'exécution sudo wpa_cli:

Could not connect to wpa_supplicant

Le démarrage manuel de wpa_supplicantme donne quelques erreurs:

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

Résultats 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

Comment puis-je commencer wpa_supplicantsans erreurs et me wpa_cliconnecter?

Val
la source

Réponses:

8

Les erreurs wpa_supplicantproduites ne sont pas nécessairement liées à votre wpa_cliproblème de connexion. Le problème ici est qu'il wpa_cliest impossible d'établir une connexion avec wpa_supplicant- impossible d'ouvrir la prise de contrôle. Cela peut avoir plusieurs causes:

  1. l'utilisateur en cours d'exécution wpa_cline peut pas accéder au socket indiqué par exemple dans wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    Vous devez vérifier que les fichiers de ce répertoire sont accessibles à l'utilisateur sous lequel wpa_clis'exécute. Cela signifie non seulement que les sockets sont rw- tous les répertoires ci-dessus doivent être au moins x, le dernier probablement aussi rpour wpa_cliepouvoir lister toutes les sockets disponibles.

  2. Contrairement à wpa_supplicant, wpa_clin'est pas capable DBus. Assurez-vous de wpa_supplicantne pas écouter uniquement via DBus. A en juger par vos fichiers de configuration, ce n'est probablement pas votre cas.

  3. wpa_supplicantne fonctionne pas (selon les commentaires ci-dessous). Cela indiquerait qu'il pourrait en effet y avoir une connexion entre les messages d'erreur émis par wpa_supplicantet ne pouvant pas s'y connecter. Pour vous assurer de l'exécuter en mode détaillé ( -dou même -dd) et sans démonétisation (ce qui est la valeur par défaut - assurez-vous simplement que vous n'utilisez pas l' -Boption). Vous pouvez également faire attention à la prise de contrôle, par exemple:

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

    N'oubliez pas que la plupart de ces commandes doivent être exécutées avec les privilèges root, donc pour le débogage, il pourrait être plus facile de simplement su - rootdurer plutôt que de préfixer chaque commande avec sudo.

peterph
la source
Merci pour votre réponse. À propos de votre premier point, je dois vous dire que le fichier /var/run/wpa_supplicantn'existe pas. Pensez-vous que c'est le problème?
Val
1
Il est créé par en wpa_supplicantcas de besoin. Si elle n'existe pas pendant son exécution, l'option 2 devient soudainement plus probable. :)
peterph
D'accord, mais je ne sais pas vraiment comment appliquer votre option 2 .. Vous parlez d'une "application principale", mais j'utilise simplement les commandes dont j'ai parlé wpa_cliet wpa_supplicant, et je ne sais pas comment éviter dbus uniquement .. Je devais vous dire que cela rfkill listme donne aussi des erreurs (si c'est lié) "Impossible d'ouvrir le périphérique RFKILL: aucun fichier ou répertoire" .. Je suis vraiment perdu
Val
1
main applicatin = wpa_supplicant- Je l'ai corrigé, c'était un peu trompeur en effet. Socket: vérifiez lsof | grep wpa_supplicant(lorsque vous l'avez en cours d'exécution) - il devrait vous montrer la socket ouverte. Quant à rfkill- est /dev/rfkillaccessible pour l'utilisateur en cours d'exécution rfkill?
peterph
J'ai essayé la lsof | grep wpa_supplicantcommande, mais elle ne renvoie aucun résultat. Au fait, je pense que mon problème c'est que ça wpa_supplicantne démarre pas .. J'ai essayé un ps -e | grep wpaet c'est vide aussi. À propos rfkill, /dev/rfkilln'existe pas pour moi ..
Val
5

Enfin, les erreurs écrites n'ont pas affecté le système.

Mon /etc/network/interfacesfichier ressemble (seulement une partie 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

Avec cette config, je peux utiliser la sudo wpa_clicommande sans erreur!
Merci à Peter quand même :)!

Val
la source
Je cherchais ça depuis des heures. La dernière ligne a résolu mon problème. Merci.
mehrmoudi