Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Ordinateurs embarqués (SBC) > La carte Raspberry PI > Installation et configuration de la R-Pi > Se connecter à distance à la Raspberry Pi

Se connecter à distance à la Raspberry Pi

dimanche 24 juin 2012, par Julien H.

Cet article est destiné à tous ceux qui utilisent leur carte Raspberry Pi sans clavier ni souris, soit parce qu’elle est cachée (mode "serveur" sans écran) soit parce qu’elle est connectée à un équipement inadéquat à un usage de type ordinateur (écran multimédia, écran en voiture). Nous vous présentons :

 l’ouverture d’une console par connexion réseau depuis un second ordinateur (poste de travail, portable)
 le lancement de l’environnement graphique sur un autre écran que celui de la Raspberry Pi.

L’usage que nous avons d’une telle carte électronique est particulier : nous écrivons des programmes autonomes puis la carte se débrouille toute seule. C’est donc bien différent d’un ordinateur connecté à un écran, un clavier et une souris : on va continuer à écrire nos programmes sur nos ordinateurs, puis les charger dans la carte et les faire exécuter.

Bien entendu, on pourrait profiter de sa connectivité pour développer les programmes dessus, puis débrancher écran et périphériques et la placer sur une plateforme mobile. Après tout, beaucoup de robots des compétitions Robo Cup ou Eurobot sont faits ainsi.

Mais même dans ce cas, on peut vouloir suivre à distance le déroulement des opérations, et alors cet article vous servira aussi.

Activer SSH sur la Raspberry Pi

Rien de plus simple pour la distribution Debian R6 qui vient avec un script de démarrage spécial SSH : il suffit de se connecter à la RPi avec écran et clavier puis de s’identifier (pi/raspberry) et de déplacer le script au bon endroit :

# sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc

Puis de redémarrer, et c’est terminé !

Certains voudront générer des clés RSA, mais je n’ai pas très bien compris pourquoi. Cet article pourra être complété avec ces opérations, mais je n’en ai pas eu besoin.

Déterminer l’IP variable

Si vous laissez la connexion réseau par défaut de la carte, elle bénéficie d’un DHCP : sur un réseau local, elle prendra l’adresse libre que le serveur (boitier ADSL, serveur de configuration) lui aura donnée.

Parfois cette adresse est la suivante dans l’ordre (votre PC est 192.168.0.12 et la carte est la 192.168.0.13) mais j’ai observé des adresses parfois éloignées.

Plutôt que de deviner l’adresse, il est préférable de faire un scan des ordinateurs connectés ayant le port SSH (22) d’ouvert, et pour cela on utilise l’outil nmap (comme Néo dans Matrix !) :

nmap -p 22 192.168.0.0/24

On le fait avant et après connexion de la Raspberry Pi au réseau, et voici ce qu’on obtient :

On en déduit que notre Précieuse est sur l’adresse 192.168.0.17.

Cette adresse peut changer à chaque redémarrage de la carte, donc n’hésitez pas à refaire un nmap si vous ne pouvez plus vous connecter.

Environnement graphique à distance

Avoir un terminal en ligne de commande, c’est essentiel. Mais pour faire des démonstrations publiques, ou pour vérifier le bon fonctionnement de votre carte, il peut être intéressant d’accéder à l’interface graphique LXDE qui équipe la Raspberry Pi sous distribution Debian, Raspbian ou Occidentalis.

Pour cela, on garde la liaison par réseau (local ou Internet) avec la carte depuis un second ordinateur équipé de Linux et on demande l’ouverture de la session à travers le réseau.

Première étape : un second serveur X

Le serveur X est le programme de votre OS Linux qui gère l’affichage sur l’écran. On peut lancer plusieurs instances, même quand on ne dispose que d’un seul écran physique. Ces premières manipulations se font sur votre ordinateur de travail, pas sur la Raspberry Pi.

Attention, les fenêtres de votre écran actuel vont disparaître car c’est un affichage (ou display) nouveau, à l’adresse 1 (le premier étant à l’adresse 0) qui est initialisé. Notez donc bien la commande permettant de basculer de l’un à l’autre : CTRL + ALT + F7 pour revenir et CTRL + ALT + F8 pour aller sur le nouveau.


atelier@ubuntu : $ sudo xinit — :1

Une fois le nouvel affichage créé, une fenêtre avec une console en ligne de commande est ouverte. Ne la fermez pas, et revenez sur votre environnement de travail standard. Passez la commande en tâche de fond pour retrouver le prompt shell (CTRL + Z pour mettre en pause puis la commande "bg", comme background, pour passer en tâche de fond).

Seconde étape : lancement de la connexion

Demandez maintenant la connexion à votre carte Raspberry Pi :


atelier@ubuntu : $ DISPLAY=:1 ssh -X pi@10.42.0.77 lxsession

Avant d’appeler SSH, on précise quel numéro d’affichage on veut (le 1) et on indique à ssh qu’on veut transmettre les informations du serveur X puis on indique l’utilisateur pi et l’adresse, comme dans le cas précédent, et on termine en demandant le lancement de l’environnement graphique (lxsession).

Rien ne se passe ? Normal car vous êtes sur l’écran d’affichage X numéro 0, il faut passer au suivant avec CTRL + ALT + F8.

Vos commentaires

  • Le 2 septembre 2012 à 21:17, par ? En réponse à : Dhcp

    Bonjour. Sachez que vous pouvez rendre l’adresse IP fixe au niveau du serveur DHCP, en associant l’adresse MAC du raspberry pi avec l’adresse IP souhaitée.

    • Le 4 septembre 2012 à 16:07, par Julien H. En réponse à : Dhcp

      Comment fait-on ? Plusieurs m’ont dit que c’était possible, mais sans jamais livrer le secret :)

    • Le 14 novembre 2012 à 00:14, par Alban En réponse à : Dhcp

      Bonsoir ...
      Euh si j’ai bien compris la question il s’agit en fait sur le routeur DHCP de reserver une plage d’addresse IP fixe par exemple de l’adresse 192.168.1.25 a 192.168.1.50 et ensuite d’associer une IP fixe a la RPI comprise dans cette plage et enfin de l’assoier a la mac adresse de la Rpi ....

    • Le 14 novembre 2012 à 08:51, par Julien H. En réponse à : Dhcp

      Oui mais comment on fait concrètement ? C’est bien de dire ce qu’il faudrait faire mais encore faut-il expliquer les opérations.

    • Le 14 novembre 2012 à 09:45, par alban En réponse à : Dhcp

      Bonjour....
      Ok...Je vais essayer de te faire quelques captures d’ecran de mon routeur mais en fait l’interface varie en fonction des routeurs,mais le principe est toujours le meme...

    • Le 9 janvier 2013 à 08:59, par Esprit En réponse à : Dhcp

      Bonjour,

      Pour ma part, j’ai modifié le fichier de configuration réseau. (/etc/network/interfaces) comme sur ce lien :
      ( http://www.tropfacile.net/doku.php/raspberry-pi/comment-mettre-une-ip-statique ). C’est facile et efficace. 😉

      Sinon, il y a aussi VNC pour le contrôle à distance. (voir ce pdf : http://www.mon-club-elec.fr/mes_downloads/doc_raspberrypi/rasperrypi_personnalisation_du_systeme_de_base.pdf )

    Répondre à ce message

  • Le 24 octobre 2014 à 09:52, par kouraichi En réponse à : Se connecter à distance à la Raspberry Pi

    s’il vous plait je veux travailler avec raspberry chez moi et j’ai pas un ecran comment j’arrive pas a connecter raspberry avec mon pc portable j’ai essayé mais en vain coment je peux faire et merci pour vôtre attention

    • Le 31 octobre 2014 à 10:23, par Eric P. En réponse à : Se connecter à distance à la Raspberry Pi

      Il n’est pas possible de répondre à une question aussi vague et mal posée :/
      Il faudrait préciser ce que vous avez essayé et quelles erreurs cela a donné. Avez-vous essayé les innombrables tutoriels disponibles sur le Web ? Google est ton ami : "raspberry ssh" par exemple.

    Répondre à ce message

  • Le 30 juillet 2014 à 09:10, par baumann En réponse à : Se connecter à distance à la Raspberry Pi

    comment fait on avec le raspberry monté sous un autre OS ?

    Répondre à ce message

  • Le 21 octobre 2012 à 11:44, par ? En réponse à : Se connecter à distance à la Raspberry Pi

    Bonjour,
    pour l’environnement graphique à distance
    j’ai ce message d’erreur :

    Warning : No xauth data ; using fake authentication data for X11 forwarding.
    /usr/bin/xauth : file /home/pi/.Xauthority does not exist

    ** (lxpanel:4471) : WARNING ** : Config files are not found.

    • Le 21 octobre 2012 à 16:43, par Julien H. En réponse à : Se connecter à distance à la Raspberry Pi

      A moins que je me trompe, ce n’est pas un message d’erreur mais un message d’alerte ("warning"). Donc ça doit quand même marcher.

      Il signifie juste que l’identification n’utilise pas d’autorité xauth. Linux adore ce genre de remarques.

    • Le 24 novembre 2012 à 16:30, par ? En réponse à : Se connecter à distance à la Raspberry Pi

      quand je rentre la premiere commande sa met sa comme erreur :

      "root@raspberrypi :/home/pi# sudo xinit — :1

      _XSERVTransSocketOpenCOTSServer : Unable to open socket for inet6
      _XSERVTransOpen : transport open failed for inet6/raspberrypi:1
      _XSERVTransMakeAllCOTSServerListeners : failed to open listener for inet6

      X.Org X Server 1.7.7
      Release Date : 2010-05-04
      X Protocol Version 11, Revision 0
      Build Operating System : Linux 2.6.32 armv5tel Debian
      Current Operating System : Linux raspberrypi 3.1.9+ #90 Wed Apr 18 18:23:05 BST 2012 armv6l
      Kernel command line : dma.dmachans=0x3c bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708.boardrev=0x3 bcm2708.serial=0x508992a3 smsc95xx.macaddr=B8:27:EB:89:92:A3 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
      Build Date : 30 October 2011 09:07:45PM
      xorg-server 2:1.7.7-14 (Julien Cristau )
      Current version of pixman : 0.16.4
      Before reporting problems, check http://wiki.x.org
      to make sure that you have the latest version.
      Markers : (—) probed, (**) from config file, (==) default setting,
      (++) from command line, (!!) notice, (II) informational,
      (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
      (==) Log file : "/var/log/Xorg.1.log", Time : Sat Nov 24 16:27:37 2012
      (==) Using system config directory "/usr/share/X11/xorg.conf.d"
      Primary device is not PCI
      (EE) FBDEV(0) : FBIOBLANK : Operation not permitted
      SELinux : Disabled on system, not enabling in X server
      The XKEYBOARD keymap compiler (xkbcomp) reports :
      > Warning : Type "ONE_LEVEL" has 1 levels, but has 2 symbols
      > Ignoring extra symbols
      Errors from xkbcomp are not fatal to the X server
      (EE) FBDEV(0) : FBIOBLANK : Operation not permitted
      xinit : No such file or directory (errno 2) : no program named "xterm" in PATH

      Specify a program on the command line or make sure that /usr/bin
      is in your path.

      waiting for X server to shut down"

      Et quand je fais l’autre commande rien ne se passe

    • Le 25 novembre 2012 à 13:12, par Julien H. En réponse à : Se connecter à distance à la Raspberry Pi

      Bonjour (contrairement à vous je n’ai pas oublié d’être poli ni de me présenter),

      L’erreur est simple : ces commandes permettent de se lancer à distance depuis votre PC sous Linux vers votre Raspberry. Donc elles doivent être tapées dans un terminal du PC normal, pas dans le terminal de la Raspberry Pi.

      Je vais modifier l’article pour que ce soit encore plus clair. A noter qu’on pourrait aussi le faire d’une Raspberry Pi à une autre, mais je ne l’ai pas testé et le message en anglais explique que ce n’est pas possible sans changer la configuration de la Debian/Raspbian.

    • Le 25 novembre 2012 à 13:17, par Julien H. En réponse à : Se connecter à distance à la Raspberry Pi

      Re-bonjour,

      Oh, je viens de vérifier et c’était bien clair : "Ces premières manipulations se font sur votre ordinateur de travail, pas sur la Raspberry Pi." et on voit le prompt "atelier@ubuntu".

      Il faut lire plus attentivement :) :)

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.