Warum erzeugt wpa_cli den Fehler "Verbindung zu wpa_supplicant konnte nicht hergestellt werden: wlan0 - erneut versuchen"?

9

Ich 4.9.13-4-ARCH #1 SMP Sat Mar 11 14:16:01 MST 2017 armv7l GNU/Linuxlaufe und verwende offensichtlich systemd-networkd für das Netzwerk in Verbindung mit wpa_supplicant.

Laufen wpa_cli -i wlan0:

wpa_cli v2.6
Copyright (c) 2004-2016, Jouni Malinen <[email protected]> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.



Interactive mode

Could not connect to wpa_supplicant: wlan0 - re-trying

Laufen strace wpa_cli -i wlan0

Verdächtige Linien

bind(3, {sa_family=AF_UNIX, sun_path="/tmp/wpa_ctrl_485-2"}, 110) = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/wpa_supplicant/wlan0"}, 110) = -1 ENOENT (No such file or directory)
close(3)
Jonathan Komar
quelle

Antworten:

8

Sie müssen den Speicherort der Steuerschnittstelle in der /etc/wpa_supplicant/wpa_supplicant-wlan0.confDatei explizit angeben .

ctrl_interface=/run/wpa_supplicant
update_config=1

Dadurch wird ein wpa_supplicantVerzeichnis in zwei flüchtigen Verzeichnissen hinzugefügt:

  1. /run
  2. /var/run.

Eine Beschreibung von /runund /var/runfinden Sie unter https://unix.stackexchange.com/a/175349/33386 . Vergessen Sie nicht, wpa_cli als root auszuführen oder hinzuzufügen ctrl_interface_group, damit Benutzer dieser Gruppe wpa_cli aufrufen können.

ctrl_interface=/run/wpa_supplicant # set location of the control socket 
ctrl_interface_group=admin # group admin can use wpa_cli
update_config=1 # allows saving changes to file that are made in cli

Anscheinend ist der Standardspeicherort nicht auf den tatsächlichen Speicherort eingestellt. ( /var/run/wpa_supplicant) Sie müssen es manuell in Arch Linux und vielleicht in anderen einstellen.


Anmerkungen

Der GROUP=netadminParameter funktioniert unter Arch Linux nicht wie bei anderen Distributionen (oder älteren Versionen?). Wenn Sie dies verwenden, wird es in den Pfad von aufgenommen, ctrl_interface da es Leerzeichen verschlingt .

Jonathan Komar
quelle
Nur um es noch einmal zu bestätigen. Sie müssen die ctrl_interfaceDirektive einschließen , die die Wirkung von wpa_supplicant-Spawning-Sockets hat, die Verbindungen empfangen. Sagen , wpa_clidie rechte Buchse Pfad ist für sich allein nicht ausreicht
cdosborn