Làm thế nào để kết nối với WiFi mà không cần khởi động lại?


17

Tôi chỉ cần đặt một thẻ mới được flashed (với 2017-09-07-raspbian-Stretch-lite) vào Raspberry Pi Zero W.

Sau đó, tôi đã thêm những dòng này:

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

để /etc/wpa_supplicant/wpa_supplicant.conf.

Dữ liệu được nhập chính xác 100%. Tôi đợi 10 phút và kiểm tra: Nó không tự động kết nối.

Sau đó, tôi trở lại các hướng dẫn chính thức và chạy sudo wpa_cli reconfigurenhư đề xuất. Kết quả tương tự: Nó không kết nối.

Sau đó, tôi đã cố gắng tự khởi động lại wlan0:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

Vẫn như vậy: Không kết nối.

Sau đó, tôi đã khởi động lại và nó tự động kết nối.

Thật là bực bội. Cảm giác như các hướng dẫn chính thức không được thử nghiệm gì cả.

Vì vậy, những gì còn thiếu ở đây, làm thế nào điều này có thể được thực hiện mà không cần khởi động lại?


1
Tôi cũng đã nhận thấy điều này. Rất bực bội!
Quintin Balsdon

Câu trả lời:


19

Tôi cũng đã thấy vấn đề này với RaspberryPi Zero W của tôi bằng cách sử dụng 2017-09-07-raspbian-stretch-lite.

Cập nhật wpa_supplicant.conftệp sudo wpa_cli reconfiguresudo systemctl restart wpa_supplicantkhông hoạt động. Pi của tôi sẽ không nhận được IP wlan0.

Tôi nhận thấy rằng wpa_supplicantđược sinh ra như một đứa trẻ của dhcpcddịch vụ.

$ sudo systemctl status

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

Tôi thấy rằng sử dụng daemon-tải lại và khởi động lại dhcpcd.serviceđơn vị làm việc cho tôi.

sudo systemctl daemon-reload
sudo systemctl restart dhcpcd

vẻ như trước tiên bạn nên chạy sudo systemcl daemon-reloadtrước khi khởi động lại dhcpcd. Tôi không hoàn toàn chắc chắn tại sao, nhưng có vẻ như các daemon-reloadđơn vị dịch vụ sẽ cảnh báo thay đổi tập tin.

Nếu tôi khởi động lại dhcpcdmà không chạy daemon-reload, tôi nhận được cảnh báo này. Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units., nhưng nó khởi động lại tốt chỉ có hoặc không có daemon-reload. Vì vậy, tôi không nghĩ nó quan trọng, nhưng có lẽ là một thực hành tốt.



4

Sau khi thêm một mạng trong wpa_supplicant.conf:

Chạy cli
(3 lệnh được sử dụng ở đây: giao diện, cấu hình lại và thoát)

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

Sau đó xác minh rằng bạn có một địa chỉ 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

Tôi đang sử dụng Raspberry Pi 3 2018-03-13-raspbian-stretchvà vấn đề của tôi hơi khác một chút, nhưng tôi đã tìm ra giải pháp, vì vậy tôi nghĩ điều này cũng có thể giúp bạn.

Tôi khởi động RPi với /etc/wpa_supplicant/wpa_supplicant.confthiết lập để tôi có một SSID và mật khẩu được đặt và RPi tự động kết nối với SSID được định cấu hình khi khởi động. Ngoài ra, tôi muốn thay đổi /etc/wpa_supplicant/wpa_supplicant.conf bằng cách sử dụng một số tập lệnh xử lý văn bản tự động và sau đó tải lại cài đặt wifi .

Sau khi tìm kiếm xung quanh một chút, tôi tìm thấy bài đăng này trên các diễn đàn chính thức của Raspberry Pi và tìm thấy bộ lệnh này bên trong ít nhất có hiệu quả với tôi:

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

Tôi không biết làm thế nào hoặc tại sao họ làm việc, vì vậy không có gì đảm bảo ...


Đây là câu trả lời duy nhất có hiệu quả với tôi, cũng trên Pi3 với độ raspian - cảm ơn!
smorkex

2

Bạn nên chạy dòng lệnh này để khởi động lại mạng

/etc/init.d/networking khởi động lại


3
Không căng!
MatsK

6
Lý tưởng nhất là không phải trong jessie, vì nó cũng dựa trên systemd (không phải SysV); lệnh đó là lỗi thời và được hỗ trợ tốt nhất để tương thích ngược.
goldilocks

Không, nó không hoạt động. Bạn phải cấu hình lại wpa thay thế và khởi động lại dhcpcd
Hola Soy Edu Feliz Navidad

0

Bạn có thể sử dụng công cụ NetworkManager, sử dụng nmclicác lệnh để thiết lập cấu hình kết nối.

Cài đặt nó bằng apt:

sudo apt-get install network-manager

Nhận xét wlanEthernetgiao diện trong /etc/network/interfaces.

Khởi động lại thiết bị.

Sau đó sử dụng:

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

để kết nối với mạng Wi-Fi.


Vui lòng không khuyên kết hợp một công cụ mạng khác với ba công cụ đã có sẵn (dhcpcd, ifupdown Debian, systemd-networkd). Trình quản lý mạng không được Raspbian hỗ trợ, do đó bạn phải định cấu hình tất cả bằng tay. Đầu tiên, nó xung đột với dhcpcdifupdown. Bạn không tôn trọng nó trong câu trả lời của bạn. Sau đó, trong Raspbian Stretch không có mục nào trong /etc/network/interfacesnên không có gì để bình luận.
Ingo

Vâng, bạn là bạn thân, họ xung đột với mạng với dhcpcd và ifupdown khác. Nhưng NetworkManager dường như là cách duy nhất để làm điều này, sau khi làm theo những lời khuyên trên. Các phiên bản raspbian của Raspberry pi không có lựa chọn nào khác ngoài nmcli. Tôi đã không thử nó trên Stretch nhưng, trong quá trình cài đặt, chính trình quản lý mạng sẽ đưa ra cảnh báo về xung đột. Nếu bạn có một giải pháp tôi luôn sẵn sàng học phương pháp đó.
Rituraj Rautela

Chỉ cần sudo systemctl stop wpa_supplicant@wlan0.servicesudo systemctl start wpa_supplicant@wlan0.servicebạn có thể dừng và bắt đầu kết nối WiFi như bạn muốn. Cách thực hiện, bạn có thể xem Thiết lập Raspberry Pi làm điểm truy cập - cách dễ dàng hoặc Điểm truy cập dưới dạng bộ lặp WiFi, tùy chọn với cầu nối hoặc Chuyển đổi giữa máy khách wifi và điểm truy cập mà không cần khởi động lại hoặc các giải pháp tương tự khác.
Ingo

0

Tôi gặp vấn đề tương tự với Raspbian GNU / Linux 10 (buster). Tôi đã thực hiện các thay đổi trong wpa_supplicant.conf và chạy

# wpa_cli -i wlan0 reconfigure

Nhưng nó không hoạt động trên tất cả các cách.

# dhclient -v

làm cho nó hoạt động.

Tôi tìm thấy thông tin tại https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhclient

Đầu ra từ

$ 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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.