Raspberry Pi : connexion internet en wifi et/ou IP fixe

Les distributions Jessie (ou Jessie Lite) du Raspberry Pi sont réglées par défaut en DHCP avec connexion par cable ethernet. Il peut être utile de créer une connexion wifi ou d’imposer une adresse IP fixe. Voyons comment faire ces réglages.

Note du 7/1/2018 : Document mis à jour pour la distribution Stretch de Raspbian et un Pi 3 (équipé de wifi directement sur le Pi, sans dongle)

Régler la connexion ethernet en IP fixe

Selon « Comment configurer une adresse IP statique sur Raspbian Stretch« 

ls /sys/class/net/  m’indique :

eth0  lo  wlan0

ifconfig  m’indique que seule la connexion eth0 dispose d’une adresse IP. Dans mon cas la connexion wifi (wlan0) n’est pas activée.

Editer /etc/dhcpcd.conf .

Copier les lignes suivantes tout à la fin du fichier :

Ensuite modifier ce qui a été collé comme suit :

Ou static routers et static domain name servers contient l’adresse du routeur local (ou de la box) et static ip address contient l’adresse IP que l’on souhaite attribuer à notre Pi.

Redémarrer le Pi.

Sur mon routeur, je vois que le Pi a maintenant l’adresse 198.168.1.102.

Régler le wifi (Raspberry Pi 3 sous Stretch)

Voir « Setting wifi up via the command line« .

Archives (pour mémoire)

Tout ce qui suit était valable en novembre 2016. Je le conserve pour mémoire.

Connecter un dongle wifi

A ce stade, le Pi est connecté à notre réseau local par un cable ethernet. il dispose aussi d’un dongle Wifi de bonne qualité (genre Edimax EW-7811Un ou le dongle « officiel » vendu depuis peu pour le Raspberry Pi). C’est important d’avoir déjà le dongle wifi pour que wicd-curses l’identifie dès son installation.

Attention aux versions de Raspbian Jessie...

Pour connaître votre version de Linux, taper uname -a en ligne de commande.

J’ai eu beaucoup de difficultés car j’ai installé le wifi en IP fixe sur un premier Raspberry B+ en utilisant la méthode avec wicd-curses décrite plus bas.

Quelques semaines plus tard, j’ai voulu réitérer sur un deuxième Raspberry Pi B+, avec le même dongle wifi. Et ça n’a pas fonctionné. J’y ai passé des heures sans jamais trouver avant de me résoudre à utiliser une autre méthode, sans wicd-curses.

Cet article présente donc deux méthodes :

  • méthode 1, sans wicd-curses : elle fonctionne avec une version plus récente de Jessie ( Linux 4.4.14+ #896 Sat Jul 2 14:16:46 BST 2016 armv6l GNU/Linux .
  • méthode 2, avec wicd-curses : elle fonctionne avec Linux 4.4.13+ #893 Wed Jun 8 14:34:50 BST 2016 armv6l GNU/Linux, un peu plus ancienne.

Méthode 1 : sans wicd-curses

Le wifi ne fonctionne pas au départ sur le Pi. J’ai fini par me rendre compte qu’il fonctionnait, mais avec une adresse IPv6… La solution a été d’identifier le problème puis d’obliger le wifi à prendre une adresse IPv4.

La commande ifconfig wlan0  produit entre autres la ligne inet6 addr: fe80::52c6:c538:7c8:640c/64 . C’est une adresse IPv6…

Pour comparer, on peut taper  ifconfig eth0 , qui nous donne les mêmes informations pour la liaison ethernet. La même ligne devient inet addr:192.168.1.8  Bcast:192.168.1.255  Mask:255.255.255.0 , qui est bien une adresse en IPv4…

Faire fonctionner le wifi en IPv4

La solution (qui m’a paru être un miracle après plusieurs heures de recherches et d’essais infructueux) vient de cette page.

Il suffit de créer le fichier local.conf  (droits 644) dans le répertoire /etc/sysctl.d , de l’éditer et d’y placer la ligne net.ipv6.conf.all.disable_ipv6=1  (sans ; à la fin).

On redémarre le Pi et voilà, wlan0 a une adresse en IPv4 si je lui donne les coordonnées de mon réseau wifi.

Pour donner les coordonnées du réseau wifi, il suffit de suivre les instructions de cette page, sur le site officiel du Raspberry Pi : éditer /etc/wpa_supplicant/wpa_supplicant.conf  et y ajouter les informations du réseau

Mon Pi est maintenant accessible en wifi (lorsque j’enlève le cable ethernet).

Attribuer une IP fixe sans Wicd-curses

Fonctionne correctement avec Jessie #896 auquel j’ai fait la manip qui précède.

Editer /etc/dhcpcd.conf  et ajouter tout à la fin :

Noter que j’ai placé 8.8.8.8 dans domain_name_servers, au côté de l’adresse de mon routeur. Ca permet de connecter le Pi à des sites externes sans connaître leur adresse ip. Ainsi ping google.com  se connecte bien à google.

Dernière chose à faire : vérifier que le dongle wifi ne va pas s’éteindre pour économiser l’énergie ! Pour celà, utiliser la commande iwconfig . On voit ainsi tous les paramètres du wifi :

  • Power Management:off signifie que la clé wifi ne s’éteindra pas lorsqu’elle n’est pas utilisée. Ouf, pas besoin de régler autrement !

interdire au wifi de s’éteindre

Bien que Power Management ait semblé correctement réglé, le wifi se déconnectait et ne se remettait en service qu’en redémarrant le Pi ou en y connectant un cable ethernet.

J’ai trouvé la solution ici. Il faut configurer le driver de la clé (un dongle Edimax EW-7811Un 802.11b/g/n, mais ça semble être une méthode utilisable pour d’autres dongles).

Créer un fichier /etc/modprobe.d/8192cu.conf  et y placer les deux lignes suivantes :

Cette ligne interdit toute gestion de l’énergie par le dongle et interdit aussi la suspension automatique du wifi.

Redémarrer le Pi. Le problème disparaît.

Méthode 2 : avec wicd-curses

Ne fonctionne pas avec les versions de Jessie postérieures à #893 (pour savoir quelle version on a, taper uname -a en ligne de commande)

Pourquoi wicd-curses ?

C’est une solution reconnue pour éviter les déconnexions du wifi. En effet, avec wicd-curses il est simple de régler le wifi pour qu’il se reconnecte automatiquement si nécessaire, y compris après un redémarrage.

Installer wicd-curses

La bonne façon de faire pour régler une connexion wifi, c’est d’installer wicd-curses (la source en anglais est ici) ET enlever dhcpcd5 (source, en anglais). On ne doit pas éditer de fichier tels que  /etc/network/network ou /etc/wpa_supplicant/wpa_supplicant.conf . Tout peut être réalisé en ssh, sans avoir besoin de se connecter à un écran et un clavier – si on dispose d’une connexion ethernet.

Commencer par installer wicd-curses.

Durant l’installation le programme nous demande si l’on veut ajouter un utilisateur au groupe ‘netdev’. On peut ajouter notre utilisateur local (par exemple ‘pi’). Après l’installation on recharge dbus :

Si une erreur s’affiche, c’est probablement que l’on a déjà installé network-manager. Dans ce cas voir la section correspondante dans ce tutoriel (en anglais).

Démarrer le démon wicd :

Installer rcconf puis le lancer :

Décocher network manager (si il existe), wicd devrait être déjà coché.

Régler le wifi

lsusb permet de vérifier que le dongle wifi est bien détecté.

On démarre le service wicd puis on lance wicd-curses pour configurer le réseau :

Pour configurer le réseau wifi, mettre en surbrillance le réseau auquel on veut se connecter et appuyer sur la touche →. Si aucun réseau wifi n’est listé, appuyer sur [SHIFT] R pour scanner le réseau wifi.

wicd-curses configuration réseau
wicd-curses configuration réseau
  • Use DHCP hostname doit être coché pour que le Pi  conserve son nom ;
  • descendre vers le bas et cocher ‘Automatically connect to this network‘
  • descendre vers le bas et taper la clé de sécurité du réseau wifi
  • Appuyer sur[F10] pour sauvegarder. On retourne à la liste des réseaux wifi, avec notre réseau surligné.
  • Appuyer sur [shift] + c (C) pour se connecter au réseau.
  • Une fois connecté (vérifier le statut en bas à gauche), appuyer sur q pour quitter.

En cas de problème lors de la connexion, aller voir le contenu de /var/log/syslog . Parfois, il suffit de faire les étapes suivantes, redémarrer le Pi et le wifi fonctionne.

On supprime dhcpcd5  :

On redémarre le pi (toujours connecté en ethernet, avec le dongle wifi présent) avec reboot .

  • Eteindre le Pi avec init 0 . Enlever le cable ethernet. Lorsqu’on redémarre le Pi, il fonctionne en wifi.
  • Il est possible qu’un ping au « hostname » ne fonctionne pas tout de suite car windows ne met pas à jour la carte du réseau. il faut alors faire un ping sur l’adresse ip du Pi.

Régler une adresse IP fixe (en wifi ou ethernet)

Pour un réseau wifi (c’est semblable en ethernet), on met en surbrillance sur le réseau que l’on veut paramétrer puis on appuie sur touche →.

  • Cocher ‘ use static IPs ‘
  • entrer l’adresse IP fixe (vérifier qu’elle n’est pas déjà prise dans votre routeur ou votre box) – pour moi 192.168.1.30. On peut utiliser <SHIFT> Inser pour coller ce qu’on aura copié ailleurs.
  • Entrer le Masque de sous-réseau (vérifier en tapant ipconfig dans l’invite de commande windows) – pour moi, 255.255.255.0
  • Entrer la passerelle (vérifier en tapant ipconfig dans l’invite de commande windows) – pour moi, 192.168.1.1
  • Entrer google.com dans search domain  et 8.8.8.8 pour DNS1 , 8.8.4.4 dans DNS2 .
  • J’ai laissé coché «  use DHCP hostname « 
  • Appuyer sur[F10] pour sauvegarder. On retourne à la liste des réseaux wifi, avec notre réseau surligné.
  • vérifier que le réseau est connecté (statut en bas à gauche), appuyer sur q pour quitter.
  • On peut vérifier que tout va bien en tapant ping google.com dans la ligne de commande (<CTRL> C pour en sortir).
  • Redémarrer le Pi avec init 0 .

Ca fonctionne. Le nautilus a une adresse IP fixe.

Et maintenant ?

J’ai appris que les tutoriels ne sont pas universels… Parfois ce qui fonctionne pour un Pi à une date donnée ne fonctionne pas quelques semaines plus tard, après quelques mises à jour du système d’exploitation.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *