Comment se connecter au WiFi sans redémarrer?


17

Je viens de mettre une carte fraîchement flashée (avec 2017-09-07-raspbian-stretch-lite) dans un Raspberry Pi Zero W.

J'ai ensuite ajouté ces lignes:

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

à /etc/wpa_supplicant/wpa_supplicant.conf.

Les données saisies étaient correctes à 100%. J'ai attendu 10 minutes et vérifié: il ne s'est pas connecté automatiquement.

Ensuite, je suis retourné aux instructions officielles et j'ai couru sudo wpa_cli reconfigurecomme suggéré. Même résultat: il ne s'est pas connecté.

Ensuite, j'ai essayé de redémarrer manuellement wlan0:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

Toujours le même: Is ne se connecte pas.

Ensuite, j'ai fait un redémarrage et il s'est instantanément connecté automatiquement.

C'est tellement frustrant. Il semble que les instructions officielles ne soient pas testées du tout.

Alors qu'est-ce qui manque ici, comment cela peut-il se faire sans redémarrage?


1
J'ai également remarqué cela. Très frustrant!
Quintin Balsdon

Réponses:


19

Moi aussi , vu ce problème avec mon Raspberry Pi Zéro W en utilisant 2017-09-07-raspbian-stretch-lite.

Mise à jour du wpa_supplicant.conffichier, sudo wpa_cli reconfigureet sudo systemctl restart wpa_supplicantn'a pas fonctionné. Mon Pi n'obtiendrait pas d'adresse IP wlan0.

J'ai remarqué que cela wpa_supplicantse produisait en tant qu'enfant du dhcpcdservice.

$ sudo systemctl status

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

J'ai trouvé que l'utilisation de daemon-reload et le redémarrage de l' dhcpcd.serviceunité fonctionnaient pour moi.

sudo systemctl daemon-reload
sudo systemctl restart dhcpcd

Il semble que vous devez d'abord exécuter sudo systemcl daemon-reloadavant de redémarrer dhcpcd. Je ne sais pas exactement pourquoi, mais il semble que le système daemon-reloadalertera les unités de service de la configuration des modifications de fichiers.

Si j'ai redémarré dhcpcdsans courir daemon-reload, j'ai reçu cet avertissement. Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units., mais il a redémarré très bien avec ou sans daemon-reload. Je ne pense donc pas que ce soit vital, mais probablement une bonne pratique.



4

Après avoir ajouté un réseau dans wpa_supplicant.conf:

Exécutez le cli
(3 commandes sont utilisées ici: interface, reconfigurer et quitter)

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

Vérifiez ensuite que vous disposez d'une adresse IP.

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

J'utilise un Raspberry Pi 3 avec 2018-03-13-raspbian-stretchet mon problème est légèrement différent, mais j'ai trouvé une solution, donc je pense que cela peut aussi vous aider.

Je démarre le RPi avec la /etc/wpa_supplicant/wpa_supplicant.confconfiguration afin d'avoir un SSID et un mot de passe définis et le RPi se connecte automatiquement au SSID configuré au démarrage. De plus, je voulais changer en /etc/wpa_supplicant/wpa_supplicant.conf utilisant un script de traitement de texte automatisé, puis recharger les paramètres wifi .

Après avoir cherché un peu, j'ai trouvé ce post sur les forums officiels de Raspberry Pi et j'ai trouvé cet ensemble de commandes à l'intérieur qui fonctionnait au moins pour moi:

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

Je ne sais pas comment ni pourquoi ils fonctionnent, donc aucune garantie ...


C'est la seule réponse qui a fonctionné pour moi, également sur Pi3 avec étirement raspian - merci!
smörkex

2

Vous devez exécuter cette ligne de commande pour redémarrer le réseau

/etc/init.d/networking restart


3
Pas en stretch!
MatsK

6
Idéalement pas en jessie non plus, car il est également basé sur systemd (pas SysV); cette commande est anachronique et au mieux prise en charge pour la compatibilité descendante.
goldilocks

Non, ça ne marche pas. Vous devez reconfigurer wpa supplicant et redémarrer dhcpcd
Hola Soy Edu Feliz Navidad

0

Vous pouvez utiliser l'outil NetworkManager, qui utilise des nmclicommandes pour configurer un profil de connexion.

Installez-le en utilisant apt:

sudo apt-get install network-manager

Commentaire wlanet Ethernetinterfaces /etc/network/interfaces.

Redémarrez l'appareil.

Utilisez ensuite:

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

pour se connecter à un réseau Wi-Fi.


Veuillez ne pas conseiller de mélanger un autre outil de mise en réseau avec les trois déjà existants (dhcpcd, ifupdown de mise en réseau Debian, systemd-networkd). Le gestionnaire de réseau n'est pas pris en charge par Raspbian, vous devez donc tout configurer à la main. Tout d'abord, il entre en conflit avec dhcpcdet ifupdown. Vous ne le respectez pas dans votre réponse. Ensuite, dans Raspbian Stretch, il n'y a aucune entrée /etc/network/interfaces, il n'y a donc rien à commenter.
Ingo

Oui, vous avez raison, ils sont en conflit avec le réseau avec d'autres dhcpcd et ifupdown. Mais NetworkManager semble être le seul moyen de le faire, après avoir suivi les conseils ci-dessus. Les versions raspbian lite de Raspberry pi n'ont pas d'autre option que nmcli. Je ne l'ai pas essayé sur Stretch mais, pendant l'installation, le gestionnaire de réseau lui-même donnera un avertissement de conflit. Si vous avez une solution, je suis toujours prêt à apprendre cette méthode.
Rituraj Rautela

Avec sudo systemctl stop wpa_supplicant@wlan0.serviceet sudo systemctl start wpa_supplicant@wlan0.servicevous pouvez arrêter et démarrer une connexion WiFi comme bon vous semble. Comment le faire, vous pouvez regarder Configuration d'un Raspberry Pi comme point d'accès - la manière simple ou Point d'accès comme répéteur WiFi, en option avec pont ou Basculer entre le client wifi et le point d'accès sans redémarrer ou d'autres solutions similaires.
Ingo

0

J'ai eu un problème similaire avec Raspbian GNU / Linux 10 (buster). J'ai apporté des modifications dans wpa_supplicant.conf et exécuté

# wpa_cli -i wlan0 reconfigure

Mais cela n'a pas fonctionné jusqu'au bout.

# dhclient -v

l'a fait fonctionner.

J'ai trouvé des informations sur https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhclient

Sortie de

$ 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.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.