View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Configurer un accès "bureau distant" sous wifi entre 2 PC sous Ubuntu.

Par X. HINAULT. 03 avril 2011.

Présentation

Il s'agit ici de mettre en place un réseau wifi entre 2 PC sous Ubuntu :

  • l'un étant le PC auquel on souhaite accéder à distance (ce PC sera appelé le SERVEUR car il donne accès à son bureau)
  • l'autre PC étant le PC depuis lequel on souhaite voir et contrôler le PC à distance comme si on travaillait directement dessus ( ce PC est appelé le CLIENT car il accède au PC distant).

La procédure présentée ici est envisagée dans le cas d'un accès distant au bureau d'un eeePC embarqué dans le cas d'un robot ou autre : tous les paramètres de sécurité sont ici désactivés pour permettre l'accès direct distant sans nécessité de login manuel sur le PC serveur. Dans le cas d'un usage normal, il est fortement conseillé de maintenir les règles de sécurité en cas d'accès distant par un autre ordinateur.

Sources utiles

Matériel nécessaire

  • un PC sous Ubuntu connecté auquel on souhaite accéder à distance, connecté en wifi au routeur wifi
  • un second PC sous Ubuntu depuis lequel on souhaite contrôler le PC distant, connecté en wifi au routeur wifi
  • un routeur wifi DHCP, pour moi la livebox de la maison...

Etapes préalables : mise en place d'un réseau wifi entre 2 PC sous Ubuntu.

  • On suppose donc ici que les deux PC forment un réseau via le routeur wifi. L'autre solution serait un réseau Adhoc (point à point) entre les 2 PC... mais c'est pas ce qu'on fait ici.

La mise en place du réseau wifi entre les 2 PC nécessite :

Configuration du SERVEUR (le PC auquel on veut accéder à distance) :

Dans le cas de l'utilisation de XFCE, la procédure est la suivante : Pour vino, il faut

  • créer un lanceur vino ou faire $ vino-preferences (et pas sudo vino-preferences +++)
  • il faut ensuite, avant une connexion, lancer le serveur... Dans une console, faire : /usr/lib/vino/vino-server (et pas sudo /usr/lib/vino/vino-server +++)
  • si on veut que le serveur soit toujours actif, on peut le mettre dans mettre au démarrage . Dans Xfce 4.8, c'est dans Applications > Paramètres >Session et démarrage > onglet Démarrage automatique > Ajouter et /usr/lib/vino/vino-server

et çà marche !

  • Ubuntu propose en standard un programme de partage de bureau, appelé Vino. Pour le configurer, aller dans Système > Préférence > Bureau à distance :
  • Dans la fenêtre qui s'ouvre, fixer les paramètres d'accès au "bureau à distance" :
    • autoriser d'autres utilisateurs à voir votre bureau
    • autoriser d'autres utilisateurs à contrôler votre bureau
    • désactiver tous les paramètres de sécurité (pour pouvoir accéder à ce PC sans avoir à valider quoi que ce soit... sinon, on perd l'intérêt de l'accès distant embarqué..)
    • noter au passage l'adresse ip du pc serveur.

La procédure présentée ici est envisagée dans le cas d'un accès distant au bureau d'un eeePC embarqué dans le cas d'un robot ou autre : tous les paramètres de sécurité sont ici désactivés pour permettre l'accès direct distant sans nécessité de login manuel sur le PC serveur. Dans le cas d'un usage normal, il est fortement conseillé de maintenir les règles de sécurité en cas d'accès distant par un autre ordinateur. On peut, au minimum, laisser la demande d'un mot de passe. Au mieux, on pourra sécuriser l'accès par SSH.

  • Bon, ben c'est tout côté serveur...: trois clics et votre PC embarqué est accessible par le résau wifi de façon distante ! Et dire qu'il y en a qui n'aiment pas Gnu/Linux... y paraît que c'est compliqué... y paraît... je laisse donc les windowsiens se dépatouiller... et je continue ma configuration côté client...

Configuration du CLIENT (le PC qui permet d'accéder à distance au bureau du PC distant)

  • Il y a plusieurs solutions possibles pour le logiciel client de visualisation du bureau à distance sous Ubuntu :
    • Remmina,
    • Terminal Server Client,
    • Vinagre.
    • xtightvncviewer
    • ..

Avec xtightvncviewer

  • Cette solution a le mérite d'être à la fois très simple et en plus très rapide pour l'accès au bureau distant, ce qui est essentiel dans le cas du contrôle à distance d'un robot par exemple.
  • Installation : installer le paquet xtightvncviewer depuis Synaptic
  • Utilisation : il suffit de lancer un Terminal et de saisir la ligne de commande suivante (ici 192.168.1.x représente l'adresse IP du poste Serveur) :
xtightvncviewer 192.168.1.x
  • A noter qu'il est possible de paramétrer plus finement le client VNC :
    • pour fixer la qualité JPEG utilisée : -quality x avec x entre 0 (mauvaise qualité) et 9 (bonne qualité).
    • pour fixer le niveau de compression : -compresslevel x avec x entre 0 (pas de compression) et 9 (compression maximale). Un bon compromis est obtenu avec 3.
    • pour fixer la taille de la fenêtre, on utilise les arguments du serveur X (faire man x) qui sont disponibles avec xtightvncviewer : -geometry widthxheight+xo+yo où width est la largeur en pixel, height est la hauteur en pixel, xo et yo le coin sup gauche de la fenêtre.
  • Exemple pour démarrer une fenêtre de 800x600 ou 1024x768 avec une compression
xtightvncviewer -compresslevel 3 -geometry 800x600+100+100

xtightvncviewer -compresslevel 3 -geometry 1024x768+100+100
 
  • Note : La taille de l'écran VNC n'intervient pas directement dans le flux réseau résultant.

Avec Terminal Server Client

A partir de Ubuntu 11.10, Terminal Server Client (tsclient) a été retiré de la liste des paquets car il n'est plus développé et n'est pas compatible avec Gnome 3.x. Le plus simple est donc d'utiliser Vinagre (installé par défaut) ou Remmina (à installer depuis la logithèque).

  • Personnellement, je préfère Terminal Server Client qui est plus rapide je trouve à l'usage. Je vais donc décrire ici cette solution. La première chose à faire, c'est de vérifier que le logiciel est installé. Aller dans Applications > Internet : vous devriez voir l'entrée Terminal Server Client. Si ce n'est pas le cas, ouvrez la logithèque Ubuntu (Appplications > Logithèque Ubuntu ) et installez-le :
  • Ensuite, il faut installer (s'il ne l'est pas déjà) le paquet xvnc4viewer (Système > Administration > gestionnaire de paquet ) :
  • A présent, on va lancer le Terminal Server Client (Applications > Internet > Terminal Server Client ) :
  • Dans la fenêtre qui s'ouvre :
    • saisir l'ip du PC serveur (celui auquel on veut accèder à distance). C'est l'ip que vous avez du noter lors de la configuration du serveur.
    • choisissez le protocole VNC
  • A présent, cliquer sur "se connecter", et là, c'est magique, vous voyez le bureau du PC distant comme si vous étiez devant !!
  • Regardez bien cette capture d'écran : vous avez la barre de tableau de bord du bureau du PC client et dans la fenêtre sur le bureau, vous avez la barre de tableau de bord du PC serveur que vous voyez dans cette fenêtre. Et vous avez accès au PC distant et vous pouvez faire ce que vous voulez dessus !!
  • Bon, ben cette fois c'est fini... c'est finalement assez simple en fait ! C'est vraiment cool Ubuntu et Gnu/Linux !!

Autres paramètres de Terminal Server Client

  • Vous pouvez constater que Terminal Server Client dispose de plusieurs onglets qui permettent de configurer différents paramètres pour optimiser la communication distante. Par exemple, en ce qui concerne l'affichage, on a :
  • Je vous laisse explorer çà tout seul... En pratique, on peut utiliser les paramètres par défaut sans problème particulier.

Quelques trucs sympas à tester.

Retour vidéo

  • Lancer la webcam sur le PC serveur (Application > guvcview ) : vous la verrez dans la fenêtre du bureau du serveur sur le PC client !! On a donc un "retour vidéo" en prime !!
  • Il semble que sous Windows, la même chose tentée avec VNC aboutit à un écran noir... Quoiqu'il en soit, avec Ubuntu çà marche.

Gespeaker

  • On peut également faire parler le PC serveur à partir du PC client en lançant le logiciel gespeaker :
  • Sympa pour faire parler le robot...

Processing et IDE Arduino à distance

  • Il est bien sûr possible de lancer l'IDE Arduino sur le PC serveur en le contrôlant depuis le PC client. Il sera donc également possible de programmer une carte Arduino à distance et sans fil ! Dans le cas d'un robot, cette fonctionnalité est très appréciable !
  • De la même façon, il est également possible d'exécuter l'interface Processing sur le PC client et donc il sera possible de disposer de toutes les fonctions de Processing à distance. Notamment par exemple, il sera possible de déclencher des sons à distance (librairie Minim) ou encore de visualiser la reconnaissance visuelle à distance (librairie openCV).

Pour aller plus loin, voir : "Symbiose numérique" Arduino / PC

Déconnexion

  • Quand vous avez terminé, fermer simplement la fenêtre où s'affiche le bureau distant. Vous obtenez cette fenêtre :
  • Cliquer sur annuler et vous retrouver la fenêtre d'accueil de Terminal Server Client

FAQ

la connexion ne se fait pas

  • vérifier que vous utilisez bien la bonne adresse ip (le plus simple pour vérifier : faites ifconfig dans un Terminal sur le serveur).
  • vérifier que vous avez bien décocher la demande d'acceptation de connexion côté serveur distant, sinon, il faut cliquer sur ok dans la fenêtre qui apparaît...

...

Note technique

  • Dans le cas du réseau wifi, on pourra augmenter la fluidité du retour vidéo par exemple en enlevant le cryptage sur le réseau wifi : dans le cas précis d'un accès à distance à un eeePC embarqué, un tel cryptage n'a pas grande importance.
  • Pour évaluer le débit utilisé sur le réseau wifi ou LAN par la connexion VNC, utiliser un utilitaire en ligne de commande tel que cbm (à installer depuis synaptic)

En cas d'utiliation d'un mot de passe VNC...

  • Si on souhaite utiliser un mot de passe VNC, au moment de la connexion VNC, Ubuntu va demander sur le serveur un mot de passe système pour la connexion : ceci bloque l'accès à distance.
  • pour contourner le problème, il faut annuler le mot de passe du "trousseau" Ubuntu.
  • aller dans Applications > Accessoires > Mot de passe et clés de chiffrement ce qui donne :
  • faire un clic droit sur mots de passe - login et choisir modifier le mot de passe dans le menu qui apparaît :
  • dans la fenêtre qui apparait saisissez votre mot de passe et laisser vide les 2 autres champs :
  • Valider. A la question qui est posée, accepter.

Voilà, à présent, on peut se connecter à VNC avec un mot de passe sans avoir besoin de saisir de mot de passe côté serveur !