Borne d’affichage sur Debian 7

Cet article a été initialement écrit sur le blog-libre aujourd’hui fermé, certains liens dans l’article peuvent donc être morts.


J’ai réfléchi durant 20 longues minutes si il y avait un sens à écrire cet article, vous serez bien urbain de me dire si ça vous a appris quelque chose.

J’ai dû m’occuper de mettre en place une borne d’affichage au boulot. Cyrille a écrit un article sur la solution screenly qui répondra à 98% des besoins que l’on peut avoir en entreprise. Je vous conseille également de ne pas passer à côté des commentaires sur l’article en question. De mon côté ce qu’il y a eu d’intéressant avec ce mini-projet c’est le nombre de concepts et de réglages à gérer.

Je pars du principe que vous avez installé votre Debian 7 avec l’image de base donc comme environnement graphique Gnome3, que vous y avez configuré tout ce que vous avez besoin. La suite de cet article ne s’attardera que sur mes besoins sur ce projet càd afficher un site (en local sur la machine) avec un navigateur internet en plein écran et en évitant la veille de l’OS et de l’écran. Concernant le matériel, on a récupéré un vieux Dell OptiPlex et on a activé le WoL (Wake on Lan) dessus dans le BIOS. Ce vieux poste est en 32bits et on l’a nommé SRV-SCREEN, un utilisateur a été créé dessus du nom de babar (toute ressemblance avec une personne existante ou ayant existée est fortuite).

Arrêt et Démarrage de SRV-SCREEN

Afin de démarrer SRV-SCREEN tous les matins de la semaine, on a ajouté la ligne suivante dans /etc/cron.d/wol sur un autre serveur GNU/Linux (et installé le paquet wakeonlan préalablement dessus). Ne pas oublier qu’il est nécessaire d’ouvrir le port 9 en UDP (connexion sortante) sur ce serveur pour le WoL. L’adresse MAC est évidemment celle de SRV-SCREEN.

50 07 * * 1-5 root /usr/bin/wakeonlan 00:2B:2D:R2:C2:F3

Afin d’éteindre SRV-SCREEN tous les soirs de la semaine, on a ajouté les lignes suivantes dans /etc/cron.d/shutdown.

29 18 * * 1-5 babar /bin/bash /etc/scripts/closeiceweasel.sh
30 18 * * 1-5 root /sbin/shutdown now -hP

Installation de Iceweasel et Chromium

On commence par rajouter le dépôt Debian Mozilla team sur notre serveur.

echo "deb http://mozilla.debian.net/ wheezy-backports iceweasel-release" > /etc/apt/sources.list.d/mozilla.list

On installe les navigateurs Iceweasel et Chromium.

aptitude update
aptitude install pkg-mozilla-archive-keyring chromium-browser
aptitude -t wheezy-backports install iceweasel iceweasel-l10n-fr

Oui j’utilise aptitude car ça rend le poil soyeux. Aucune raison d’avoir la dernière version de Iceweasel mais c’est pour faire voir aux lecteurs comment faire. On ne se servira pas de Chromium mais pour des tests ça peut servir.

Installation de TeamViewer

On a choisi TeamViewer par facilité car c’est installé sur nos postes et c’est plus simple pour un newbie que VNC. Installation de TeamViewer sur une Debian 7 en 32 bits.

cd /tmp && wget http://download.teamviewer.com/download/teamviewer_linux.deb
dpkg -i teamviewer_linux.deb

Mise en place de TeamViewer.

teamviewer --daemon enable
teamviewer --daemon start
teamviewer --daemon status

Il faut ensuite impérativement faire la configuration sur le client graphique de TeamViewer donc nécessité absolue de brancher un clavier et une souris pour le paramétrage de TeamViewer.

Trouver son TeamViewer ID (la seconde méthode peut dépanner, la première est celle qui est conseillée).

teamviewer --info
grep -o "id=[0-9]*" /var/log/teamviewer/TeamViewer9_Logfile.log

Modifier le mot de passe de TeamViewer.

teamviewer --passwd monjolipassword
reboot

Ne pas oublier qu’il est nécessaire d’ouvrir des ports pour TeamViewer, je vous renvoie ici.

Ouverture automatique de session

On modifie gdm3 en éditant le fichier /etc/gdm3/daemon.conf et en rajoutant les lignes suivantes.

AutomaticLoginEnable=true
AutomaticLogin=babar

Empêcher l’arrêt automatique de l’écran

On va dans Activités, Applications, Applications au démarrage et on rajoute une application nommée Veille par exemple en cliquant sur le bouton Ajouter et avec la Commande ci-dessous.

xset -display :0 s off -dpms

Il est également nécessaire de lancer la commande suivante (de mémoire dans la session babar).

gsettings set org.gnome.desktop.session idle-delay 0

Lancer Iceweasel au démarrage

On va dans Activités, Applications, Applications au démarrage et on rajoute une application nommée Iceweasel par exemple en cliquant sur le bouton Ajouter et avec la Commande ci-dessous.

iceweasel

Fermer Iceweasel proprement

Malheureusement la commande killall iceweasel, bien qu’elle envoie un signal SIGTERM par défaut donc ce qu’il y a de plus doux, ne ferme pas correctement Iceweasel. Très régulièrement Iceweasel s’ouvre sur une page d’erreur « Hum, c’est embarrassant ».

Il a donc fallu trouver une manière encore plus propre de fermer Iceweasel.

Voici le contenu de closeiceweasel.sh (ne pas oublier de le rendre exécutable avec par exemple chmod 755 closeiceweasel.sh). On aura préalablement installé le paquet xdotool.

#!/bin/bash

export DISPLAY=':0'
xdotool key --window $(xdotool search --onlyvisible --name iceweasel) ctrl+q

La logique aurait voulu qu’on utilise Alt+F4 mais tous mes tests et recherches se sont révélés être des échecs. Je me suis donc rabattu sur ctrl+q qui fonctionne parfaitement.

Ce script doit être lancé en babar (su babar) si vous souhaitez le lancer manuellement car c’est sur cet utilisateur que la session est ouverte. root n’ayant pas de session X ouverte, il y aura forcément une erreur.

Conclusion

La grosse révélation en ce qui me concerne a été xdotool, outil dont je n’avais jamais entendu parlé et prodigieusement puissant. A titre d’information, voici la commande pour mettre Iceweasel en plein écran. On n’utilise pas cette commande chez nous, on a juste lancé Iceweasel puis pressé F11. Si Iceweasel est fermé proprement il conserve ce réglage.

xdotool key --window $(xdotool search --onlyvisible --name iceweasel) F11

La seconde réflexion qui me vient à l’esprit, c’est que c’est loin d’être simple mais qu’on a vu pas mal de choses intéressantes (ouverture automatique de session, xdotool etc.). Un mal pour un bien dirons nous.

Portez-vous bien les amis !

Les commentaires sont fermés.