Raspberry Pi, WiFi, ssh et ligne de commande
J’ai rebranché mon vieux Raspberry Pi pour les besoins de geekeries personnelles. J’ai vu qu’il existait une version Lite de Raspbian et j’ai choisi de l’utiliser car mon Raspberry Pi n’est pas de première jeunesse et ma carte SD ne fait que 4 Go. J’ai eu une petite surprise en démarrant le système : il n’y a pas de serveur X. Il faut donc tout faire en ligne de commande. Challenged accepted!
Démarrer le Raspberry Pi
Raspbian Lite est téléchargeable sur le site de la fondation Raspberry. La version actuelle est Jessie. Je me suis aidé de deux articles que j’avais écrit il y a déjà longtemps pour créer ma carte SD avec l’image du système. J’ai branché mon clavier, ma télé, l’alimentation et j’ai obtenu prompt.
Changer le layout du clavier
Parce que qu’un système qwerty quand on a un clavier azerty c’est pas sympa, surtout si on a besoin d’utiliser des symboles, j’ai commencé par passer en azerty. Internet vous propose plusieurs techniques, j’ai utilisée celle-ci :
sudo dpkg-reconfigure keyboard-configuration
La configuration est intuitive avec une interface type ncurse. Quand c’est terminé, il suffit de redémarrer avec la commande reboot.
Configuration du WiFi
Aucune difficulté à ce que Raspbian reconnaisse mon dongle WiFi. Je l’ai branché et il est directement apparu comme wlan0 quand j’ai appelé la commande ifconfig. La partie un peu moins fun est la configuration du réseau WiFi (SSID + passphrase). La fondation Raspberry propose un tutoriel pour cela. Je crois avoir eu besoin de redémarrer à nouveau pour que ça fonctionne (en plus de la procédure expliquée dans le lien).
Configuration IP manuelle
En général, le serveur DHCP de votre box assignera toujours la même IP à votre Raspberry Pi. Il est quand même plus prudent de lui affecter une adresse IP fixe pour le retrouver facilement. Idéalement, il faudrait aussi demander à votre box de ne plus attribuer cette adresse IP par DHCP…
J’ai tout d’abord regardé quelle était mon adresse actuelle, quel masque de sous-réseau était utilisé et quelle était l’adresse de la gateway :
$ ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 74:da:38:5d:fc:6b
inet addr:192.168.1.17 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2a01:cb05:8980:9400:944d:6692:7db0:9552/64 Scope:Global
inet6 addr: fe80::9d35:79ba:e404:4253/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14436 errors:0 dropped:400 overruns:0 frame:0
TX packets:4818 errors:0 dropped:1 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17129734 (16.3 MiB) TX bytes:701974 (685.5 KiB)
$ ip route
default via 192.168.1.1 dev wlan0 metric 303
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.17 metric 303
J’ai ensuite modifié le fichier /etc/network/interfaces de manière adaptée :
cat /etc/network/interfaces
[...]
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.17
netmask 255.255.255.0
gateway 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
[...]
Activation de ssh
La dernière étape pour que mon système puisse être headless était d’activer le serveur SSH et ainsi pouvoir me connecter depuis mon ordinateur de bureau. La fondation Raspberry explique comment faire ceci dans ce tutoriel. Avec Raspbian Lite, il suffit de créer un fichier ayant pour nom ssh, à la racine de la carte SD. J’ai donc éteint mon Raspberry Pi et j’ai inséré ma carte mémoire dans mon Mac et j’ai utilisé le terminal :
$ cd /Volumes/boot/ $ touch ssh
Une fois le Raspberry Pi redémarré, vous pouvez regarder si le serveur SSH est démarré avec la commande suivante :
ps -eaf | grep ssh
Si vous un brin plus optimiste, vous pouvez essayé directement depuis votre PC :
$ ping 192.168.1.17 PING 192.168.1.17 (192.168.1.17): 56 data bytes 64 bytes from 192.168.1.17: icmp_seq=0 ttl=64 time=18.548 ms 64 bytes from 192.168.1.17: icmp_seq=1 ttl=64 time=6.127 ms ^C --- 192.168.1.17 ping statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 6.127/12.337/18.548/6.211 ms imac-de-pierre:/ pierregradot$ ssh pi@192.168.1.17 The authenticity of host '192.168.1.17 (192.168.1.17)' can't be established. ECDSA key fingerprint is SHA256:xv5CB0epvX+e8sKhgLFp2bP+1jzU8j7PzGAVAnZs8q4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.17' (ECDSA) to the list of known hosts. pi@192.168.1.17's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Apr 3 16:22:55 2017 pi@raspberrypi:~ $ echo "Hell yeah!" Hell yeah! pi@raspberrypi:~ $
Et voilà ! J’ai débranché le Raspberry Pi de la télé, j’ai rangé mon clavier, et c’était bon !
PS : en fait, si vous avez un câble Ethernet, vous pouvez vous passer d’un clavier et d’une télé. Voici comment faire : Headless Raspberry Pi Setup.
PS : si vous branchez un câble Ethernet à votre Raspberry headless et que vous vous demandez quelle est son adresse IP, vous pouvez lire cet article : IP ADDRESS.





