Jak uzyskać połączenie Wi-Fi przy rozruchu?

30

Raspberry Pi Model B
OS: Raspbian

Używam mojego Pi bez głowy (obecnie przez bezpośrednie połączenie Ethernet). Mam klucz USB WiFi. Chciałbym, aby WiFi uruchomiło się podczas rozruchu i łączyło się za pomocą DHCP.

http://rpi.tnet.com/project/faqs/headlessportablewifi sugeruje, że nie muszę tak naprawdę zmieniać / etc / network / interfaces od domyślnych:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Skonfigurowałem /etc/wpa_supplicant/wpa_supplicant.conf dla mojej sieci.

Kiedy uruchamiam Pi, WiFi nie łączy się natychmiast. Ale jeśli włączę i uruchomię SSH sudo ifup wlan0, Pi połączy się dobrze.

Czy to nie jest coś, co Pi powinien zrobić we własnym procesie rozruchu? Mógłbym prawdopodobnie napisać komuś dotfile, żeby uruchomił to polecenie, ale chciałbym to zrobić we właściwy sposób (i dowiedzieć się, jak działa mój system).

Wiem, że mogę również ustawić statyczny adres IP dla każdej sieci Wi-Fi, z której chcę korzystać: jak skonfigurować wiele sieci Wi-Fi? . Ale wolałbym mieć proste rozwiązanie, w którym muszę wprowadzić tylko kilka wierszy na /etc/wpa_supplicant/wpa_supplicant.conf, aby dodać nową sieć WiFi.

Czego tu brakuje?

katriel
źródło

Odpowiedzi:

24

Domyślna konfiguracja Raspbian / etc / network / interfaces nie łączy się z Wi-Fi podczas rozruchu. Kluczowe linie strony man interfejsów to:

Linie rozpoczynające się od słowa „auto” służą do identyfikacji fizycznych interfejsów, które mają być wywoływane, gdy ifup jest uruchamiany z opcją -a. (Z tej opcji korzystają skrypty rozruchowe systemu.)

...

Linie rozpoczynające się od słowa „auto” służą do identyfikacji fizycznych interfejsów, które mają być wywoływane, gdy ifup jest uruchamiany z opcją -a. (Z tej opcji korzystają skrypty rozruchowe systemu.)

Pierwszym brakującym elementem była linia auto wlan0. O ile mi wiadomo, może iść gdziekolwiek w pliku.

Działa to, dopóki nie spróbujesz uruchomić bez podłączonego kabla Ethernet. Wtedy WiFi nie łączy się przy rozruchu i musi zostać ręcznie uruchomione przez uruchomienie sudo ifup wlan0lub odłączenie i ponowne włożenie klucza Wi-Fi.

Problem jest powodowany przez demona ifplugd , który włącza i wyłącza urządzenia sieciowe po ich podłączeniu lub usunięciu. Możesz go ponownie skonfigurować lub po prostu usunąć sudo apt-get purge ifplugd.

Jeśli usunąłeś ifplugd , powinieneś dodać następujące linie do / etc / network / interfaces, aby połączenie Ethernet również się połączyło po podłączeniu:

auto eth0
allow-hotplug eth0

Nie jestem pewien, czy autolinie są absolutnie konieczne, czy też hotplug obsługuje prawidłowe uruchamianie przy braku ifplugd , ale to działało dla mnie.

Mój plik roboczy brzmi:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
katriel
źródło
2
masz literówkę w „auth eth0”? powinien to być „auto eth0”?
Jordan Sitkin
2
mała poprawka postu @katriel: Usługa, którą należy usunąć, nazywa się ifplugd, a nie ifupd
dh1tw
@ DH1TW i sześć miesięcy później ... Nigdy więcej nie napiszę jednej z tych rzeczy z pamięci
katriel
Dla przypomnienia, używam wpa_supplicant, więc właśnie włączyłem usługęsudo systemctl enable wpa_supplicant.service
Daniel Argüelles
0

Miałem ten sam problem. Sprawdź ustawienia r / w swojego /etc/network/interfaces.

Zrobiłem chmod 600 /etc/network/interfacesi mój problem zniknął.

Gero
źródło