Pour des questions pratiques j'ai préféré connecté mon Raspberry Pi B+ en WiFi plutôt qu'en ethernet, avec un dongle WiFi.
Voyons comment configurer l'interface WiFi avec Raspbian en terminal, pratique si vous n'avez pas accès à l'interface graphique.
Ce billet n'a rien de particulièrement technique, il est là pour répondre à un besoin bien précis. On trouve des configurations aussi nombreuses qu'exotiques sur le web, voici ma contribution et je vous garantis qu'elle fonctionne.
Dongle compatible
Votre clé USB se doit d'être compatible avec Linux pour fonctionner sous Raspbian.
J'ai acheté un dongle Edimax EW-7811Un pour environ 10€ sur Amazon. Je l'ai choisi pour son prix et sa taille nano, il ne dépasse presque pas du Raspberry, et sa compatibilité confirmée sur tous les forums.
Il est compatible b/g/n à 150 mbps, WPA2, WPS, 802.1x.
Mis à jour 12/2017 : je déconseille ce dongle car son pilote n'est plus supporté à partir du noyau 3.9, comme le confirme un commentaire sur amazon :
Le mode ad-hoc (IBSS) fonctionnait à peu près jusqu'à l'arrivée du noyau Linux 3.9. Depuis, c'est la galère. Même les drivers realtek patchés n'y font rien. En gros, le broadcast en mode ad-hoc ne fonctionne pas correctement, et en particulier les broadcast ARP (pour résoudre l'association initiale IP-MAC). Il existe une solution à la main pour renseigner manuellement cette association avec une commande type "arp -s [IP du nœud à contacter] [Adresse MAC du nœud à contacter]" mais c'est une configuration statique et il y reste beaucoup de limitations. Bref, pour ce type d'utilisation, ce modèle est maintenant à proscrire. Préférer soit le dongle TP-Link TL-WN722N soit un dongle sur chipset Ralink RTL5370. Donc ma conclusion est très différente de ce qu'elle était il y a quelques années et j'ai fait passer mon éval de 5 à 2 étoiles. C'est pas forcément de la faute d'Edimax (après tout, rien n'a changé en termes matériels sur ce dongle) mais le driver 8192cu (ou pire rtl8192cu) pour le chipset RTL8188CUS de ce dongle Edimax est à la ramasse. Et encore, j'ai pas tout dit dessus (il y a des bugs de déconnexion qui font qu'on est parfois amené à configurer le dongle en désactivant le mode éco d'énergie, pas top). Bref. Je pense que vous avez compris, si vous souhaitez faire autre chose qu'une connexion à un point d'accès (et encore), regardez un autre dongle.
Détection
Vérifiez que le dongle est bien détecté :
$ lsusb | grep 7811 Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
On continue.
Blacklist
Il faut blacklist le pilote d'origine car celui-ci ne fonctionne pas :
Dans le fichier :
/etc/modprobe.d/blacklist-rtl8192cu.conf
Ajoutez :
blacklist rtl8192cu
Configuration DHCP simple
Notre clé est détectée comme wlan0.
Dans mon cas l'interface ethernet (eth0) et l'interface WiFi sont toutes deux en DHCP.
Voici la configuration à mettre dans /etc/network/interfaces :
auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 iface wlan0 inet dhcp wpa-ssid "votre-ssid" wpa-psk "votre-clé-wifi"
Le SSID est le nom de votre réseau (Livebox-xxxx, Freebox, etc), respectez impérativement la casse pour que cela fonctionne.
Si cette ligne est présente, commentez-là :
#iface default inet dhcp
Redémarrez le Raspberry Pi pour la prise en compte (ou ifdown wlan0 && ifup wlan0).
Configuration alternative
L'autre configuration fonctionne également :
auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 iface wlan0 inet dhcp wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
Puis éditer le fichier /etc/wpa_supplicant/wpa_supplicant.conf :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={ ssid="votre-ssid" psk="votre-clé-wifi" proto=RSN key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP }
Quelques explications sur les possibilités :
- proto : RSN (WPA2) ou WPA (WPA1)
- key_mgmt: WPA-PSK (si WPA 1 ou WPA2) ou WPA-EAP (en entreprise seulement)
- pairwise: CCMP (WPA2) ou TKIP (WPA1)
- auth_alg: OPEN (WPA1 et WPA2), SHARED (pour WEP) ou LEAP (réseau EAP)
A noter qu'il est tout à fait possible de minimiser la configuration :
network={ ssid="votre-ssid" psk="votre-clé-wifi" }
Redémarrez le Raspberry Pi pour la bonne prise en compte (ou ifdown wlan0 && ifup wlan0).
Configuration pour Raspbian 9
Les 2 méthodes précédentes ne fonctionnent pas pour Raspbian 9 (non testé sous Raspbian 8, dites-le moi en commentaire).
Pour Raspbian 9 ne touchez pas au fichier /etc/network/interfaces. Allez modifier uniquement le fichier :
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Pour y saisir :
network={
ssid="votre-ssid"
psk="votre-clé-wifi"
}
+infos sur la doc officielle
L'astuce bonus
Dans votre routeur vous pouvez configurer une adresse IP en dhcp-statique afin que le Raspberry Pi ait toujours la même IP. Dans mon cas avec Tomato j'ai même configuré la même adresse IP statique pour les deux interfaces (eth0 et wlan0).
Allez dans Basic > Static DHCP :
OK > Save.
Redémarrer le Raspberry Pi si vous avez affecté une IP statique différente de l'actuelle. J'utilise le hostname "rpi" et c'est très pratique car je peux toujours atteindre mon Raspberry avec ce nom "rpi" même si son hostname diffère (j'utilise plusieurs cartes microSD).
Ah oui j'oubliais, pour vérifier que votre clé WiFi est bien associée à votre réseau sans fil utilisez la commande iwconfig :
$ iwconfig wlan0 IEEE 802.11bgn ESSID:"BLOGMOTION.FR" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency:2.442 GHz Access Point: 00:26:F2:C1:21:F1 Bit Rate:150 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:****-****-****-****-****-****-****-**** Security mode:open Power Management:off Link Quality=100/100 Signal level=99/100 Noise level=0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Ici tout fonctionne 🙂
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
4 commentaires
Bonjour
Faut-il installer les drivers livrer avec?
Cordialement