Lancement auto d'une session RDP au boot d'un Raspberry Pi

Bonjour à tous,

J’essaye depuis plusieurs jours de lancer automatiquement une session RDP depuis un Raspberry Pi au démarrage de celui-ci. J’ai fouillé un peu partout et testé pas mal de choses mais ça ne marche pas encore.

J’utilise Remmina pour configurer la session RDP et me connecter au serveur Windows (configuré en Terminal Server). Ça marche quand je lance moi-même la session RDP avec la commande suivante :

remmina -c ~/.remmina/serveur.remmina

J’ai essayé en utilisant cron et en rajoutant la ligne ci-dessous mais ça ne fonctionne pas.

       @reboot                                 pi      DISPLAY=:0 remmina -c ~/.remmina/serveur.remmina

Pourtant, quand je teste avec la création d’un dossier au boot ou bien l’ouverture de la session RDP toutes les minutes, ça marche correctement.

        @reboot                                 pi      mkdir ~/test_cron
       */1     *       *       *       *       pi      DISPLAY=:0 remmina -c ~/.remmina/serveur.remmina

J’imagine que le problème vient du fait que la session graphique n’est pas encore complètement démarrée au moment où cron essaye de lancer la commande ? Auriez-vous un petit conseil à me donner ?
Faire un script qui tourne toutes les X minutes et qui vérifie si la session est active et qui la démarre dans le cas contraire ?

Est-ce possible de descendre sous la minute avec cron ? (Faire tourner un script toute les 10 secondes, par exemple.)

INFO SUPPLÉMENTAIRE :

uname -a
Linux RPi2-Raspbian 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l GNU/Linux

(Juste pour info, j’ai besoin de faire ça pour utiliser des Raspberry Pi en tant que clients légers et remplacer les Mac Mini que nous utilisons actuellement au boulot… J’utilise GNU/Linux depuis des années mais l’industrie bouge lentement.)

Merci d’avance pour vos réponses,

Esprit

Bonjour,

Une discussion qui devrait t’intéresser :
https://www.debian-fr.org/client-leger-sur-ancien-pc-remmina-t46290.html

Ce n’est pas possible avec cron.

Merci pour cette réponse rapide ! :wink:

J’avais déjà lu la discussion et essayé de mettre la commande que j’utilise pour démarrer la session dans le fichier .xinitrc

GNU nano 2.2.6  Fichier : .xinitrc 

remmina -c ~/.remmina/serveur.remmina

Et ça ne marche pas non plus. J’ai essayé en rajoutant un mkdir dedans, juste pour voir si ça se lance au boot et rien n’y fait.

mkdir ~/test_xinitrc

J’ai peut-être loupé un truc mais quand j’ai essayé de faire un Xorg -configure, j’ai eu une erreur.

$ Xorg -configure

Fatal server error:
Server is already active for display 0
	If this server is no longer running, remove /tmp/.X0-lock
	and start again.


Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help.

Faut-il que je ferme le serveur X avant ?
Je n’ai pas le fichier xorg.conf dans /etc/X11 du coup. Est-ce pour ça que le .xinitrc ne fait rien ?

Je peux aussi essayer en désactivant le démarrage du serveur X au boot du Raspberry Pi

[Edit: Je regarde du côté de rdesktop, à tout hasard. Je ne vois pas s’il y a moyen d’utiliser un fichier pour lui passer tous les paramètres et du coup avoir une connexion automatique sur le serveur distant sans mettre le mot de passe en clair dans une commande…

Même chose pour Xrdp, je n’ai pas trouvé non plus si c’était possible.

Poste voir le contenu de ton .xinitrc
Créer des répertoires, ou lancer remmina, ça devrait fonctionner avec ça.

Pour Xorg -configure, il te demande effectivement de fermer le serveur graphique au préalable. Précision: je n’ai pas suivi la discussion et j’ignore le rôle de cette commande.

Bonjour Zbf,

Voici le contenu de mon fichier .xinitrc
Il est dans le dossier /home/pi/

$ cat /home/pi/.xinitrc 
mkdir ~/test_xinitrc
remmina -c ~/.remmina/serveur.remmina

Il n’y a presque rien dedans. Donc j’imagine qu’il y a un prérequis que je n’ai pas…

Petite recherche sur xinitrc, wiki.archlinux.org/index.php/Xinitrc

Essaie effectivement d’ajouter une ligne:

#!/bin/sh

… avant les instructions que tu as mis.

De même, ajoute une esperluette à ta commande remmina
car je ne sais pas si elle rend la main automatiquement ou pas.

remmina -c ~/.remmina/serveur.remmina &

J’ai modifié le fichier .xinitrc :

pi@Rpi ~ $ cat .xinitrc 
#!/bin/sh

mkdir ~/test_xinitrc &
remmina -c ~/.remmina/serveur.remmina &

J’ai redémarré ensuite et ça ne marche toujours pas.

Par contre, j’ai trouvé une autre piste qui consiste à mettre un fichier .desktop dans /home/pi/.config/autostart/. Voici le contenu du fichier remmina-srv.desktop :

$ cat .config/autostart/remmina-srv.desktop 
[Desktop Entry]
Version=1.0
Name=Remmina Applet
Comment=Se connecter aux bureaux distants via le menu de l'applet
Icon=remmina
Exec=remmina -c /home/pi/.remmina/serveur.remmina
Terminal=false
Type=Application
Hidden=false

Et avec ça, après redémarrage, il essaie de se connecter puis il plante avec une erreur

Unable to connect to RDP server 10.xx.xx.xx

Serait-il possible qu’il tente de se connecter avant d’avoir initialisé sa connexion réseau ?

J’ai configuré le réseau avec Wicd, peut-être que ça change quelque chose ? Il n’y a pas de DHCP donc le Raspberry Pi a une adresse IP fixe.

[Edit, un peu plus tard :
Je continue de regarder pour la configuration réseau car ça me semble une bonne piste. Il faudrait que je modifie le fichier /etc/network/interfaces et j’imagine que ça serait plus rapide…

Fichier interfaces au départ :

pi@RPi ~ $ cat /etc/network/interfaces 
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

Après modification :

auto lo
iface lo inet loopback

auto eth0

iface eth0 inet static
    address 10.20*.***.***
    netmask 255.255.254.0

Il faut que je teste maintenant.

[Edit2 :
Ça marche ! :dance:

Donc, si je résume :

  1. Pour lancer la session RDP, j’ai ajouté un fichier dans /home/pi/.config/autostart. Contenu du fichier remmina-srv.desktop juste plus haut dans ce post.
    ==> FONCTIONNEL !

  2. Malgré ça, la session ne démarrait pas parce que le Raspberry Pi n’était pas encore bien connecté au réseau au moment où la commande est lancée. Je me suis donc passé de Wicd et j’ai configuré directement le réseau dans le fichier interfaces dans le dossier /etc/network/
    Contenu du fichier interfaces juste au dessus également.
    ==> FONCTIONNEL !

Merci pour les réponses, ça m’a aidé à y voir plus clair. :wink:

bonjour

Est ce que vous arrivez à avoir le son en local sur le client léger RPi? si oui je serais interessé par les 4 fichiers de config de pulseaudio que vous avez dans votre /etc/pulse et également si vous en avez (ce n’est pas toujour le cas) votre /etc/default/pulseaudio et votre /etc/asound.conf

Bonjour @henry-couannier,

Dans mon cas, je n’utilise pas le son sur ces clients légers, je ne peux donc pas vous répondre. Désolé.

Bonjour,

Je souhaiterai savoir si vous avez la possibilité de me transmettre la marche à suivre complète pour réaliser tous se que vous avez fait pour que cela fonctionne.

Je débute sur le raspberry et je souhaite faire exactement comme vous. Avoir une connexion direct depuis un raspberry pi sur un serveur TSE. C’est un projet très important pour moi et si vous pouviez m’aider ça serai vraiment cool.

Je suis novice pour info.
Pour l’instant, j’ai mis en place une distribution Raspbian et installé remmina.
J’ai paramétré la connexion sur le TSE depuis l’application mais je ne maîtrise pas du tout le reste.
Pouvez-vous m’aider ?

Merci par avance