Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Communications > Communications sans fil > Initiation au réseau Wifi sur Raspberry Pi

Initiation au réseau Wifi sur Raspberry Pi

jeudi 27 mars 2014

Avec Julia, nous avons revu les bases de la connectivité réseau sur Raspberry Pi.

La carte est connectée avec un dongle wifi (Edimax EW-7811Un) et un câble Ethernet. Par défaut, la distribution Raspbian connecte en DHCP la carte réseau (sous Linux, c’est l’interface eth0).

Première étape : se connecter en ssh depuis un ordinateur fixe (on sera plus à l’aise pour développer et consulter le Net en même temps).

On ressort la commande nmap avec l’adresse racine du réseau local (ici en 192 point 168 point 2 point quelque chose donc 192.168.2.0) et la quantité d’adresse recherchée (24) :

  1. pobot@atelier1:~$ nmap -p 22 192.168.2.0/
  2.  
  3. Starting Nmap 5.21 ( http://nmap.org ) at 2014-03-27 13:06 CET
  4. Illegal netmask value, must be /0 - /32 .  Assuming /32 (one host)
  5. Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
  6. Nmap done: 1 IP address (0 hosts up) scanned in 0.05 seconds
  7. pobot@atelier1:~$ nmap -p 22 192.168.2.0/24
  8.  
  9. Starting Nmap 5.21 ( http://nmap.org ) at 2014-03-27 13:06 CET
  10. Nmap scan report for OpenWrt.lan (192.168.2.3)
  11. Host is up (0.0013s latency).
  12. PORT   STATE SERVICE
  13. 22/tcp open  ssh
  14.  
  15. Nmap scan report for 192.168.2.10
  16. Host is up (0.0037s latency).
  17. PORT   STATE  SERVICE
  18. 22/tcp closed ssh
  19.  
  20. Nmap scan report for ATELIER1.lan (192.168.2.106)
  21. Host is up (0.00015s latency).
  22. PORT   STATE  SERVICE
  23. 22/tcp closed ssh
  24.  
  25. Nmap scan report for atelier2.lan (192.168.2.126)
  26. Host is up (0.0081s latency).
  27. PORT   STATE  SERVICE
  28. 22/tcp closed ssh
  29.  
  30. Nmap scan report for lecube.lan (192.168.2.160)
  31. Host is up (0.0020s latency).
  32. PORT   STATE SERVICE
  33. 22/tcp open  ssh
  34.  
  35. Nmap scan report for raspberrypi.lan (192.168.2.201)
  36. Host is up (0.0031s latency).
  37. PORT   STATE SERVICE
  38. 22/tcp open  ssh
  39.  
  40. Nmap scan report for portable1.lan (192.168.2.221)
  41. Host is up (0.00065s latency).
  42. PORT   STATE  SERVICE
  43. 22/tcp closed ssh
  44.  
  45. Nmap done: 256 IP addresses (7 hosts up) scanned in 2.85 seconds

Télécharger

On peut alors se connecter :

pi@raspberrypi ~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

C’est bon signe, le module est détecté.

On commence par se renseigner sur ce module. Il existe de nombreux sites sur Internet qui traite de la connexion wifi sur une carte Raspberry Pi, mais malheureusement :

- les extensions wifi sur USB sont très nombreuses et n’ont pas les mêmes capacités
- certains sites référencés sont déjà anciens, ou bien n’ont pas été maintenus (Loïc...)
- les méthodes sont différentes.

Enfin, on peut toujours s’en sortir quand on est patient, mais on perd forcément l’aspect "facile à prendre en main" de la carte Raspberry Pi. Donc si vous êtes complètement débutant... tenez-vous en au câble Ethernet !

Préalable facultatif

Notamment avec ce petit circuit, on apprend qu’il faut télécharger des pilotes, recompiler des noyaux, bref... c’est un peu la jungle. Mais nous sommes en 2014, alors vérifiez bien la date des articles que vous lisez.

Si votre carte SD a une version récente de la distribution, c’est à dire égale ou supérieure à "2012-09-18-wheezy-raspbian", alors vous n’avez pas besoin de cette étape.

Mais comment savoir si c’est la bonne version ? Plutôt que de vérifier, faites une mise à jour de tout le système :

  1. $ sudo apt-get update
  2. $ sudo apt-get upgrade

Télécharger

Si vraiment vous ne voulez pas mettre à jour votre distribution, alors :

  1. $ wget http://dl.dropbox.com/u/80256631/install-rtl8188cus.sh
  2. $ chmod 755 install-rtl8188cus.sh
  3. $ sudo ./install-rtl8188cus.sh

Télécharger

Et suivez les instructions.

Voici les étapes que nous avons ensuite suivies :

Installation des logiciels

La mise à jour du bootloader de la carte pour avoir la dernière version :

  1. $ sudo apt-get install raspberrypi-bootloader

Puis la gestion des réseaux sans-fil et de la sécurité :

  1. $ sudo apt-get install wpasupplicant

Configuration de la connexion

On cherche les interfaces disponibles pour un réseau sans-fil :

  1. $ iwconfig
  2. wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
  3.           Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated
  4.           Sensitivity:0/0
  5.           Retry:off   RTS thr:off   Fragment thr:off
  6.           Power Management:off
  7.           Link Quality:0  Signal level:0  Noise level:0
  8.           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
  9.           Tx excessive retries:0  Invalid misc:0   Missed beacon:0
  10.  
  11. lo        no wireless extensions.
  12.  
  13. eth0      no wireless extensions.

Télécharger

On doit donc modifier le fichier de configuration des interfaces pour définir la connexion de wlan0.

  1. $ sudo nano /etc/network/interfaces

On y place le code suivant :

  1. auto lo
  2.  
  3. iface lo inet loopback
  4.  
  5. # Connexion filaire
  6. iface eth0 inet dhcp
  7.  
  8. # Interface wifi
  9. allow-hotplug wlan0
  10. iface wlan0 inet manual
  11. wpa-roam /etc/wpa_supplicant/wpa-roam.conf

Télécharger

Ce qui signifie qu’un fichier /etc/wpa_supplicant/wpa-roam.conf doit être utilisé pour lancer automatiquement la connexion du cube avec un des réseaux qu’il référence.

Pour le créer :

  1. $ sudo nano /etc/wpa_supplicant/wpa-roam.conf

Et on y place la définition de chacun de vos réseaux habituels (à adapter selon vos réseaux, ouverts ou protégés) :

  1. update_config=1
  2. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
  3.  
  4. network={
  5.         ssid="CIV"
  6.         key_mgmt=NONE
  7.         id_str="CIV"
  8. }
  9.  
  10. network={
  11.         ssid="Box-JH"
  12.         key_mgmt=NONE
  13.         wep_key0=8434FEB
  14.         wep_tx_keyidx=0
  15.         id_str="Maison"
  16. }
  17.  
  18. network={
  19.        ssid="Box-AR65"
  20.        psk="fekfvit86pmyltk1946832fdf"
  21.        id_str="home"
  22. }

Télécharger

Et on redémarre !

Vos commentaires

  • Le 27 mars 2016 à 19:52, par Arrakis En réponse à : Initiation au réseau Wifi sur Raspberry Pi

    Bonjour...
    Il n’y a rien à faire ! ! J’ai beau essayer tout ce qui traine sur le NET, je n’ai jamais d’adresse wlan0...
    Si quelqu’un passe par là...
    Arrakis

    • Le 31 mars 2016 à 11:52, par Eric P. En réponse à : Initiation au réseau Wifi sur Raspberry Pi

      Il faut être plus précis.
      Quelles commandes avez-vous utilisé ? Quels sont les éventuels messages d’erreur en retour ?
      De plus, ça veut dire quoi "je n’ai pas d’adresse wlan0" ?
      - wlan0 n’apparait pas en réponse à ifconfig ? Si c’est le cas, ça peut vouloir dire qu’il n’y a pas de dongle Wifi connecté, qu’il n’est pas suppoirté, qu’il ne marche pas,...
      - pas d’adresse IP affectée à wlan0 ? Pb probable de configuration de la connexion au réseau Wifi (mauvais ESSDI, mauvais password,...)
      Dans tous les cas impossible de donner une réponse précise à une question qui se résume à "ça ne marche pas".

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.