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