Wie kann ich ohne Neustart eine WLAN-Verbindung herstellen?


16

Ich habe gerade eine frisch geflashte Karte (mit 2017-09-07-raspbian-stretch-lite) in einen Raspberry Pi Zero W gesteckt.

Dann habe ich diese Zeilen hinzugefügt:

network={
    ssid="myWifiSsid"
    psk="myWifiPassword"
}

zu /etc/wpa_supplicant/wpa_supplicant.conf.

Die eingegebenen Daten waren zu 100% korrekt. Ich wartete 10 Minuten und überprüfte: Es stellte nicht automatisch eine Verbindung her.

Dann ging ich zurück zu den offiziellen Anweisungen und lief sudo wpa_cli reconfigurewie vorgeschlagen. Gleiches Ergebnis: Es wurde keine Verbindung hergestellt.

Dann habe ich versucht, wlan0 manuell neu zu starten:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

Immer noch das selbe: Stellt keine Verbindung her.

Dann habe ich einen Neustart durchgeführt und es sofort automatisch verbunden.

Es ist so frustrierend. Es fühlt sich an, als ob die offiziellen Anweisungen überhaupt nicht getestet wurden.

Was fehlt hier also, wie geht das ohne Neustart?


1
Das ist mir auch aufgefallen. Sehr frustrierend!
Quintin Balsdon

Antworten:


19

Auch ich habe dieses Problem bei meinem RaspberryPi Zero W festgestellt 2017-09-07-raspbian-stretch-lite.

Aktualisieren der wpa_supplicant.confDatei sudo wpa_cli reconfigure, und sudo systemctl restart wpa_supplicanthat nicht funktioniert. Mein Pi würde keine IP bekommen wlan0.

Mir ist aufgefallen, dass wpa_supplicantdas als Kind des dhcpcdDienstes hervorgebracht wird.

$ sudo systemctl status

└─dhcpcd.service
  ├─890 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
  └─912 /sbin/dhcpcd -q -w

Ich fand, dass das Verwenden von Daemon-Reload und Neustarten der dhcpcd.serviceEinheit für mich funktioniert.

sudo systemctl daemon-reload
sudo systemctl restart dhcpcd

Es sieht so aus, als ob Sie zuerst ausführen sollten, sudo systemcl daemon-reloadbevor Sie neu starten dhcpcd. Ich bin nicht ganz sicher, warum, aber es scheint, dass das daemon-reloadService-Einheiten auf Konfigurationsdateiänderungen hinweist.

Wenn ich neu gestartet habe, dhcpcdohne zu laufen daemon-reload, wurde ich gewarnt. Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units., aber es startete gut mit oder ohne daemon-reload. Ich denke nicht, dass es wichtig ist, aber wahrscheinlich eine gute Übung.



3

Nach dem Hinzufügen eines Netzwerks in wpa_supplicant.conf:

Führen Sie die CLI aus
(3 Befehle werden hier verwendet: Interface, Reconfigure und Quit)

root@raspberrypi:~# wpa_cli
wpa_cli v2.4
Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributors

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


Selected interface 'p2p-dev-wlan0'

Interactive mode

<3>CTRL-EVENT-SCAN-RESULTS
> interface wlan0
Connected to interface 'wlan0.
> reconfigure
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>Trying to associate with XX:Xa:aX:Xa:XX:Xa (SSID='wifissid' freq=2437 MHz)
<3>Associated with XX:Xa:aX:Xa:XX:Xa
<3>WPA: Key negotiation completed with XX:Xa:aX:Xa:XX:Xa [PTK=CCMP GTK=CCMP]
<3>CTRL-EVENT-CONNECTED - Connection to XX:Xa:aX:Xa:XX:Xa completed [id=0 id_str=]
> quit

Stellen Sie dann sicher, dass Sie eine IP-Adresse haben.

root@raspberrypi:~# ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.XX.XXX  netmask 255.255.255.0  broadcast 10.10.XX.XXX
        inet6 fe80::aab2:d96e:d3ef:836d  prefixlen 64  scopeid 0x20<link>
        ether bX:XX:Xb:XX:Xe:aX  txqueuelen 1000  (Ethernet)
        RX packets 162  bytes 31128 (30.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 75  bytes 11385 (11.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3

Ich verwende einen Raspberry Pi 3 mit 2018-03-13-raspbian-stretchund mein Problem ist geringfügig anders, aber ich habe eine Lösung gefunden, daher denke ich, dass dies auch Ihnen helfen kann.

Ich starte das RPi mit setup /etc/wpa_supplicant/wpa_supplicant.conf, so dass ich eine SSID und ein Passwort festgelegt habe und das RPi beim Booten automatisch eine Verbindung mit der konfigurierten SSID herstellt. Außerdem wollte ich mithilfe eines automatisierten Textverarbeitungsskripts Änderungen vornehmen/etc/wpa_supplicant/wpa_supplicant.conf und dann die WLAN-Einstellungen neu laden .

Nachdem ich mich ein bisschen umgesehen hatte, fand ich diesen Beitrag in den offiziellen Raspberry Pi-Foren und fand darin die folgenden Befehle, die zumindest für mich funktionierten:

sudo dhclient -r wlan0
sudo ifdown wlan0
sudo ifup wlan0
sudo dhclient -v wlan0

Ich weiß nicht wie oder warum sie funktionieren, also keine Garantie ...


Dies ist die einzige Antwort, die bei mir funktioniert hat, auch bei Pi3 mit Raspian Stretch - danke!
Smörkex

2

Sie sollten diese Befehlszeile ausführen, um das Netzwerk neu zu starten

/etc/init.d/networking restart


3
Nicht in Stretch!
MatsK

6
Idealerweise auch nicht in jessie, da es auch auf systemd (nicht SysV) basiert; Dieser Befehl ist anachronistisch und wird aus Gründen der Abwärtskompatibilität bestenfalls unterstützt.
Goldlöckchen

Nein, das geht nicht. Sie müssen wpa supplicant neu konfigurieren und dhcpcd
Hola Soy Edu Feliz Navidad

0

Sie können das NetworkManager-Tool verwenden, das nmcliBefehle zum Einrichten eines Verbindungsprofils verwendet.

Installiere es mit apt:

sudo apt-get install network-manager

Auskommentieren wlanund EthernetInterfaces ein /etc/network/interfaces.

Starte das Gerät neu.

Dann benutze:

sudo nmcli device wifi con "SSID" password "PSK" 

um eine Verbindung zu einem Wi-Fi-Netzwerk herzustellen.


Bitte raten Sie nicht, ein anderes Netzwerk-Tool mit den bereits vorhandenen drei zu mischen (dhcpcd, Debian-Netzwerk ifupdown, systemd-networkd). Der Netzwerkmanager wird von Raspbian nicht unterstützt, daher müssen Sie alles manuell konfigurieren. Zuerst widerspricht es dhcpcdund ifupdown. Sie respektieren es nicht in Ihrer Antwort. Dann gibt es in Raspbian Stretch keine Einträge, /etc/network/interfacessodass es nichts zu kommentieren gibt.
Ingo

Ja, du hast recht, Kumpel, sie stehen in Konflikt mit dem Netzwerk mit anderen DHCP und ifupdown. Aber NetworkManager scheint die einzige Möglichkeit zu sein, nachdem Sie die obigen Anweisungen befolgt haben. Himbeer-Pi-Himbeer-Lite-Versionen haben keine andere Option als nmcli. Ich habe es noch nicht auf Stretch ausprobiert, aber während der Installation gibt der Netzwerkmanager selbst die Warnung vor Konflikten aus. Wenn Sie eine Lösung haben, bin ich immer bereit, diese Methode zu lernen.
Rituraj Rautela

Nur mit sudo systemctl stop wpa_supplicant@wlan0.serviceund können sudo systemctl start wpa_supplicant@wlan0.serviceSie eine WiFi-Verbindung stoppen und starten, wie Sie möchten. Wie es geht, erfahren Sie unter Einrichten eines Raspberry Pi als Zugangspunkt - der einfache Weg oder Zugangspunkt als WLAN-Repeater, optional mit Bridge oder Wechseln zwischen WLAN-Client und Zugangspunkt ohne Neustart oder ähnlichen Lösungen.
Ingo

0

Ich hatte ein ähnliches Problem mit Raspbian GNU / Linux 10 (Buster). Ich habe Änderungen in wpa_supplicant.conf vorgenommen und ausgeführt

# wpa_cli -i wlan0 reconfigure

Aber es hat nicht ganz geklappt.

# dhclient -v

hat es geschafft.

Ich fand Informationen unter https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhclient

Ausgabe von

$ sudo dhclient -v
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/a0:f3:c1:26:04:9c
Sending on   LPF/wlan0/a0:f3:c1:26:04:9c
Listening on LPF/eth0/b8:27:eb:1f:ab:6e
Sending on   LPF/eth0/b8:27:eb:1f:ab:6e
Sending on   Socket/fallback
DHCPREQUEST for 192.168.7.28 on wlan0 to 255.255.255.255 port 67
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPACK of 192.168.7.28 from 192.168.7.1
RTNETLINK answers: File exists
bound to 192.168.7.28 -- renewal in 1717 seconds.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.