navigation
Home
admin
|
X
October 20th, 2016
|
| Table des matières |  |
Principes
Installation d'un serveur X et de gnome
Erreurs
Outils
Jouer avec un serveur X
Fenêtre Xload absente de la barre de tâches
| Principes |  |
Runlevel 3 et rôle de .xinitrc
"Le véritable programme que X exécute, et qui exécute d'autres programmes, est votre script .xinitrc ou .xsession. Quand X est démarré, votre script .xinitrc ou .xsession est exécuté, et quand le script est fait, X se termine. Laissez moi répéter cela car c'est important: quand .xinitrc est fini, cela signifie que X se termine. Ce n'est pas quand vous sortez de votre gestionnaire de fenêtres."
Source : http://old.fluxbox.org/docbook/fr/html/app-setup.html
Exemple 1
Création d'un fichier xinitrc dans mon compte et lancement de X :
# cat .xinitrc
xterm & sleep 10
# startx |
Exemple 2
On peut également démarrer le X comme le ferait prefdm au niveau 5 :
Exemple 3
Lancement de twl :
# cat .xinitrc
twm
# startx |
Lorsque twm se lance, il ne se passe pas grd chose (sinon un écran noir).
Mais, en laissant le bouton gauche appuyé, on découvre le menu de twm...
(il faut parfois attendre un peu)
Runlevel 5
"En fonction des environnements de bureau installés sur votre système Red Hat Linux spécifique, trois gestionnaires d'affichage différents sont disponibles pour l'identification des utilisateurs. Le gestionnaire d'affichage xdm est l'outil d'authentification X d'origine. xdm vous permet uniquement de vous connecter et de démarrer une session X, rien de plus. Le gestionnaire d'affichage gdm, conçu pour fonctionner avec l'environnement de bureau GNOME, et le gestionnaire d'affichage kdm, utilisé avec l'environnement de bureau KDE, vous permettent de configurer l'environnement de bureau, ou la session, que vous souhaitez utiliser après l'identification. En outre, vous pouvez redémarrer ou arrêter le système à partir de l'écran de connexion. Le gestionnaire d'affichage gdm vous permet également de configurer la langue à utiliser."
Source : http://www.linux-kheops.com/doc/redhat72/rhl-rg-fr-7.2/s1-x-runlevels.html
Une fois arrivé dans le runlevel 5, le script /etc/init/prefdm est exécuté. cf. ci-dessous.
Rôle de prefdm
/etc/init/prefdm -> /etc/X11/prefdm
Si existe /etc/sysconfig/desktop
cf http://docs.redhat.com/docs/fr-FR/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/ch-sysconfig.html#s2-sysconfig-desktop
Ce fichier permet de définir l'env de l'utilisateur :
cat /etc/sysconfig/desktop
DESKTOP="KDE"
DISPLAYMANAGER="XDM" |
XDM ne permet pas de choisir de bureau => c'est le bureau par défaut qui est lancé : gnome
Si non existe /etc/sysconfig/desktop
"Si aucun environnement de bureau n'est spécifié, prefdm navigue dans les gestionnaires d'affichage gdm, kdm et xdm pour trouver celui qu'il pourra utiliser. Une fois que c'est fait, prefdm le lance pour l'identification de l'utilisateur.
Chacun des gestionnaires d'affichage utilise le fichier /etc/X11/xdm/Xsetup_0 pour configurer l'écran de connexion.
Une fois que l'utilisateur est connecté au système, le script /etc/X11/xdm/GiveConsole est exécuté afin d'assigner la propriété de la console à l'utilisateur. Ensuite, le script /etc/X11/xdm/Xsession s'exécute pour accomplir bon nombre des tâches normalement prises en charge par le script xinitrc lorsque X est démarré au niveau d'exécution 3, y compris le paramétrage des ressources système et utilisateur, ainsi que l'exécution des scripts du répertoire /etc/X11/xinit/xinitrc.d."
L'utilisateur peut spécifier l'environnement de bureau qu'il veut utiliser lors de l'identification en se servant des gestionnaires d'affichage gdm ou kdm (sélection dans le menu Session).
Si l'environnement de bureau n'est pas spécifié dans le gestionnaire d'affichage, le script /etc/X11/xdm/Xsession vérifiera les fichiers .xsession et .Xclients dans le répertoire de l'utilisateur afin de décider quel environnement de bureau charger. En dernier recours, le fichier /etc/X11/xinit/Xclients est utilisé pour la sélection d'un environnement de bureau ou d'un gestionnaire de fenêtres à utiliser, comme dans le niveau d'exécution 3.
Lorsque l'utilisateur termine une session X sur l'affichage par défaut (:0) et se déconnecte, le script /etc/X11/xdm/TakeConsole s'exécute et réassigne la propriété de la console à l'utilisateur de base. Le gestionnaire d'affichage d'origine, qui a continué à s'exécuter après la connexion de l'utilisateur, prend le contrôle en créant un nouveau gestionnaire d'affichage. Ceci a pour effet de redémarrer le serveur XFree86, d'afficher une nouvelle fenêtre de connexion et de recommencer le processus à zéro.
Réglages
Les réglages ne se font plus avec l'utilitaire system-config-display mais avec xrandr :
Listez les résolutions disponibles
Changez la résolution
xrandr --output LVDS1 --mode 1024x768 |
Faites tourner votre écran (rotation 90°)
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal |
Exemple : XDM et fluxbox
RHEL
cat /etc/sysconfig/desktop
DISPLAYMANAGER="XDM" |
debian
# more /etc/X11/default-display-manager
/usr/bin/xdm |
cat ~/.xsession
exec startfluxbox |
| Installation d'un serveur X et de gnome |  |
RHEL
En francais :
yum groupinstall "Système X Window" Bureau "Bureau à usage général" |
En anglais :
yum groupinstall yum groupinstall "X Window System" Desktop "Desktop Platform" |
| Erreurs |  |
Fatal module fbcon not found.
Lors de l'exécution de startx avec un utilisateur lamda...
Solution : il faut désactiver SELinux
cf : http://perso.univ-lemans.fr/~brichard/?doc=CentOS#publickeys
Xt error: Can't open display: %s
Après un "su", j'ai ce message lorsque je lance une application qui fait appel au serveur X.
A lancer avant le su :
Solution 1, pas propre car on autorise tout le monde à se connecter au serveur X :
xhost +
access control disabled, clients can connect from any host |
Solution 2, on autorise uniquement le root de la machine :
X11 connection rejected because of wrong authentication
Après un "sudo -i su" j'ai le message ci-dessus lorsque je lance une application nécessitant le X.
root@zzz:~# xterm
X11 connection rejected because of wrong authentication.
xterm: cannot open display |
Solution :
ensai@zzz:~$ sudo -i XAUTHORITY=/home/ensai/.Xauthority su
[sudo] password for ensai:
root@zzz:~# xterm & |
Xt error: Can't open display: %s sur Redhat
yum install xauth
Modif de /etc/ssh/sshd_config :
X11Forwarding yes
X11UseLocalhost no |
X11 connection rejected because of wrong authentication
Après un "su - user" j'ai le message ci-dessus lorsque je lance une application nécessitant le X.
Solution :
[root@statix ~]# echo $DISPLAY
localhost:11.0 |
Notre DISPLAY est en 11.
[root@statix ~]# xauth list
statix/unix:12 MIT-MAGIC-COOKIE-1 ef12e1de55082f8c9045cf6a2ce47df9
statix/unix:10 MIT-MAGIC-COOKIE-1 2fbdc0364075d16f3f0c812b84559baf
statix/unix:11 MIT-MAGIC-COOKIE-1 03b559c941ef2440e84a6887a67c542e |
Le cookie associé au DISPLAY est le dernier.
On fait maintenant le su, on ajoute manuellement le cookie et on définit le DISPLAY :
[lsfadmin@statix ~]$ xauth add statix/unix:11 MIT-MAGIC-COOKIE-1 03b559c941ef2440e84a6887a67c542e
[lsfadmin@statix ~]$ export DISPLAY=localhost:11.0 |
Source : http://linux-attitude.fr/post/conserver-son-display-apres-un-su
X11 forwarding request failed on channel 0
Il manque le package xauth.
Sur Redhat, la commande suivante solutionne le problème :
rpm -ivh /usr/local/src/xorg-x11-xauth-1.0.2-7.1.el6.x86_64.rpm
attention: /usr/local/src/xorg-x11-xauth-1.0.2-7.1.el6.x86_64.rpm: Entête V3 RSA/SHA256 Signature, key ID NOKEY
Préparation... ########################################### [100%]
1:xorg-x11-xauth ########################################### [100%] |
| Outils |  |
moniteurs système pour X11
Gkrellm
Conky
Gestionnaire de fichiers
Thunar
| Jouer avec un serveur X |  |
Pour déporter l'affichage (i.e. afficher des choses sur l'écran d'un autre poste. i.e afficher des choses sur un serveur X distant) :
DISPLAY=<IP serveur X>:0.0
xclock |
Note 1 : le serveur X doit être lancé SANS l'option nolisten TCP.
On ne doit pas avoir ca :
ps -ef|grep X
root 7703 7695 11 15:53 tty7 00:00:05 /usr/bin/X :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-FU7lv0/database -nolisten tcp
|
Si c'est le cas avec Ubuntu,
- Modifiez /etc/gdm/gdm.schemas :
<schema>
<key>security/DisallowTCP</key>
<signature>b</signature>
<default>false</default>
</schema>
|
- Relancez le serveur X :
Note 2 : le serveur X doit autoriser les connectes distantes
permet de vérifier comment sont positionnés les droits
Note 3 : Sous windows, Xming est bon serveur X.
Pour autoriser l'accès distant, vous pouvez :
- ajouter l'option "-ac" dans la ligne de lancement (pas secure du tout...)
- taper xhost + (pas secure du tout...)
- taper xhost +<IP à autoriser> (secure !!)
http://mobaxterm.mobatek.net/ est un autre serveur X pour windows.
Note 4 : Pour tester :
xeyes, xterm, xclock etc...
| Fenêtre Xload absente de la barre de tâches |  |
Objectif : surveiller plusieurs serveurs avec Xload sans pour autant avoir plusieurs xload dans la barre de tâche ni dans le systray.
J'ai utilisé DevilsPie pour placer les fenêtres xload sur tous les bureaux :
cat .devilspie/xload.ds
(if
(is (application_name) "xload")
(begin
(skip_pager)
(skip_tasklist)
(pin)
)
) |
puis wmctrl pour retailler les fenêtres et les placer au bon endroit.
Un extrait de mon script :
# h = hauteur initiale de la fenêtre xload
h=24
for i in srv1 srv2 srv3
do
h=$(expr $h + 91)
nohup ssh -X root@$i "xload -update 10 -font 6x13" &
sleep 2
cmd=$(wmctrl -l |grep xload|grep $i |tail -n 1 |awk -v h=$h '{print "wmctrl -i -r "$1" -e 0,1210,"h",63,63"}')
while [ -z "$cmd" ]
do
echo wmctrl pas encore renseigné...
sleep 2
cmd=$(wmctrl -l |grep xload |grep $i |tail -n 1 |awk -v h=$h '{print "wmctrl -i -r "$1" -e 0,1210,"h",63,63"}')
done
# echo $cmd
eval $cmd
done |
|
|
Contact
|
|---|
Pour m'envoyer un mail, Pour me laisser un commentaire :richard.brunooo chez gmail.com |  |
|
|