LinuxCNC – contrôle par VNC

Voici la suite de la série sur LinuxCNC
L’ordinateur qui contrôle la CNC se trouve au garage, mais je ne reste pas toujours devant et mon bureau est au 2e étage. Si je veux voir l’avancement, il faut descendre 2 étages en traversant la maison, aller au garage, constater que tout va bien (ou mal) puis refaire le trajet en sens inverse.

Je vais donc vous apprendre à paramétrer votre ordinateur pour vous y connecter avec VNC
Les étapes sont:

  1. – Installation du serveur VNC sur l’ordinateur
  2. – Activation du serveur VNC
  3. – Paramétrage du serveur VNC
  4. – Lancement du serveur VNC
  5. – Lancement du serveur vnc avec la session

1-Installation du serveur

Suivez les instructions au dessus pour installer les paquets x11vnc et x11vnc-data. N’installez pas d’autre serveur vnc, il vous ouvrent une nouvelle session et vous ne verrez pas celle qui est en cours sur la machine CNC.
Vous pouvez aussi ouvrir un terminal (applications/Accessoires/Terminal) et taper la commande suivante, ce qui revient au même:

sudo aptitude install x11vnc x11vnc-data

2-Activation du serveur

Il faut autoriser les connexions entrantes vers la session graphique. Nous allons modifier un fichier que nous avons déjà modifié pour la connexion automatique. Mais maintenant, nous allons le lancer en ligne de commande.
Dans le terminal, tapez (ou copiez collez avec la molette, voir au dessus) la commande suivante:

sudo geany /etc/lightdm/lightdm.conf

Ce qui demande d’ouvrir en root (le sudo) avec geany le fichier /etc/lightdm/lightdm.conf
En bas du fichier, décommentez et modifiez les lignes sous [VNCServer] pour obtenir ceci:

[VNCServer]
enabled=true
port=5900
width=1024
height=768
depth=8

Notez le true à la place du false. Ne modifiez pas les valeurs pour l’instant. Sauvegardez le fichier et fermez geany.

3-Paramétrage du serveur VNC

L’ordinateur qui contrôle ma CNC est sur mon réseau local, qui n’est pas accessible depuis l’extérieur par VNC, je pourrai donc me permettre de ne pas mettre de mot de passe. MAIS, je n’ai pas envie que quelqu’un, en local ou à distance, s’amuse à démarrer la broche pendant que je change une fraise! Donc, nous allons mettre un mot de passe au serveur VNC qui n’autorisera pas les connexions sans celui ci.

Ouvrez un terminal, ou réutilisez celui ouvert, et tapez la commande suivante (validez par entrée):

x11vnc -storepasswd

Il vous demande ensuite quel mot de passe vous désirez mettre. Il n’affiche pas les retours de frappe, c’est normal, alors concentrez vous sur le mot de passe. Validez à chaque fois, et les messages suivant. Le mot de passe sera stocké dans /home/votre_login/.vnc/passwd.

4-Lancement du serveur

Dès maintenant, nous allons pouvoir lancer le serveur, mais pour éviter d’avoir à retaper une longue ligne de commande à chaque fois, nous allons l’enregistrer dans un fichier.
Dans le terminal, entrez la commande suivante:

geany /home/votre_login/serveur_VNC.sh

Remplacez votre_login par le login de l’utilisateur sur l’ordinateur.
Copiez le code suivant dans le fichier, puis enregistrez:

#!/bin/bash
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/manu/.vnc/passwd -rfbport 5900 -shared

On demande de lancer le serveur vnc (x11vnc) avec les options d’authentification invité (-auth guess) qui tournera en permanence (-forever) en local (-loop) et ne plantera pas si une application graphique se crash (-noxdamage) et se ralancera (-repeat) en utilisant les mots de passe stockés dans le fichier (-rfbauth /home/manu/.vnc/passwd) sur le port donné (-rfbport 5900) en session partagée (-shared).
Vous voyez qu’on peut paramétrer finement le serveur…
Enregistrez et fermez geany.

On va donner l’autorisation à ce fichier d’être lancé comme un programme en tapant la commande suivante dans le terminal:

chmod +x /home/votre_login/serveur_VNC.sh

C’est fait, vous venez de créer votre premier script! Vous pouvez le lancer pour tester l’accès VNC depuis un autre ordinateur par la commande:

bash /home/votre_login/serveur_VNC.sh

Plein de choses s’affichent dans la console: ce sont les logs du serveur VNC qui vous tient au courant de tout ce qui se passe. En cas de problème, il indique ce qui s’est passé et pourquoi.
Allez sur un autre ordinateur et lancez une visualisation VNC. Je vous laisse trouver tout seul un client VNC pour votre ordinateur. Comme on est en réseau local, montez la profondeur de couleur au maximum, ainsi que la qualité.

Notez que si vous lancez dans un terminal la commande x11vnc sans les options, vous aurez accès sans mot de passe au serveur VNC, mais dès que vous fermerez la connexion, le serveur s’arrêtera et vous ne pourrez plus vous y reconnecter.

Arrêtez le serveur VNC par CTRL+C ou en fermant le terminal dans lequel il est lancé.

5 – Lancement automatique du serveur VNC avec la session

Actuellement, il faut lancer le script manuellement pour pouvoir se connecter à l’ordinateur CNC. Pas très pratique quand on est déjà en haut et qu’on a oublié de le faire…

On va le faire graphiquement.
Allez dans le menu Applications/Paramètres/Session et démarrage. Dans l’onglet Démarrage automatique cliquez sur le bouton Ajouter.
Une fenêtre vous demande les détails:

  • – Le nom: vous mettez ce que vous voulez. Mettez un truc parlant comme « Serveur VNC »
  • – La description: Libre aussi, mais soyez précis, ça aide par la suite. « Lancement du serveur VNC au démarrage de la session »
  • – La commande: cliquez sur le petit dossier à droite du champ et naviguez jusqu’au script que vous avons créé. Vous le trouverez dans votre_login puisque c’est là qu’on l’a placé. Une fois le fichier validé, vous devriez avoir /home/votre_login/serveur_VNC.sh.

Validez la fenêtre, fermez tout et redémarrez. Vous pouvez désormais vous connecter au serveur, voir ce qui s’y passe et agir sur la session ouverte.

Articles en relation: