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 :
-
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
-
Le décompresser à la racine de la SD card insérée dans le PC
-
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 -
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. -
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.
-
mettre le dongle wifi en place
-
normalement le système reconnaît qu'il manque des packages et les installe.
Sinon :root@raspberry:~#apt-get install wireless-tools
-
taper ensuite :
root@raspberry:~#iwconfig
et vérifier si wlan0 apparaît
-
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
-
sinon il faut suivre ici : http://dl.dropbox.com/u/80256631/install-rtl8188cus.txt
-
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.1Chez 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.
-
Editer maintenant : /etc/resolv.conf en ajoutant la ligne :
nameserver 192.168.1.1
-
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.confJe n'ai pas trop compris à quoi ça sert mais ça ne mange pas de pain.
-
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 0Quelques 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
- 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). - 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"
(j'ai oublié le dongle Belkin est en fait du 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
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. -
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 -
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:~# -
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.
-
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"
} -
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 -
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 -
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