Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
17 avril 2018 : Création de cette page.
Pour : linuxien averti.
Habituellement, vous démarrez une session en mode graphique. La page a montré que le script prefdm a déterminé quel est le gestionnaire de connexion graphique à utiliser.
Cette page montre le processus de démarrage lorsque le gestionnaire graphique est sddm.
Important !
SDDM est un gestionnaire de connexion, c'est-à-dire qu'il présente une fenêtre de connexion (login et mot de passe), à ne pas confondre avec le serveur X qui permet aux applications graphiques (et donc aussi à SDDM) de dialoguer avec l'écran, le clavier et la souris.
SDDM est un gestionnaire de connexion qui convient bien à LXQt. Il permet la connexion et l'authentification de l'utilisateur, mais il permet également de choisir l'environnement avec lequel vous souhaitez travailler (si vous en avez plusieurs d'installés, par ex IceWM et LXQt).
Il permet également d'éteindre ou de redémarrer l'ordinateur.
sddm cherche la liste des sessions dans /etc/X11/wmsession.d et garde en mémoire la dernière session utilisée par chaque utilisateur /var/cache/lightdm/dmrc/xxx.dmrc.
Le principal fichier de configuration est /etc/lightdm/lightdm.conf. Et il peut y avoir des fichiers complémentaires dans le répertoire /etc/lightdm/lightdm.conf.d
La fenêtre d'acceuil est configurée dans /etc/lightdm/lightdm-xxx-greeter.conf (xxx dépend de l'environnement choisi (gtk, razor ou lxqt)
Par défaut, tous les paramètres sont commentés et sont donc sans effet. Ce sont les valeurs par défaut qui sont prises en compte.
Mageia préfère utiliser des fichiers complémentaires pour définir d'autres valeurs.
Ce fichier définit le terminal virtuel où doit s'ouvrir la fenêtre de connexion ainsi que le fichier qui définira la session.
[LightDM]
minimum-vt=1
[SeatDefaults]
session-wrapper=/etc/lightdm/Xsession
Ce fichier doit être complété avec le login de l'utilisateur pour réaliser une auto-connexion.
[SeatDefaults]
#dummy-autologin=
autologin-user=
Il permet de définir l'image de fond et la position de la fenêtre de connexion
[General]
greeter-background-image=/usr/share/mga/backgrounds/default.jpg
#loginform-offset-x=50%
#loginform-offset-y=50%
prefdm et lookupdm ont lancé la commande /usr/sbin/lightdm
Il s'agit d'un programme compilé. Il est donc assez difficile de trouver le déroulement exact.
Ce fichier est lancé d'après /etc/lightdm/lightdm.conf.d/50-mageia.conf avec, comme argument, le nom de la session à ouvrir.
Ce nom de session est défini par la valeur choisie dans la fenêtre de connexion.
Lors de la première session d'un utilisateur, il n'y a pas encore de session définie pour cet utilisateur. Lightdm-greeter prend alors un nom de la liste des sessions du répertoire /usr/share/xsessions.
Pour favoriser une session par rapport aux autres, dans le fichier .desktop, il faut donner un nom commençant par une lettre du début de l'alphabet, par exemple Bureau xxx.
Lors des sessions suivantes, lightdm recherche le dernier utilisateur dans /var/lib/lightdm/.cache/*/state (le nom exact du répertoire dépent e la version du greeter). Ensuite, c'est AccountsService qui définit quelle était la session de cet utilisateur, dans le fichier /var/lib/AccountsServices/users/nom_utilisateur. Et c'est cette session qui est proposée par défaut.
Bien sûr, au moment de la connexion, l'utilisateur peut modifier les choix par défaut.
/etc/lightdm/Xsession exécute éventuellement un fichier profile, puis exécute le fichier /etc/X11/Xsession
#!/bin/bash -login
[ -f /etc/profile ] && . /etc/profile
[ -f ~/.profile ] && . ~/.profile
exec /etc/X11/Xsession $*
Il est également utilisé par la commande startx ou par les autres gestionnaires de connexion.
Ce script ouvre une session graphique correspondant aux éventuels paramètres spécifiés lors de la commande.
Voici, en résumé, le processus :
ConsoleKit conserve la trace de tous les utilisateurs connectés. Il est utilisé par différentes applications pour interagir avec les modifications pouvant intervenir, telles qu'un changement d'utilisateur par exemple
* gestion des paramètres nationaux avec /etc/profile.d/10lang.sh et /etc/sysconfig/i18n
* création ou vidage du journal de session $HOME/.xsession-errors
* fond d'écran rouge, si c'est root qui se connecte
* définit la forme du curseur : patienter
* assemble toutes les ressources X de l'utilisateur et du système (icônes, mappage du clavier...) aux ressources système
* définition du fichier d'initialisation de console-kit (suivi des utilisateurs, des sessions, des sièges ...)
* définition du fichier de lancement du navigateur internet
* définition du bureau : celui donné en argument, sinon celui du fichier $HOME/.desktop, sinon celui du fichier /etc/sysconfig/desktop
* définition de la session : la même que le bureau; si, à ce stade, aucun bureau n'est défini, lance la commande chksession -F
* lancement des scripts du répertoire /etc/X11/xinit.d, avec chaque fois le nom de la session comme argument.
Le contenu du répertoire dépend de votre installation. Voici ce que j'ai, avec une installation minimale et avec le bureau IceWM :
02XIM : interface de UIM, pour la gestion des langues japonaise et chinoise
canberra-gtk-module.sh : ajoute canberra-gtk-module à la variable $GTK_MODULES
menu : migration des anciens menus vers les nouveau, si besoin
mgaapplet (appliquette signalant des mises à jour) : exécute /usr/bin/mgaapplet, uniquement avec les bureaux IceWM et Fluxbox
numlock : active le verrouillage numérique en mode graphique, s'il est déjà activé en mode texte
s2u : active le démon s2u (communication du système vers l'utilisateur, avec dbus)
xdg-user-dirs-update : création ou mise à jour des répertoires de l'utilisateur
xdg-user-dirs-update-gtk : n'est utilisé que pour les bureaux autres que GNOME, KDE et xfce4
* lancement du bureau, au sein de ConsoleKit, selon le cas :
bureau failsafe : un simple terminal (essai, dans l'ordre : rxvt, xterm, xvt, twm)
le bureau est défini : lancement de ce bureau
le bureau n'est pas défini default : essai de diverses solutions : une session utilisateur est définie, des clients utilisateurs sont définis, recherche d'une session avec chksession -F, icewm, icewm-light, twm, xsm
/usr/sbin/lightdm définit le bureau à ouvrir à partir de la fenêtre de connexion
Remarque : la fenêtre de connexion garde en mémoire le dernier utilisateur.
Il prépare la commande exec /etc/X11/Xsession Nom_du_Bureau.
Xsession assemble toutes les ressources X, définit la session à ouvrir, lance les commandes du répertoire /etc/X11/xinit.d et enfin ouvre votre session avec son bureau.
Si vous êtes le seul utilisateur de l'ordinateur et que personne d'autre ne risque de l'utiliser, vous pouvez vous passer de la fenêtre de connexion et de l'obligation de fournir le mot de passe Vous serez automatiquement connectés.
Pour ceci, en tant que root, vous éditez le fichier /etc/lightdm/lightdm.conf.d/50-mageia-autologin.conf. Complétez avec votre nom de login