Como conectar o Wi-Fi na inicialização?

30


SO Raspberry Pi Modelo B : Raspbian

Estou executando meu Pi sem cabeça (atualmente através de uma conexão Ethernet direta). Eu tenho um dongle USB WiFi. Eu gostaria que o WiFi inicializasse na inicialização e se conectasse por DHCP.

http://rpi.tnet.com/project/faqs/headlessportablewifi sugere que eu não preciso realmente alterar / etc / network / interfaces do padrão:

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

Eu configurei o /etc/wpa_supplicant/wpa_supplicant.conf para minha rede.

Quando eu inicializo o Pi, o WiFi não se conecta imediatamente. Mas se eu SSH entrar e executar sudo ifup wlan0, o Pi se conectará bem.

Isso não é algo que o Pi deve fazer em seu próprio processo de inicialização? Eu poderia presumivelmente escrever para dizer a algum dotfile para executar este comando, mas gostaria de fazê-lo da maneira correta (e aprender como meu sistema funciona).

Sei que também posso definir um endereço IP estático para cada rede WiFi que desejo usar: Como configurar várias redes WiFi? . Mas eu preferiria ter uma solução simples, onde eu só tenho que inserir algumas linhas no /etc/wpa_supplicant/wpa_supplicant.conf para adicionar uma nova rede WiFi.

Qual é a peça que estou perdendo aqui?

katriel
fonte

Respostas:

24

A configuração padrão do Raspbian / etc / network / interfaces não se conecta ao WiFi na inicialização. As principais linhas da página de manual de interfaces são:

Linhas começando com a palavra "auto" são usadas para identificar as interfaces físicas a serem ativadas quando ifup é executado com a opção -a. (Esta opção é usada pelos scripts de inicialização do sistema.)

...

Linhas começando com a palavra "auto" são usadas para identificar as interfaces físicas a serem ativadas quando ifup é executado com a opção -a. (Esta opção é usada pelos scripts de inicialização do sistema.)

A primeira peça que faltava era a linha auto wlan0. Tanto quanto eu sei, ele pode ir a qualquer lugar no arquivo.

Isso funciona até você tentar inicializar sem o cabo ethernet conectado. Então, o WiFi não se conecta na inicialização e precisa ser acionado manualmente executando sudo ifup wlan0ou desconectando e reinserindo o dongle Wi-Fi.

O problema é causado pelo daemon ifplugd , que liga e desliga os dispositivos de rede quando você os conecta ou os remove. Você pode reconfigurá-lo ou simplesmente removê-lo com sudo apt-get purge ifplugd.

Se você removeu o ifplugd , adicione as seguintes linhas ao / etc / network / interfaces para que a conexão ethernet também se conecte quando conectado:

auto eth0
allow-hotplug eth0

Não tenho certeza se as autolinhas são estritamente necessárias ou se o hotplug lida com a inicialização correta na ausência do ifplugd , mas isso funcionou para mim.

Meu arquivo de trabalho diz:

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
fonte
2
você tem um erro de digitação em "auth eth0"? deveria ser "auto eth0"?
23914 Jordan Sitkin
2
uma pequena correção de pós @katriel s: O serviço que precisa ser removido é chamado ifplugd e não IFUPD
dh1tw
@ DH1TW e seis meses depois ... Eu nunca vou escrever uma dessas coisas de memória novamente
Katriel
Para o registro, eu estou usando wpa_supplicant então eu só habilitado o serviçosudo systemctl enable wpa_supplicant.service
Daniel Argüelles
0

Eu tive o mesmo problema. Verifique as configurações de r / w do seu /etc/network/interfaces.

Eu fiz chmod 600 /etc/network/interfacese meu problema se foi.

Gero
fonte