Raspberry Pi : Configurer un VNC

Rebonjour à tous, comment allez-vous?

En fait, il y aura bien un article de tutoriel aujourd’hui en fin de compte… Effectivement je suis en train de rédiger le prochain article sur une création et je me rends compte qu’il n’y a pas de tuto vraiment efficace pour configurer un VNC sur un Pi quand on fait une recherche rapide sur Google… Il faut avoir les bonnes adresses… 😑

Comme l’installation est très simple et rapide, je ne vais vous fournir que les bonnes lignes de code…

Qu’est-ce qu’un VNC?

Vous savez sûrement déjà vous connecter à votre Pi via un terminal : vous êtes alors en ligne de commande. Vous utilisez peut-être également FileZilla pour envoyer des fichiers ou dossiers sur votre Raspberry Pi. Même si FileZilla a une interface graphique on est toujours en ligne de commande… Malheureusement, il faut parfois être devant l’écran pour faire certaines choses comme exécuter une application. Le but du VNC est de vous faire voir l’écran du Pi à distance.

Problème :

Comment faire si vous n’avez pas d’écran branché à votre Pi et que vous devez utiliser une application graphique comme l’Arduino IDE pour uploader du code sur la Mega que vous avez branchez en USB sur votre Raspberry? 😈

Ah un petit détail technique, les deux cartes sont enfermées dans un boitier et très difficilement accessibles physiquement… Vous avez uniquement un accès WiFi classique à votre Pi. 😋

Histoire de faciliter la chose : vous n’avez pas envie de vous casser la tête et il est hors de question d’ouvrir le boitier. Comme vous êtes aussi un peu avare, il ne faut pas racheter de matériel… 😇

Il y aurait bien la possibilité d’utiliser avrdude en ligne de commande, mais reportez vous au paragraphe précédent pour comprendre les raisons qui font que cette solution ne sera pas appliquée… 😅

Réponse au problème :

On installe un serveur VNC et l’Arduino IDE sur le Pi…

Installation :

La première chose à faire est comme d’habitude :

sudo apt-get update
sudo apt-get upgrade

Ensuite on va mettre une application pour tester une fois le VNC mis en place, dans mon cas l’Arduino IDE :

sudo apt-get install arduino

Puis on installe le serveur VNC :

sudo apt-get install tightvncserver

On démarre ensuite tightvncserver, qui va nous demander d’indiquer deux fois un mot de passe. Le nombre maximum de caractères est limité à 8. Puis il vous demandera si vous voulez créer un mot de passe pour la lecture seule il faudra répondre Non :

tightvncserver

Une fois cela fait, comme un serveur a démarré, il faut l’arrêter avec :

tightvncserver -kill :0

ou bien :

tightvncserver -kill :1

Attention, on va configurer le serveur pour l’utilisateur pi, il vous faudra modifier la ligne VNCUSER=’pi’ dans le fichier /etc/init.d/vncboot

Configurons maintenant notre serveur pour qu’il démarre automatiquement avec les bons réglages afin de préserver de la bande passante et des ressources précieuses sur le Pi :

sudo nano /etc/init.d/vncboot

Copiez, collez le code suivant dedans :

#!/bin/sh
# /etc/init.d/tightvncserver
# Customised by Stewart Watkiss
#http://www.penguintutor.com/linux/tightvnc
# Set the VNCUSER variable to the name of the user to start tightvncserver under
VNCUSER='pi'
eval cd ~$VNCUSER
case "$1" in
 start)
   su $VNCUSER -c '/usr/bin/tightvncserver :1 -geometry 800x600 -depth 24 -dpi 96' 
#ma seul modification par rapport au script d origine cité en en-tête est d'avoir rajouter des paramètres vidéos à la ligne précédente afin d'économiser des ressources
   echo "Starting TightVNC server for $VNCUSER "
   ;;
 stop)
   pkill Xtightvnc
   echo "Tightvncserver stopped"
   ;;
 *)
   echo "Usage: /etc/init.d/tightvncserver {start|stop}"
   exit 1
   ;;
esac
exit 0

On enregistre bien le fichier en le quittant… On lui donne les bons droits :

sudo chmod 755 /etc/init.d/vncboot

On met à jour les services :

sudo update-rc.d /etc/init.d/vncboot defaults

Si la précédente commande ne fonctionne pas, utilisez :

sudo update-rc.d vncboot defaults

Il reste juste à modifier le fichier suivant :

sudo nano .vnc/xstartup

Supprimez tout ce qu’il contient et remplacez le par :

!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid black
/usr/bin/lxsession -s LXDE &

Enregistrez les modifications et quittez le fichier. Enfin redémarrez votre pi :

sudo reboot

Si vous voulez vérifier que le vnc fonctionne après le reboot vous pouvez faire un :

ps axg

Vous devriez normalement voir la ligne suivante :

Xtightvnc :1 -desktop X -auth /home/pi/.Xauthority -geometry 800x600 -depth 24 -rfbwait 120000 -rfbauth /home/pi/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/

Connexion au VNC :

Sur Windows, vous pouvez utiliser le logiciel gratuit qui s’appelle realvnc, disponible ici : https://www.realvnc.com/download/

Les utilisateurs de Linux et OS X sont mieux équipés, car il y’a d’origine un client VNC… Sur Linux il faut utiliser le paquet X11vnc je crois. Et sur OS X? il suffit de faire CMD+K dans une fenêtre Finder…

L’adresse à utiliser pour vous connectez est du type :

vnc://IP_DE_VOTRE_RPI:5901

Pourquoi le port 5901? Car dans le script vncboot nous avons utilisé le paramètre :1 et non :0 ce qui force le port en 5901 au lieu du 5900 traditionnel… Si tout va bien et une fois le  mot de passe que vous avez défini plus haut tapé vous devriez voir apparaître le bureau de votre Raspberry Pi… Il sera alors très facile de démarré l’application Arduino IDE et d’uploader un nouveau code vers votre Arduino sans passer par la ligne de commande et avrdude…

N’attendez pas des performances extraordinaires il n’est pas facile de travailler comme cela, toutefois c’est suffisant pour faire des ajustements… J’ai choisi une résolution de 800×600 afin de ne pas trop consommer de bande passante et de ressources sur le Raspberry…

Si vous voulez avoir accès au VNC de votre Raspberry en dehors de chez vous, il faudra bien entendu ouvrir le port 5901 de votre box…

Traduit et adapté depuis  :    http://elinux.org/RPi_VNC_Server

@Bientôt Anders

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Traduction :