(C'est Ă dire sans Ă©cran ni clavier)
Pourquoi faire ça ? En fait, parfois (ou mĂȘme souvent), on a bien envie que notre petit Raspberry Ă tout faire soit mis dans un coin et qu'il fasse ce qu'on lui demande. Ăa marche souvient bien, mais quand mĂȘme, des fois, il faut bien s'y connecter pour mettre Ă jour le systĂšme ou voir pourquoi ça ne fait pas ce qu'on veut. Et si vous ĂȘtes un peu feignant comme moi (comme tout bon informaticien qui se respecte en fait), vous avez forcĂ©ment la flemme de sortir l'Ă©cran, le cĂąble HDMI et de tout connecter. Nous allons donc voir deux mĂ©thodes qui permettent de s'en passer.
Matériel nécessaire
- un raspberry pi
(voire un kit raspberry pi
)
- une carte SD
- un adaptateur USB-TTL
- quatre cĂąbles dupond
(pour connecter le raspberry pi Ă l'adaptateur USB-TTL)
SSH
Oui, bon, celle lĂ , elle est facile. On fait quand mĂȘme un point vite fait, histoire de revoir les bases (et, j'avoue, ça me fera mon mini how-to pour la prochaine fois).
Pour se connecter en SSH, il y a deux cas : on connait l'adresse IP de la bĂȘte ou pas. Voyons les deux possibilitĂ©s.
Il faut Ă©galement que notre PC soit connectĂ© sur le mĂȘme rĂ©seau local (typiquement, connectĂ© sur la mĂȘme box internet Ă la maison).
Je connais mon adresse IP
Ăa, c'est le cas oĂč on a dĂ©marrĂ© notre petit Rasp avec un Ă©cran, un clavier et peut ĂȘtre mĂȘme une souris. Depuis la ligne de commande, j'ai donc rĂ©cupĂ©rĂ© l'adresse IP (pour mĂ©moire, c'est avec ip a
que vous l'aurez).
Je peux maintenant passer sur la machine depuis laquelle je veux me connecter au raspberry. LĂ , pas de surprise, depuis mon client prĂ©fĂ©rĂ© (Putty sous Windows, ligne de commande en Linux et Mac, client dĂ©diĂ© - il y en a mĂȘme sous Android et IOS), on se connecte directement (je fais la version ligne de commande, adaptez Ă votre logiciel) :
ssh pi@192.168.0.34
Là , je suis parti du principe que vous avez gardé le compte par défaut. Du coup, votre mot de passe est raspberry
.
Si vous voulez faire quelque chose d'un peu plus "propre" d'un point de vue sécurité informatique, commencez par changer le mot de passe du compte par défaut (voire créez un autre compte et interdisez l'accÚs SSH au compte pi). Vous pouvez également vous connectez à l'aide d'une clé SSH. C'est un peu plus long à mettre en place mais c'est plus robuste et plus simple par la suite. En effet, si vous choisissez d'utilisez une clé privée sans mot de passe (bon, faut pas la perdre celle-là ..), vous allez pouvoir vous connectez directement par ssh sans taper de mot de passe. Je fait court sur ce point mais ssh, c'est vraiment puissant, il y a pas de chose pour se sécuriser et se simplifier la vie d'administrateur.
Je ne connais pas mon adresse IP
Bon, ben, va falloir la trouver... ^^. Je ne compte pas la possibilitĂ© de garder un Ă©cran et un clavier connectĂ©, ce n'est pas ce qu'on cherche Ă faire ici. En revanche, vous pouvez utiliser un scanner de ports (l'orthographe est importante đ), celui que je prĂ©fĂšre est nmap. Depuis votre PC, vous allez chercher un port ouvert sur votre rĂ©seau. Il suffit de savoir que le numĂ©ro de port du protocole ssh est 22 et la commande Ă taper est :
nmap -p 22 192.168.1.0/24
(ps : c'est Ă adapter Ă votre rĂ©seau. Moi je sais que mon adressage est de la forme 192.168.1.xxx mais chez vous ça peut ĂȘtre 192.168.0.xxx ou 10.xxx.yyy.zzz)
Et vous devriez alors obtenir quelque chose du genre :
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-28 09:25 CET
Nmap scan report for box (192.168.1.1)
Host is up (0.0026s latency).
PORT STATE SERVICE
22/tcp filtered ssh
Nmap scan report for raspberrypi (192.168.1.31)
Host is up (0.0075s latency).
J'ai donc bien identifié l'adresse IP de mon raspberry à 192.168.1.31. Je n'ai plus qu'à m'y connecter en ssh.
Connexion serial
C'est ici qu'on va se servir de l'adaptateur USB - TTL (ou série, ou UART).
Tout d'abord, il faut activer la console sur le port série du raspberry. Pour ça, on a deux solutions.
Activer la console série
Via /boot/config.txt
Il faut modifier le fichier /boot/config.txt qui est présent sur la carte SD. On doit donc la lire avec un autre ordinateur et ouvrir le fichier config.txt puis ajouter tout en bas la ligne enable_uart=1.
On remet la carte SD dans le raspberry et on le rallume. (J'explique plus loin comment brancher l'adaptateur puis se connecter Ă la console).
Via l'outil raspi-config
Si votre raspberry est connecté à un écran, c'est assez facile. Vous lancez la commande :
sudo rasp-config
Vous allez dans Interfacing Options
puis Serial
. A la question Would you like a login shell to be accessible over serial?
répondez Yes
puis rebootez le raspberry.
Connecter l'adaptateur USB - série
Maintenant que l'option console via le port série est active, nous pouvons connecter notre adaptateur. Il y a en tout quatre cùbles à brancher mais deux sont optionnels.
Cùbles pour la liaison série
Les deux premiers cĂąbles Ă brancher sont ceux connectĂ©s aux broches RX et TX. LĂ il faut juste saisir la logique du systĂšme pour ne pas se tromper. En effet, sur le raspberry la broche RX (rĂ©ception donc) attend des donnĂ©es. Ces donnĂ©es doivent donc ĂȘtre Ă©mise depuis l'adapteur par la broche TX (transmission) car c'est lui qui va envoyer les informations.
Les broches des raspberry sont définies selon la photo ci-dessous :

Source : Microsoft - Raspberry Pi 2 & 3 Pin Mappings
Donc il faut brancher un cĂąble entre la broche RX de notre adaptateur et la broche TX du raspberry (broche numĂ©ro 08 sur la photo). De mĂȘme pour l'autre cĂąble, TX de l'adaptateur vers RX (broche numĂ©ro 10).
Avec ces deux cĂąbles, vous rebranchez tout et vous pourrez avoir accĂšs Ă votre console. Mais on peut faire un peut mieux ! En effet, l'adaptateur USB-TTL possĂšde Ă©galement une broche GND et +5v (normalement, c'est trĂšs souvent le cas). Et avec ces deux broches, on peut alimenter notre rasp !
CĂąble pour l'alimentation
Comme dit juste au-dessus, on peut alimenter notre raspberry avec notre adaptateur. Il suffit de connecter la broche GND de notre adaptateur à une des broches GND du rasp, il y en a plein, par exemple la numéro 06. Puis il faut connecter le +5v de l'adaptateur à un pin identique du nano ordinateur, la 02 ou la 04.
Et voilĂ ! Tout devrait se lancer correctement, avec trĂšs peu de cĂąble au final đ€.
Connection Ă la console
La vitesse par défaut est de 115200 bauds.
Pour se connecter, ça dépend de votre systÚme d'exploitation. Pour Windows, Putty sera le plus pratique, c'est l'outil le plus utilisé. Il faut choisir le bon port COM correspondant à son adaptateur et choisir la bonne vitesse.
Pour Linux et Mac, moi j'utilise l'utilitaire screen, c'est pratique et lĂ©ger mais il faut aimer la ligne de commande đ. Mais une fois qu'on connaĂźt deux-trois trucs, c'est un peu comme vim, on s'y fait et on l'apprĂ©cie. Pour ma part (sous Mac), pour accĂ©der Ă la console il me suffit de faire :
screen /dev/cu.SLAB_USBtoUART 115200
Si vous avez l'impression qu'il ne se passe rien, appuyez sur la touche Entrée
et le prompt devrait apparaßtre pour accéder au systÚme.
Toujours sous Mac, pour quitter une session screen je fait Ctrl A
puis je tape :quit
et je valide avec Entrée
. Ca peut servir de le savoir đ.
Voilà le résultat chez moi :

Conclusion
On a fait un tour rapide des diffĂ©rentes maniĂšres de se connecter Ă un raspberry pi sans Ă©cran. Moi ma mĂ©thode prĂ©fĂ©rĂ©e reste celle avec l'adaptateur USB, on a beaucoup moins de cĂąble mais on a quand mĂȘme besoin d'un PC Ă proximitĂ©. La solution en SSH conviendra aux boĂźtes que l'on veut plus cacher (genre derriĂšre la tĂ©lĂ© ^^).
Raspbian activant mDNS par défaut, on peut se connecter à une RPi dont on ne connait pas L'IP au moyen de :
RĂ©pondreSupprimerssh @.local
(ex: ssh raspberry.local si on a laissé le hostname par défaut)
Merci pour l'info ! Pas eu l'occasion d'utiliser la version DNS mais toujours bon Ă savoir :)
SupprimerJe ne comprend pas l'intĂ©rĂȘt !? Pourquoi ne pas simplement se connecter en SSH sur le raspberry pi par le rĂ©seaux ?
RĂ©pondreSupprimerça sert justement quand il n'y a pas de rĂ©seau (ou un problĂšme de connexion). ça peut servir quand tu fais ton propre Linux (avec Yocto ou Buildroot par exemple) pour debugger. Il y a Ă©galement le cas oĂč le raspberry est connectĂ© avec un autre type de liaison (LoRa, Sigfox, etc).
SupprimerBref, pas mal de cas d'usage au final ;)
Merci pour cet Ă©clairage ;)
Supprimer