Les systèmes embarqués sont souvent dédiés à l’exécution d’une unique application qui doit se lancer automatiquement à la mise sous tension.
On distingue deux types d’application :
Sur une RaspberryPi, il faut réaliser les trois étapes suivantes :
Le plus simple est de passer par l’outil de configuration :
$ sudo raspi-config
Choisir
"3 Enable Boot to Desktop Choose whether to boot into a desktop environment or the command-line"
Puis Select
Should we boot straight to desktop? <Oui> <Non>
Puis Oui
Ceci revient à lancer la commande update-rc.d
(install and remove System-V style init script links) pour activer le service lightdm
et qui permet de créer le lien dans le niveau de démarrage de votre Pi :
// Activer le service lightdm :
$ sudo update-rc.d lightdm enable
// Désactiver le service lightdm :
$ sudo update-rc.d lightdm disable
Pour connaître le niveau de démarrage :
$ sudo cat /etc/inittab | grep initdefault
id:2:initdefault:
$ sudo runlevel
N 2
Les liens vers les scripts qui démarrent les services pour le niveau 2 :
$ ls -l /etc/rc2.d/
...
lrwxrwxrwx 1 root root 17 mai 9 17:02 S04lightdm -> ../init.d/lightdm
Conclusion : le service lightdm
sera bien lancé au niveau de démarrage 2.
Pour cela, il faut configurer le service lightdm
(ici pour l’utilisateur pi) :
$ vim /etc/lightdm/lightdm.conf
autologin-user=pi
Vous pouvez utiliser plusieurs façons de faire :
$ sudo vim /usr/share/applications/projet.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Projet BTS
Name[fr]=Projet BTS
GenericName=Projet BTS
GenericName[fr]=Projet BTS
Comment=Programme cesar
Comment[fr]=Programme cesar
#TryExec=/usr/bin/cesar
Exec=/usr/bin/cesar
Icon=designer-qt4
Type=Application
Categories=Qt;Development;
Puis créer un lien pour la configuration de l’utilisateur concerné :
$ sudo ln -s /usr/share/applications/projet.desktop /home/pi/.config/autostart/
Ou pour l’ensemble des utilisateurs :
$ sudo ln -s /usr/share/applications/projet.desktop /etc/xdg/autostart/
Ou l’utilisateur concerné crée directement :
$ vim /home/pi/.config/autostart/projet-qt.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Test Projet BTS
Name[fr]=Test Projet BTS
GenericName=Projet BTS
GenericName[fr]=Projet BTS
Comment=Le projet BTS
Comment[fr]=Le projet BTS
TryExec=/home/pi/exemples/compteur-vitesse-qwt/speedo
Exec=/home/pi/exemples/compteur-vitesse-qwt/speedo
Icon=designer-qt4
Type=Application
Categories=Qt;Development;
Remarque : c’est la ligne Exec=...
qui assure l’exécution du programme, les autres lignes étant facultatives.
Le mode kiosk a été conçu à l’origine pour les bornes internet (Internet kiosks). Ces bornes nécessitent la mise en place d’un environnement logiciel restreint aux fonctions essentielles afin d’empêcher les utilisateurs de faire quoi que ce soit d’indésirable ou de dangereux. Cela comprend aussi de dédier l’affichage graphique exclusivement à une application et d’enlever les composants graphiques habituels (curseur souris, barre de titre, tableau de bord, icones, etc…).
$ cat /etc/xdg/lxsession/LXDE/autostart
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xscreensaver -no-splash
Remarque : Si une ligne commence avec un arobase ‘@’, la commande le suivant sera automatiquement ré-exécutée si elle plante. Les lignes commençant par un dièse sont des commentaires.
LXPanel (lxpanel
) est la barre des tâches standard de LXDE. PCMan File Manager (pcmanfm
) est le gestionnaire de fichiers par défaut sous LXDE. XScreenSaver (xscreensaver
) est un logiciel qui propose un ensemble d’écrans de veille (ou économiseurs d’écran).
Lien : wiki.lxde.org
$ xset -dpms -display :0.0
$ xset s off -display :0.0
$ xset s noblank -display :0.0
$ sudo apt-get install unclutter
$ sudo vim /etc/rc.local
...
su -l pi -c /home/pi/my-app
$ sudo vim /etc/inittab
...
#1:2345:respawn:/sbin/getty --noclear 38400 tty1
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
...