Contrôler un Raspberry pi, sans écran ni clavier ni souris.

Table des matières   Liens internes à cette page

0) Introduction.
1) Connexion direct du Raspberry pi à un clavier, une souris et un écran.
2) Connexion à un autre ordinateur à travers un réseau local.
3) Connexion à un autre ordinateur à travers un réseau public.
4) Connexion à un autre ordinateur à l'aide un switch et de câble réseau RJ45.
5) Connexion à un autre ordinateur à l'aide d'un hotspot fourni par un smartphone.
6) Connexion à un autre ordinateur à travers un câble réseau RJ45.
7) Connexion à un autre ordinateur à travers un câble USB spécial.

0) Introduction   Top

Tout ce qui suit concerne le système d'exploitation GNU/Linux Ubuntu avec KDE.
Il peut être adapté à d'autres systèmes d'exploitations.
Le but de cette page est de donner des informations sur des manières de prendre contrôle d'un Raspberry pi, principalement à l'aide d'un autre ordinateur.
L'utilisation des protocoles SSH et VNC sera fréquente.

Plus d'information, mieux présentée est disponible sous : ssh vnc nfs ...
En particulier les logiciels à installer sont bien indiqués.

1) Connexion direct du Raspberry pi à un clavier, une souris et un écran.   Top

Le plus simple est d'utiliser un clavier USB, une souris USB et un écran avec une connectique HDMI.
Il y a de nombreux avantages évident de cette manière de procéder, particulièrement la simplicité.
Il y a deux désavantages de cette manière de faire, qui seront comblés plus loin.
1) Un clavier, une souris et un écran, c'est encombrant et cela coûte.
2) Si on veut enregistrer ce qui se passe sur l'écran du Raspberry pi, par exemple pour faire un tutoriel, c'est très compliqué ainsi.

2) Connexion à un autre ordinateur à travers un réseau local.   Top

Après avoir ajusté quelques paramètres du système d'exploitation Raspbian du Raspberry pi, On peut contrôler entièrement le Raspberry pi depuis un autre ordinateur (desktop ou laptop). Cela permet de se passer d'un clavier, d'une souris et d'un écran.
Cela permet également d'enregistrer la fenêtre représentant l'écran du Raspberry pi, pour faire un tutoriel.
( Voici des exemples de vidéos d'explications que j'ai faites. )
Le plus simple est lorsque le Raspberry pi et votre ordinateur sont connectés au même routeur-switch. Dans ce cas la prise de contrôle du Raspberry pi est assez simple.
Explications de l'ajustement des paramètrs du système d'exploitation Raspbian.
Ensuite des explications sont données sur la manière de procéder, en utilsant les protocoles SSH et VNC.

3) Connexion à un autre ordinateur à travers un réseau public.   Top

Il est aussi possible de prendre contrôle d'un Raspberry pi à travers une connexion Internet public. Cette manière de faire est assez similaire que celle à travers un réseau local, mais demande de configurer un port du modem sur lequel le Raspberry pi est connecté.
Cela m'a été utile, pour piloter à distance à travers Internet, une caméra qui était branchée au Raspberry pi. Avec un montage électronique connecté au port GPIO, j'ai pu faire tourner un moteur sur lequel la caméra était branchée et ainsi faire tourner la caméra. Je voyais sur mon écran ce que la caméra filmait et transmettait au Raspberry pi.

4) Connexion à un autre ordinateur à l'aide un switch et de câble réseau RJ45.   Top

Si on n'est pas chez soi et que l'on n'a pas accès à une connexion local pour son Raspberry pi, on peut utiliser un switch ou un routeur-switch pour contrôler le Raspberry pi à l'aide de son ordinateur. Pour cela, il suffit de brancher le Raspberry pi au switch à l'aide d'un câble Ethernet RJ45 et de brancher l'ordinateur au même switch à l'aide d'un autre câble Ethernet RJ45.
Une fois le branchement fait, on procède de la même manière que celle décrite au point 2) où la connexion se fait à travers un réseau local.
On verra plus bas que l'on peut également brancher le Raspberry pi directement à l'ordinateur à l'aide d'un câble Ethernet RJ45.

5) Connexion à un autre ordinateur à l'aide d'un hotspot fourni par un smartphone.   Top

Si on ne possède pas de câble RJ45, il est possible d'utiliser un smartphone pour contrôler le Raspberry pi à l'aide d'un ordinateur. Pour cela une préparation initiale est nécessaire.
En ayant utilisé au autre moyen de contrôle du Raspberry pi, il faut le connecter une fois pas Wifi au "hot spot" de votre smartphone.
Chez moi, sur le smartphone sous Androïd, je vais sous "paramètres" > "Modem et point d'accès" > "Point d'accès mobile", je l'active.
Sur le Raspberry pi, je détecte cette connexion Wifi et je me connecte dessus. Il faut que la connexion se fasse par défaut automatiquement sur ce Wifi lorsqu'il est détecté.
Une fois cette préparation faite, on peut suivre les étapes suivantes :
1) Mettre son smartphone en mode "hot spot".
2) Allumer l'ordinateur et se connecter au réseau Wifi mis à disposition par le smartphone.
3) Allumer le Raspberry pi. Normalement il se connectera automatiquement au Wifi su smartphone.
4) Ouvrir un terminal sur l'ordinateur et taper : ifconfig qui indiquera l'adresse ip local du Wifi.
hostname -I donnera aussi les adresses ip liés à l'ordinateur.
5) Par exemple si l'adresse est : 192.168.43.7, taper nmap 192.168.43.*
Cela donnera une adresse du genre 192.168.43.xxx (xxx = 121 chez moi).
sudo arp-scan -l est une alternative à "nmap". (Installé par : sudo apt install arp-scan
6) Taper ssh pi@192.168.43.xxx pour vous connecter au Raspberry pi.
Tapez votre mot de passe ("raspberry" par défaut) et vous êtes connecté en mode texte au Raspberry pi.
7) Il suffit de taper x11vnc -display :0 et de se connecter par vnc au Raspberry pi comme décrit dans les liens donnés plus haut pour se connecter en mode graphique.
Depuis un autre terminal, on tape : gvncview 192.168.43.xxx:0 normalement. Un mot de passe peut être ajouté, suivant où on se trouve.
Cela n'est pas réexpliqué ici, mais est expliqué ici et .
C'est la magie du Wifi, qui permet de connecter et contrôler son Raspberry pi depuis un ordinateur, dans liaison physique avec un fil.
Vu qu'il n'y a pas d'accès au réseau Internet, cette connexion ne consomme aucun transfert Internet. Par contre elle consomme la batterie du smartphone.
°) Il est étrange de constater que tous les mots de passes de connexions Wifi depuis le Raspberry pi sont en clairs (non codés) dans le fichier : /etc/wpa_supplicant/wpa_supplicant.conf

6) Connexion à un autre ordinateur à travers un câble réseau RJ45.   Top

Si on est à la maison et/ou on a la possibilité de connecter le Raspberry pi et son ordinateur à un réseau local, soit par câble, soit par Wifi, la méthode expliquée au point 2) est certainement la plus simple et celle à conseiller.
La connexion à travers le "hot spot" fourni par son smartphone est aussi une solution intéressante, mais elle a le défaut de consommer la batterie du smartphone.
Si aucune connexion à travers un réseau local n'est disponible, voici une méthode intéressante, qui utilise une connexion directe entre le Raspberry pi et l'ordinateur à l'aide d'un câble Ethernet RJ45. Autrefois, un câble croisé était nécessaire, mais ce n'est plus le cas de nos jours, car l'ordinateur ou le Raspberry pi détecte automatiquement le type de câble utilisé.
Voici ma source.
Autre source en anglais.
Voir aussi ma page : ssh vnc nfs ..., pour savoir ce qu'il faut installer.

Dans tout ce qui suit, il faut connecter le Raspberry pi à l'ordinateur par un câble Ethernet RJ45.

À faire une fois sur le Raspberry pi (le serveur).
Se connecter d'une manière ou d'une autre au Raspberry pi.
Editer le fichier "/etc/rc.local", soit en utilisant "midnight commander" mc, soit en tapant sudo nano /etc/rc.local
Ajouté en fin de fichier :
# Adjonction faite le ... c'est juste un commentaire
sudo ifconfig eth0 169.254.243.127 netmask 255.255.255.0 up

Remarquez que l'IP termine par : 127. Plus loin on ajoutera un IP qui termine par : 128.
Sauvez et redémarrez le Raspberry pi.

Il est difficile de savoir quel fichier modifier pour avoir une exécution automatique d'un programme au départ du Raspberry pi.
"/home/pi/.bashrc" contient des instructions exécutée au lancement d'un Terminal.
/etc/rc.local est celui qui me semble le plus approprier pour avoir un "autoexec", donc une exécutions automatiques d'instructions au départ du Raspberry pi.
"/etc/init.d", "/lib/systemd/system", "crontab" sont d'autres pistes que je n'ai pas explorées.

Ensuite, pour connecter le Raspberry pi à l'ordinateur à l'aide d'un câble Ethernet RJ45 :
Sur l'ordinateur (le client), tapez
hostname -I
ifconfig
sudo ifconfig enp1s0f1 169.254.243.128 netmask 255.255.255.0 up
hostname -I
ifconfig
Enclencher le Raspberry pi ou le redémarrer.
nmap 169.254.243.*
Seule la troisième ligne est utile, les autres lignes servent de tests et de récolte d'information.
La première ligne montre zéro ou une adresse IP, qui est celle du Wifi.
La 2e ligne donne les noms des réseaux possibles.
Chez moi, la première ligne donne enp1s0f1, qui est utilisé dans la 3e ligne de commande ci-dessus. Des noms possibles sur d'autres ordinateurs peuvent être : "eth0", "eth1", "enp3s0".
Remarquez qu'aucune adresse IP n'est associée à "enp1s0f1".
La 3e ligne associe l'adresse IP : 169.254.243.128" à "enp1s0f1".
Remarquez que le 4e nombre de l'IP est 128, différent du "127" du Raspberry pi.
La 4e ligne montre une adresse IP de plus que précédemment, qui est celle (169.254.243.128) que l'on vient d'associer à "enp1s0f1".
La 5e ligne montre qu'une adresse IP est associée à "enp1s0f1".
La 6e ligne (nmap) devrait vous indiquer que au moins deux adresses IP sont détectées, avec les ports ouverts. En particulier, l'IP "169.254.243.127" du Raspberry pi doit être détectée. Si ce n'est pas le cas, désolé, re-tester.

Si l'IP du Raspberry pi est bien détectée, on peut s'y connecter comme lors d'une connexion à travers Internet.
Dans un Terminal de l'ordinateur (le client), taper :
ssh 169.254.243.127 -l pi -p 5904
Entrer le mot de passe du Raspberry pi et la connexion en mode Terminal devrait se faire.
Le mot de passe par défaut du Raspberry pi est : raspberry
ssh pi@169.254.243.127 -p 5904 est une autre possibilité.
La fin -p 5904 ne doit être présente que s'il y a eu une redirection mémorisée dans le Raspberry pi.
C.f. ssh vnc nfs ..., où il est indiqué qu'on peut modifier le fichier du Raspberry pi (le serveur) : "sudo nano /etc/ssh/sshd_config", pour changer la ligne "Port 22" en "Port 5904", pour utiliser le port 5904 au lieu du port standard 22, lors d'une connexion ssh.

Dans ce Terminal de l'ordinateur (le client), qui commande le Raspberry pi (serveur) taper :
x11vnc -passwd unmot -forever -display :0
Dans un autre Terminal de l'ordinateur (le client), taper :
vncviewer 169.254.243.127:0
Le mot de passe : "unmot" devra être tapé.
Au lieu du ":0", il faut parfois taper ":1" ou ":2", qui est visible à la fin du texte écrit dans le premier Terminal du client.
Suivant ce qui a été installé, il faut taper : "gvncviewer 169.254.243.127:0"

La version par défaut de "x11vnc" a un bug et se déconnecte souvent. C'est la version 0.9.13.
On peut avoir la version 0.9.14 qui est beaucoup plus stable.
C.f. ssh vnc nfs ..., le supplément n°7), qui indique comment faire.
En 7b) je mets à disposition une version 0.9.14 compilée pour le Raspberry pi.

Pour des informations sur la couleur du "prompt".

Pour ne pas devoir taper à chaque fois la commande : "sudo ifconfig enp1s0f1 169.254.243.128 netmask 255.255.255.0 up" depuis un terminal de l'ordinateur (client) on peut ajouter cette commande dans le fichier "$HOME/.bashrc" de l'ordinateur.

J'ai lu que le fichier "/etc/dhcpcd.conf" a de l'importance, mais je suis dans le flou à ce sujet. J'ai aussi tapé une fois : "sudo dhcpcd", mais je ne sais pas quelle est son utilité.

Résumé en images

terminal 01
Remarquez :
° "hostname -I" ne donne que l'IP du wifi.
° le nom enp1s0f1
° l'absence de "inet numéro"
° le "prompt", qui est "bg@why:~$". On est dans le terminal client.

terminal 02
Remarquez :
° "hostname -I" donne le nouvel IP (169.254.243.128" et l'IP du wifi.
° le nom enp1s0f1
° la présence "inet 169.254.243.128"
° le "nmap" qui n'a qu'une seule adresse IP détectée : (1 host up).
° le "prompt", qui est "bg@why:~$". On est dans le terminal client.

terminal 04
Remarquez :
° le nom du terminal : "Terminal-pi@pi:~"
° le "nmap" qui détecte une 2e adresse IP (169.254.243.127).
° "hostname -I" donne le nouvel IP (169.254.243.128) et l'IP du wifi.
° après le "ssh 169.254.243.127 -l pi -p 5904"
  le "prompt", qui est "bg@pi:~ $". On est dans le terminal serveur, celui du Raspberry pi.

terminal 05
Remarquez :
° le nom du terminal : "Terminal-pi@pi:~"
° le "prompt", qui est "bg@pi:~ $". On est dans le terminal serveur, celui du Raspberry pi.
° le nom eth0
° la présence "inet 169.254.243.127". 127 pour le serveur, 128 pour le client.
° le "nmap" qui détecte une 2e adresse IP (169.254.243.127).

terminal 06
Remarquez :
° le nom du terminal : "Terminal-pi@pi:~" et le "prompt".
° "Apps/x11vnc -V" donne la version "0.9.14
° "x11vnc -V" donnerait la version "0.9.13, qui plante souvent.
° "Apps/x11vnc -passwd unmot -forever -display :0", avec le début de la réponse.

terminal 07
Remarquez :
° la fin de la réponse à : "Apps/x11vnc -passwd unmot -forever -display :0"
° la présence du pi:0, qui est parfois "pi:1"
° la présence du PORT=5900, qui est "PORT=22", par défaut.

terminal 08
Remarquez :
° le nom du terminal : "Terminal <2>"
° le "prompt", qui est "bg@why:~ $". On est dans un 2e Terminal client.
° "vncviewer 169.254.243.127:0", pour voir la fenêtre graphique du Raspberry pi.
  le "Password" = unmot
  il a été défini dans la commande "x11vnc -passwd unmot ..."

terminal 09.jpg
Remarquez :
° on est sur le client (l'ordinateur)
° on voit le contenu de la fenêtre graphique du serveur (le Raspberry pi).

terminal 10.jpg
Juste pour montrer la fenêtre représentant l'écran du serveur (le Raspberry pi) visible sur l'écran du client (l'ordinateur).


7) Connexion à un autre ordinateur à travers un câble USB spécial.   Top

Voici une méthode originale de contrôle d'un Raspberry pi par un ordinateur. La transmission n'est pas rapide et on est limité en mode texte, de plus il faut un câble USB spécial, mais dans certain cas, cela peut dépanner.
Voici ma source.
Voici une autre source, en anglais.
Il faut effectuer les connexions suivantes :
° Le câble rouge sur la pin 2 ou la pin 4 : +5V Ne pas le connecter en plus d'une alimentation externe.
° Le câble noir sur la pin 6 : Ground = 0 V
° Le câble blanc sur la pin 8 : GPIO 14 = UART0 TXD
° Le câble vert sur la pin 10 : GPIO 15 = UART0 RXD
Le câble rouge peut donc servir à alimenter le Raspberry pi depuis l'ordinateur.
Dans le lien que j'ai donné, l'image est correcte, mais il y a une erreur dans le texte, qui indique de connecter le câble vert sur le pin 8 et le blanc sur le pin 10.
En fait, il faut connecter le câble vert sur le pin 10 et le blanc sur le pin 8.
N'oubliez pas de branché la prise USB dans l'ordinateur.

Il faut avoir installer sur l'ordinateur le logiciel "screen" sudo apt install screen
Ensuite, depuis un terminal, il faut taper :
sudo screen /dev/ttyUSB0 115200
Il faut taper le mot de passe de l'ordinateur (à cause du "sudo")
Au login, il fait taper le nom d'utilisateur du Raspberry pi : pi par défaut
Au pass il faut taper le mot de passe du Raspberry pi : raspberry par défaut.
Pour se déconnecter, on peut taper : ctrl+a d, (se détacher).
On peut aussi taper : ctrl+a k, pour supprimer le screen.
Plus d'informations sur la commande "screen".
screen -ls indique les screen existants.
screen -r rattacher un screen existant.
screen -r numéro rattache le screen "numéro".
screen -wipe supprime les screen morts.

Si on a changé la vitesse définie dans le fichier "/boot/cmdline.txt" du Raspberry pi à 230400, alors sudo screen /dev/ttyUSB0 230400 fonctionne aussi et est plus rapide. Les autres vitesses plus rapides n'ont pas fonctionnées chez moi.

Si le device "ttyUSB0" n'existe pas, la commande dmesg |grep tty" permet de voir quels sont les ports "tty" disponibles.
sudo stty -a -F /dev/ttyUSB0, depuis l'ordinateur, indique le baud rate du port ttyUSB0.


Plan du Site : Home   arrow   Raspberry pi   arrow   interface.html ( = http://www.juggling.ch/gisin/raspberrypi/interface.html )


Page mise à jour le 18 février 2020 par Bernard Gisin     ( Envoyer un e-mail )
Hébergement par : www.infomaniak.ch