Comment obtenir une connexion Wi-Fi au démarrage?

30

Système d'
exploitation Raspberry Pi modèle B : Raspbian

J'utilise mon Pi sans tête (actuellement via une connexion Ethernet directe). J'ai un dongle WiFi USB. J'aimerais que le WiFi démarre au démarrage et se connecte par DHCP.

http://rpi.tnet.com/project/faqs/headlessportablewifi suggère que je n'ai pas besoin de réellement changer / etc / network / interfaces par défaut:

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

J'ai configuré /etc/wpa_supplicant/wpa_supplicant.conf pour mon réseau.

Lorsque je démarre le Pi, le WiFi ne se connecte pas immédiatement. Mais si je SSH dedans et que je cours sudo ifup wlan0, le Pi se connecte bien.

N'est-ce pas quelque chose que le Pi devrait faire dans son propre processus de démarrage? Je pourrais vraisemblablement écrire dire à un fichier dot pour exécuter cette commande, mais je voudrais le faire de la bonne manière (et apprendre comment fonctionne mon système).

Je sais que je peux également définir une adresse IP statique pour chaque réseau WiFi que je veux utiliser: Comment configurer plusieurs réseaux WiFi? . Mais je préférerais avoir une solution simple où je n'ai qu'à entrer quelques lignes sur /etc/wpa_supplicant/wpa_supplicant.conf pour ajouter un nouveau réseau WiFi.

Quelle est la pièce qui me manque ici?

Katriel
la source

Réponses:

24

La configuration par défaut de Raspbian / etc / network / interfaces ne se connecte pas au WiFi au démarrage. Les lignes clés de la page de manuel des interfaces sont:

Les lignes commençant par le mot "auto" sont utilisées pour identifier les interfaces physiques à afficher lorsque ifup est exécuté avec l'option -a. (Cette option est utilisée par les scripts de démarrage du système.)

...

Les lignes commençant par le mot "auto" sont utilisées pour identifier les interfaces physiques à afficher lorsque ifup est exécuté avec l'option -a. (Cette option est utilisée par les scripts de démarrage du système.)

La première pièce manquante était la ligne auto wlan0. Pour autant que je sache, il peut aller n'importe où dans le fichier.

Cela fonctionne jusqu'à ce que vous essayiez de démarrer sans que le câble Ethernet soit branché. Ensuite, le WiFi ne se connecte pas au démarrage et doit être déclenché manuellement en exécutant sudo ifup wlan0ou en débranchant et en réinsérant le dongle Wi-Fi.

Le problème est dû au démon ifplugd , qui active et désactive les périphériques réseau lorsque vous les branchez ou les supprimez. Vous pouvez le reconfigurer ou simplement le supprimer avec sudo apt-get purge ifplugd.

Si vous avez supprimé ifplugd , vous devez ajouter les lignes suivantes à / etc / network / interfaces afin que la connexion Ethernet se connecte également lorsqu'elle est branchée:

auto eth0
allow-hotplug eth0

Je ne sais pas si les autolignes sont strictement nécessaires ou si hotplug gère le démarrage correctement en l'absence d' ifplugd , mais cela a fonctionné pour moi.

Mon fichier de travail se lit comme suit:

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
la source
2
avez-vous une faute de frappe sur "auth eth0"? devrait-il être "auto eth0"?
Jordan Sitkin
2
une petite correction du post de @katriel: Le service qui doit être supprimé s'appelle ifplugd et non ifupd
dh1tw
@ DH1TW et six mois plus tard ... Je n'écrirai plus jamais une de ces choses de mémoire
katriel
Pour mémoire, j'utilise wpa_supplicant donc j'ai juste activé le servicesudo systemctl enable wpa_supplicant.service
Daniel Argüelles
0

J'ai eu le même problème. Vérifiez les paramètres r / w de votre /etc/network/interfaces.

Je l'ai fait chmod 600 /etc/network/interfaceset mon problème a disparu.

Gero
la source