web-dev-qa-db-fra.com

Comment faire d'ubuntu 14.04 un kiosque

J'ai fait une nouvelle installation d'Ubuntu 14.04 LTS Desktop et je souhaite maintenant le convertir en kiosque avec un navigateur Web plein écran.

Cela avait déjà été fait dans 10.04 et fonctionnait parfaitement, mais en raison de modifications matérielles (graphiques), nous sommes obligés d'utiliser la version 14.04.

J'ai créé un kiosk.desktop dans /usr/share/xsessions et un script Shell appelé kiosk.sh qui lance firefox avec r-kiosk installé. Le script shell est exécutable. Un utilisateur appelé "kiosk" est défini sur la connexion automatique (dans /etc/lightdm/lightdm.conf).

Mais maintenant je suis coincé. Je souhaite que le kiosk.sh soit exécuté lors du démarrage de la session utilisateur du kiosk.

Dans les versions précédentes, cela pouvait être fait dans l'outil graphique "Paramètres de l'écran de connexion" ou dans /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf.

J'ai changé 50-ubuntu.conf en "user-session=kiosk" mais cela ne démarre pas. L'outil "Paramètres de l'écran de connexion" est introuvable. At-il été remplacé par un autre utilitaire en 14.04?

Placer un kiosk.sh.desktop dans ~/kiosk/.config/autostart works, mais le gnome-desktop est affiché avant que firefox ne démarre en mode plein écran, ce qui permet aux utilisateurs d’interagir avec le bureau.

Quelle est la meilleure méthode pour démarrer Firefox en plein écran après la connexion automatique de l’utilisateur?

Merci

Thomas

9
Thomas

Personnellement, je jetterais mon attention sur tous les trucs lightdmet Xsessionet lancerais ma propre instance de X qui vient de démarrer Firefox. Cela semble cauchemardesque mais c'est vraiment simple avec un peu de script Upstart

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

console output
emits starting-x

respawn

exec Sudo -u thomas startx /etc/X11/Xsession /path/to/kiosk.sh --

Évidemment, changez le nom d'utilisateur pour le type d'utilisateur que vous voulez utiliser, mais c'est à peu près tout. Enregistrez cela sous /etc/init/x.conf et vous devriez pouvoir Sudo start x et vous êtes absent (le chargement se fera au démarrage). Si Firefox se bloque, il rechargera X avec une nouvelle instance.

Si vous avez une installation à part entière d'Ubuntu à cet emplacement, vous devrez peut-être tout d'abord désactiver LightDM avec:

Sudo stop lightdm
echo manual | Sudo tee /etc/init/lightdm.override

Et votre profil Firefox est complètement à vous. Vous voudrez peut-être même créer un script dans une restauration de profil afin que, si quelqu'un casse votre profil, vous devez simplement redémarrer votre service xet qu'il utilisera à nouveau la copie vierge. Juste une idée.

J'ai depuis écrit un article de blog sur créer un kiosque à partir de zéro avec 14.04 et Chrome .


En ce qui concerne votre problème de configuration sans fil, je vous conseillerais de l’éloigner autant des utilisateurs occasionnels. Vous pouvez configurer une connexion à l'aide d'un TTY assez simplement:

Sudo nmcli dev wifi con <SSID> password <password>

Cela devrait ajouter la connexion au système et se connecter (et se connecter automatiquement à l'avenir) mais je ne l'ai pas testé. Il n’a peut-être même pas besoin de Sudomais tout dépend des privilèges de votre utilisateur principal.

L'avantage simple de charger quelque chose d'autre à l'arrière-plan est qu'il n'y a aucune chance qu'un passant ait accès à une boîte de dialogue de configuration réseau graphique. L’opérateur doit pouvoir suivre les instructions.

S'ils ne peuvent pas gérer cela, vous pouvez assez facilement modifier votre kiosk.sh pour rechercher des connexions existantes et poser des questions zenityname __- qui alimentent le précédent nmclicommander:

if [[ $(nmcli con | wc -l) == 1 ]]; then
    SSID=$(zenity ...)
    PASS=$(zenity ...)
    nmcli dev wifi con $SSID password $PASS
fi

C'est juste une idée approximative. Vous aurez besoin de travailler sur cela. Il peut exister une meilleure application de configuration de gestionnaire de réseau graphique autonome.

7
Oli