WiFi-Fehler wpa_supplicant

14

Ich habe ein Problem mit dem wpa_supplicantProgramm.

Mein Problem ist über die Verwendung wpa_cliwelche Bedürfnisse wpa_supplicant. Fehler beim Ausführen sudo wpa_cli:

Could not connect to wpa_supplicant

Der manuelle Start von wpa_supplicantgibt mir einige Fehler:

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

Ergebnisse von 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

Wie kann ich wpa_supplicantfehlerfrei starten und mich wpa_cliverbinden lassen?

Val
quelle

Antworten:

8

Die aufgetretenen Fehler wpa_supplicanthängen nicht unbedingt mit Ihrem wpa_cliVerbindungsproblem zusammen. Das Problem hierbei ist, dass wpa_clikeine Verbindung hergestellt werden kann wpa_supplicant- die Steuerbuchse kann nicht geöffnet werden. Dies kann mehrere Ursachen haben:

  1. Benutzer, der ausgeführt wpa_cliwird, kann nicht auf den Socket zugreifen, der z. B . wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    Sie müssen überprüfen, ob die Dateien in diesem Verzeichnis für den Benutzer zugänglich sind, unter dem sie ausgeführt werden wpa_cli. Das bedeutet nicht nur, dass die Sockets sind rw- es müssen mindestens alle oben genannten Verzeichnisse sein x, das letzte wahrscheinlich auch, rdamit wpa_cliealle verfügbaren Sockets aufgelistet werden können.

  2. Im Gegensatz zu wpa_supplicant, wpa_cliist nicht DBus fähig. wpa_supplicantStellen Sie sicher, dass Sie nicht nur über DBus hören. Gemessen an Ihren Konfigurationsdateien ist dies wahrscheinlich nicht der Fall.

  3. wpa_supplicantläuft nicht (wie in den Kommentaren unten angegeben). Dies würde darauf hinweisen, dass tatsächlich eine Verbindung zwischen den von ausgegebenen Fehlermeldungen besteht wpa_supplicantund keine Verbindung hergestellt werden kann. Um sicherzustellen, dass es im ausführlichen Modus ( -doder sogar -dd) ausgeführt und nicht dämonisiert wird (dies ist die Standardeinstellung - stellen Sie nur sicher, dass Sie die -BOption nicht verwenden ). Sie können auch auf die Steuerbuchse achten, zB:

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

    Denken Sie daran, dass die meisten dieser Befehle mit Root-Rechten ausgeführt werden müssen, sodass es für das Debuggen möglicherweise einfacher ist, nur su - rootpermanent zu arbeiten, als jedem Befehl ein Präfix zu setzen sudo.

peterph
quelle
Danke für deine Antwort. Zu deinem ersten Punkt muss ich dir sagen, dass die Datei /var/run/wpa_supplicantnicht existiert. Denkst du, das ist das Problem?
Val
1
Es wird wpa_supplicantbei Bedarf erstellt. Wenn es nicht vorhanden ist, während es ausgeführt wird, wird Option 2 plötzlich wahrscheinlicher. :)
Peterph
Okay, aber ich weiß nicht wirklich , wie Sie Ihre Option 2 anwenden .. Sie sepaking über eine „Hauptanwendung“, aber ich bin nur mit den Befehlen ich sprach über wpa_cliund wpa_supplicant, und ich weiß nicht , wie zu vermeiden dbus only .. Ich musste dir sagen, dass rfkill listes mir auch Fehler gibt (wenn es damit zusammenhängt) "Kann RFKILL-Gerät nicht öffnen: Keine solche Datei oder Verzeichnis" .. Ich bin wirklich verloren
Val
1
Hauptanwendung = wpa_supplicant- Ich habe es behoben, es war in der Tat ein bisschen irreführend. Socket: Überprüfen Sie lsof | grep wpa_supplicant(wenn Sie es laufen lassen) - es sollte Ihnen den offenen Socket zeigen. Wie für rfkill- ist /dev/rfkillfür den Benutzer zugänglich, der ausgeführt wird rfkill?
Peterph
Ich habe den lsof | grep wpa_supplicantBefehl ausprobiert , aber es wird kein Ergebnis zurückgegeben. Übrigens denke ich, dass mein Problem darin besteht, dass wpa_supplicantes nicht startet. Ich habe es mit a versucht ps -e | grep wpaund es ist auch leer. Über rfkill, /dev/rfkillexistiert nicht für mich ..
Val
5

Schließlich hatten die geschriebenen Fehler keinen Einfluss auf das System.

Meine /etc/network/interfacesDatei sieht aus wie (nur WLAN-Teil):

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

Mit dieser Konfiguration kann ich den sudo wpa_cliBefehl ohne Fehler verwenden! Trotzdem
danke an peterph :)!

Val
quelle
Ich habe stundenlang danach gesucht. Die letzte Zeile hat mein Problem behoben. Vielen Dank.
Mehrmoudi