Dans cet article, vous allez découvrir la méthode d'installation de Raspbian sur une carte RaspberryPi, avec en particulier les opérations à réaliser pour obtenir une connexion Wifi pour la connecter au web.

 

 

I- Matériel nécessaire

  • Le Raspberry Pi 512Mo

  • un boitier noir

  • un câble mini usb – USB pour l'alimentation

  • une SD card 16Go

  • un câble HDMI

  • un clavier sans fil avec mini dongle USB

  • Un dongle wifi

  • un câble réseau RJ45

  • éventuellement une souris sans fil avec dongle usb (mais je ne l'ai pas encore utilisée étant resté en ligne de commande et plus assez de place en USB)

II- Installer le système

J'ai opté pour l'installeur disponible ici : http://www.raspbian.org/RaspbianInstaller

Tout est très bien expliqué (mais en Anglais). Je vous traduis l'essentiel :

  1. Télécharger sur votre PC muni d'un lecteur SD card le fichier http://archive.raspbian.org/installer/rpi_installer_08-19-12.zip

  2. Le décompresser à la racine de la SD card insérée dans le PC

  3. Préparer le Raspberry Pi : insérer la sd card, brancher câble réseau, câble HDMI sur votre télé, dongle clavier sans fil, câble d'alim mini usb sur USB de la télé (j'ai en fait utilisé mon chargeur de Galaxy SII). Et c'est parti. Suivre à partir de là le mode d'emploi de :
    http://www.raspbian.org/RaspbianInstaller

  4. Arrivé à l'étape : « At the moment, only the core of the system is installed. » faire attention.
    Si vous souhaitez l'utilisation graphique cocher (barre d'espace) Debian desktop environment . Très utile SSH server est déjà coché, ainsi que Standard system utility. J'ai quant à moi installé le web server après ainsi que Mysql.

  5. Le raspberry Pi reboot

III- Installations de packages supplémentaires

Voulant en fait utiliser mon raspberry pi pour commander des dispositifs j'ai suivi à partir de là :

http://blog.idleman.fr/?p=1506

sudo n'est pas installé donc :

ouvrir une console root et :

root@raspberry:~#apt-get install sudo

pour pouvoir à partir d'une console user lancer des actions réservées à root.
J'ai dû quant à moi éditer le fichier /etc/sudoers

# User privilege specification
root ALL=(ALL:ALL) ALL
gerard ALL=(ALL:ALL) ALL

A partir de là vous pouvez repérer l'adresse IP attribuée :

root@raspberry:~#ifconfig

et continuer par une console ssh (sous windows utiliser putty) et débrancher votre clavier sans fil (le dongle) et le câble hdmi

Si vous n'avez pas installé l'interface graphique startx ne marche pas bien sûr.

Installer aussi raspi-config et mc

Lancer raspi-config pour changer la locale : passer de fr_FR-UTF8 à fr_FR-Euro car sinon plein de signes cabalistiques et mc c'est moche sans la nouvelle locale.


IV- Se connecter au réseau en wifi

Là j'ai un peu galéré. Je vais essayer de ne pas griller d'étape.

Il faut laisser le câble réseau en place pendant toute la procédure et ouvrir une console en tant que root.

  1. mettre le dongle wifi en place

  2. normalement le système reconnaît qu'il manque des packages et les installe.
    Sinon :

    root@raspberry:~#apt-get install wireless-tools
  3. taper ensuite :

    root@raspberry:~#iwconfig

    et vérifier si wlan0 apparaît

  4. vérifier par lsmod si 8192cu est installé (c'est le firmware du dongle wifi Belkin que j'ai mis en place, acheté à la FNAC). Regardez aussi le fichier :
    /etc/udev/rules.d/70-persistent-net.rules qui doit avoir une ligne wlan0

    # USB device 0x:0x (rtl8192cu)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ec:1a:59:0f:ed:65", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

    Si oui on passe à l'étape 6

  5. sinon il faut suivre ici : http://dl.dropbox.com/u/80256631/install-rtl8188cus.txt

  6. Modifier un certain nombre de fichiers dans une console ouverte par root avec nano :

    root@raspberry:~#nano /etc/network/interfaces
    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    # The loopback network interface
    auto lo
    iface lo inet loopback
    # The primary network interface
    allow-hotplug eth0
    iface eth0 inet dhcp

    # wifi
    allow-hotplug wlan0
    iface wlan0 inet static
    address 192.168.1.13
    netmask 255.255.255.0
    gateway 192.168.1.1

    Chez moi inet dhcp ne marche pas donc static. C'est une neufbox donc gateway 192.168.1.1 et le wifi est ouvert. Je n'ai pas trouvé comment configurer s'il y a un code WEP ou WPA. Ce qui est prévu dans le script install-rtl8188cus.sh ne marche pas. Et le package wpa-supplicant n'est pas utile.

  7. Editer maintenant : /etc/resolv.conf en ajoutant la ligne :

    nameserver 192.168.1.1
  8. Créer un fichier et le remplir d'une ligne :

    root@raspberry:~#echo >> /etc/modprobe.d/blacklist.conf
    root@raspberry:~#echo "blacklist rtl8192cu" >> /etc/modprobe.d/blacklist.conf

    Je n'ai pas trop compris à quoi ça sert mais ça ne mange pas de pain.

  9. Editer le fichier /etc/rc.local et ne pas oublier ensuite de le rendre exécutable.

    #!/bin/sh -e
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    ifdown wlan
    iwconfig wlan0 essid "NEUF_4590"
    ifup wlan0
    route del default gw 192.168.1.1 eth0
    route add default gw 192.168.1.1 wlan0
    exit 0

    Quelques explications :

    - on arrête wlan0 si par hasard il était lancé (voir ifconfig)
    - on indique à wlan0 l'ESSID de la box
    - on lance wlan0 (ce qui est dans /etc/network/interfaces)
    - on supprime la route vers la gateway par eth0 et on l'établit vers wlan0
    Pour vérifier si ça roule on lance rc.local :
    root@raspberry:~#/etc/rc.local
  10. Il se peut que si vous êtes sur une console ssh sur l'adresse d'eth0 vous perdiez la main.
    Il suffit de se reconnecter sur l'adresse de wlan0 (chez moi 192.168.1.13).
  11. A la sortie de ce script on doit avoir :
    root@raspberry:~#iwconfig wlan0
    donne la réponse :
    wlan0 IEEE 802.11bg ESSID:"NEUF_4590" Nickname:"WIFI@REALTEK"
    Mode:Managed Frequency:2.462 GHz Access Point: 00:17:33:C3:69:90
    Bit Rate:54 Mb/s Sensitivity:0/0
    Retry:off RTS thr:off Fragment thr:off
    Encryption key:off
    Power Management:off
    Link Quality=98/100 Signal level=87/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
    (j'ai oublié le dongle Belkin est en fait du Realtek)
    root@raspberry:~#ifconfig

    donne la réponse :

    eth0 Link encap:Ethernet HWaddr b8:27:eb:5f:b6:e5
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 lg file transmission:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

    lo Link encap:Boucle locale
    inet adr:127.0.0.1 Masque:255.0.0.0
    adr inet6: ::1/128 Scope:Hôte
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:8 errors:0 dropped:0 overruns:0 frame:0
    TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 lg file transmission:0
    RX bytes:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB)

    wlan0 Link encap:Ethernet HWaddr ec:1a:59:0f:ed:65
    inet adr:192.168.1.13 Bcast:192.168.1.255 Masque:255.255.255.0
    adr inet6: fe80::ee1a:59ff:fe0f:ed65/64 Scope:Lien
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:8312 errors:0 dropped:12390 overruns:0 frame:0
    TX packets:2425 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 lg file transmission:1000
    RX bytes:906067 (884.8 KiB) TX bytes:699886 (683.4 KiB)

    Vous voyez que eth0 est toujours là. Un petit

    root@raspberry:~#ifdown eth0
    devrait l'enlever.

  12. Vérifier aussi la route :

    root@raspberry:~# route
    Table de routage IP du noyau
    Destination Passerelle Genmask Indic Metric Ref Use Iface
    default neufbox 0.0.0.0 UG 0 0 0 wlan0
    192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
  13. Et pour voir si le DNS résoud bien (c'est le resolv.conf) :

    root@raspberry:~# ping www.linuxarverne.org
    PING www.linuxarverne.org (212.85.158.4) 56(84) bytes of data.64 bytes from web.tuxfamily.net (212.85.158.4): icmp_req=1 ttl=50 time=38.6 ms
    64 bytes from web.tuxfamily.net (212.85.158.4): icmp_req=2 ttl=50 time=39.4 ms
    64 bytes from web.tuxfamily.net (212.85.158.4): icmp_req=3 ttl=50 time=37.7 ms
    64 bytes from web.tuxfamily.net (212.85.158.4): icmp_req=4 ttl=50 time=41.1 ms
    64 bytes from web.tuxfamily.net (212.85.158.4): icmp_req=5 ttl=50 time=38.4 ms
    64 bytes from web.tuxfamily.net (212.85.158.4): icmp_req=6 ttl=50 time=37.9 ms
    ^C
    --- www.linuxarverne.org ping statistics ---
    7 packets transmitted, 6 received, 14% packet loss, time 6009ms
    rtt min/avg/max/mdev = 37.774/38.902/41.108/1.156 ms
    root@raspberry:~#
  14. Et on enlève le câble réseau et on reboote.

V- Et si le wifi est sécurisé en WAP

C'est le cas notamment des Freebox pour lesquelles il n'est pas possible de désactiver la protection. Choisir WAP-PSK. Et modifier alors les fichiers /etc/rc.local, /etc/network/interfaces et créer le fichier /etc/wpa_supplicant/wpa_supplicant.conf

Voyons cela dans l'ordre.

  1. le fichier /etc/wpa_supplicant/wpa_supplicant.conf qui doit contenir :

    network={
    ssid="Freebox-XXXXXX"
    scan_ssid=0
    proto=WPA
    key_mgmt=WPA-PSK
    psk="icivotreclefwpa"
    }
  2. le fichier /etc/network/interfaces

    # wifi
    allow-hotplug wlan0
    iface wlan0 inet static
    wpa-driver wext
    wpa-ssid Freebox-XXXXXX
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    address 192.168.1.13
    netmask 255.255.255.0
    gateway 192.168.1.254
  3. le fichier /etc/rc.local

    #!/bin/sh -e
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other# value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    ifdown wlan0
    ifup wlan0
    route del default gw 192.168.1.254 eth0
    route add default gw 192.168.1.254 wlan0
    echo >> /etc/resolv.conf
    echo "nameserver 192.168.1.254" >> /etc/resolv.conf
    exit 0
  4. Vous pouvez faire autant de configurations de ces 3 fichiers que de box sur lesquelles vous vous connectez et changer AVANT de rejoindre votre nouvelle résidence et de débrancher