Как подключиться к WiFi без перезагрузки?


17

Я просто вставил только что прошитую карту (с 2017-09-07-raspbian-stretch-lite) в Raspberry Pi Zero W.

Затем я добавил эти строки:

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

к /etc/wpa_supplicant/wpa_supplicant.conf.

Введенные данные были на 100% правильными. Я подождал 10 минут и проверил: он не подключился автоматически.

Затем я вернулся к официальным инструкциям и побежал, sudo wpa_cli reconfigureкак предложено. Тот же результат: он не подключился.

Затем я попытался вручную перезапустить wlan0:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

Все тот же: не подключается.

Затем я сделал перезагрузку, и он мгновенно автоматически подключился.

Это так расстраивает. Такое ощущение, что официальные инструкции вообще не тестируются.

Так чего здесь не хватает, как это можно сделать без перезагрузки?


1
Я тоже это заметил. Очень расстраивает!
Квинтин

Ответы:


19

Я тоже видел этот вопрос с моим RaspberryPi Нулевой W используя 2017-09-07-raspbian-stretch-lite.

Обновление wpa_supplicant.confфайла так sudo wpa_cli reconfigureи sudo systemctl restart wpa_supplicantне сработало. Мой Пи не получит IP wlan0.

Я заметил, что wpa_supplicantпорождается как ребенок dhcpcdслужбы.

$ sudo systemctl status

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

Я обнаружил, что использование daemon-reload и перезапуск dhcpcd.serviceустройства работает для меня.

sudo systemctl daemon-reload
sudo systemctl restart dhcpcd

Это кажется , что вы должны сначала запустить sudo systemcl daemon-reloadперед перезапуском dhcpcd. Я не совсем уверен, почему, но похоже, что это daemon-reloadпредупредит сервисные единицы для изменения файла конфигурации.

Если я перезапустился dhcpcdбез запуска daemon-reload, я получил это предупреждение. Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units., но он перезапустился просто отлично с или без daemon-reload. Поэтому я не думаю, что это жизненно важно, но, вероятно, хорошая практика.



4

После добавления сети в wpa_supplicant.conf:

Запустите cli
(здесь используются 3 команды: interface, перенастроить и выйти)

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

Затем убедитесь, что у вас есть 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

Я использую Raspberry Pi 3 с, 2018-03-13-raspbian-stretchи моя проблема незначительно отличается, но я нашел решение, так что я думаю, что это может помочь вам тоже.

Я загружаю RPi с /etc/wpa_supplicant/wpa_supplicant.confнастройкой, чтобы у меня был установлен один SSID и пароль, и RPi автоматически подключается к настроенному SSID при загрузке. Кроме того, я хотел изменить /etc/wpa_supplicant/wpa_supplicant.conf с помощью сценария автоматической обработки текста, а затем перезагрузить настройки Wi-Fi .

Немного покопавшись, я нашел этот пост на официальных форумах Raspberry Pi и обнаружил внутри себя этот набор команд, который работал, по крайней мере, для меня:

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

Я не знаю, как и почему они работают, поэтому никаких гарантий ...


Это единственный ответ, который сработал для меня, в том числе и на Pi3 с растяжкой - спасибо!
smörkex

2

Вы должны запустить эту командную строку, чтобы перезагрузить сеть

/etc/init.d/networking restart


3
Не в растяжку!
MatsK

6
В идеале не в Джесси, так как он также основан на systemd (не SysV); эта команда анахронична и в лучшем случае поддерживается для обратной совместимости.
Златовласка

Нет, это не работает. Вы должны перенастроить wpa supplicant и перезапустить dhcpcd
Hola Soy Edu Feliz Navidad

0

Вы можете использовать инструмент NetworkManager, который использует nmcliкоманды для настройки профиля подключения.

Установите его, используя apt:

sudo apt-get install network-manager

Закомментируйте wlanи Ethernetинтерфейсы в /etc/network/interfaces.

Перезагрузите устройство.

Тогда используйте:

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

подключиться к сети Wi-Fi.


Пожалуйста, не советуйте смешивать другой сетевой инструмент с уже тремя существующими (dhcpcd, Debian network ifupdown, systemd-networkd). Диспетчер сети не поддерживается Raspbian, поэтому вы должны настроить все вручную. Сначала это конфликтует с dhcpcdи ifupdown. Вы не уважаете это в своем ответе. Тогда в Raspbian Stretch нет записей, /etc/network/interfacesпоэтому комментировать нечего.
Инго

Да, вы правы, приятель, они конфликтуют с сетью с другими dhcpcd и ifupdown. Но NetworkManager, кажется, единственный способ сделать это, следуя приведенным выше советам. У raspbian lite версий Raspberry pi нет другого выбора, кроме nmcli. Я не пробовал его на Stretch, но во время установки сам сетевой менеджер выдаст предупреждение о конфликте. Если у вас есть решение, я всегда готов изучить этот метод.
Ритурадж Раутела

Просто с помощью, sudo systemctl stop wpa_supplicant@wlan0.serviceи sudo systemctl start wpa_supplicant@wlan0.serviceвы можете остановить и запустить соединение WiFi, как вам нравится. Как это сделать, вы можете посмотреть на Настройка Raspberry Pi в качестве точки доступа - простой способ или Точка доступа в качестве повторителя WiFi, опционально с мостом или Переключение между клиентом Wi-Fi и точкой доступа без перезагрузки или других подобных решений.
Инго

0

У меня была похожая проблема с Raspbian GNU / Linux 10 (бастер). Я внес изменения в wpa_supplicant.conf и запустил

# wpa_cli -i wlan0 reconfigure

Но это не сработало полностью.

# dhclient -v

заставил это работать.

Я нашел информацию на https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhclient

Выход из

$ 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.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.