Gentoo Logo

Guide de migration vers X.Org modulaire

Table des matières :

1.  Introduction

Pourquoi une version modulaire ?

Vous vous demandez sûrement pourquoi changer un simple et unique paquet xorg-x11 en environ 300 paquets séparés. Cela est justifié. Ce n'est pas Gentoo qui a fait ce choix indépendamment du projet X.Org ; ce sont leurs développeurs qui ont décidé de séparer tous ces paquets, et nous ne faisons que suivre.

Les trois principales raisons de cette division et de ce changement dans le système de compilation sont :

  • Il est trop difficile pour les nouveaux développeurs de se plonger dans X, d'où la migration vers autotools, un système avec lequel beaucoup se sentent à l'aise, si ce n'est heureux.
  • Autotools permet la séparation des sources, aussi le système devient plus abordable pour les développeurs.
  • Les choses ont été par le passé, sans que cela soit nécessaire, liées les unes aux autres et cela a rendu la publication de correctifs de bogue souvent impossible. Si les développeurs arrivaient à publier un correctif, il fallait à chaque fois recompiler entièrement X.Org. Par exemple, pour un bogue dans les pilotes Ati, il vous fallait soit attendre 6 mois pour la version suivante, soit aussi recompiler vos fontes de caractères pour le corriger, sans aucune raison.

2.  Migration vers X modulaire

Introduction

Pour empêcher les vieux paquets de perturber l'opération, nous allons nettoyer complètement l'ancien xorg-x11 avant d'installer X modulaire. Ce n'est pas absolument crucial, mais cela aidera à assurer une migration sans accroc.

Première étape : nettoyage de l'ancien X

Vous voudrez certainement une copie de sauvegarde du xorg-x11 monolithique au cas où les choses tourneraient mal et que vous voulez retourner vers la version 6.x. Vous pouvez aussi installer un navigateur en mode texte tel que links ou lynx pour consulter ce guide lorsque X ne sera pas disponible.

Exemple de code 2.1 : Sauvegarder l'ancien xorg-x11

# emerge gentoolkit
# quickpkg xorg-x11

Débarrassez-vous de l'installation monolithique. Pour éviter de crasher ou de geler votre système, vous voudrez sûrement quitter toutes les sessions X ouvertes avant de désinstaller X.org.

Exemple de code 2.2 : Désinstallation de la version monolithique

# emerge -Ca xorg-x11 virtual/x11

Si /usr/X11R6 n'est pas un lien symbolique vers /usr, effacez-le et partez de zéro. Mais d'abord, établissez une liste de tous les paquets s'installant dans ce répertoire. L'utilitaire equery est disponible avec le paquet gentoolkit.

Exemple de code 2.3 : Établir la liste des paquets

# if [[ ! -L /usr/X11R6 ]]; \
    then equery belongs /usr/X11R6 > ~/usr-x11r6-packages \
    && rm -rf /usr/X11R6; fi

Enfin, si /usr/lib/X11/xkb (/usr/lib64/X11/xkb sur les systèmes 64 bits) existe, il doit être supprimé. Cela est nécessaire pour pouvoir installer le paquet xkeyboard-config.

Seconde étape : installer le X modulaire

Pour avoir accès au « direct rendering », vérifiez que votre variable USE comprend l'option dri. Elle devrait être activée par défaut.

Ensuite, choisissez quels sont les pilotes à installer. Cela dépend de votre matériel vidéo et de vos périphériques d'entrée. Si vous avez déjà un fichier de configuration /etc/X11/xorg.conf fonctionnel, alors il vous suffit d'utiliser cette commande pour avoir une idée des pilotes dont vous avez besoin :

Exemple de code 2.4 : Trouver les pilotes dont on a besoin

# grep Driver /etc/X11/xorg.conf
  Driver      "kbd"
  Driver      "mouse"
  Driver      "radeon"

Exemple de code 2.5 : Lister les pilotes disponibles

# emerge --verbose --pretend xorg-x11
[ebuild   R   ] x11-base/xorg-x11-7.0-r1  USE="-xprint" INPUT_DEVICES="keyboard
mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300
-elographics -evdev -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics% -tek4957
-ur98 -vmmouse -void" VIDEO_CARDS="i128 mga radeon savage -apm -ark -chips
-cirrus -cyrix -dummy -fbdev -fglrx% -glint -i740 -i810 -imstt -neomagic
-newport -nsc -nv -nvidia% -rendition -s3 -s3virge -siliconmotion -sis
-sisusb -sunbw2 -suncg14 -suncg3 -suncg6 -sunffb -sunleo -suntcx -tdfx -tga
-trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB

Configurez INPUT_DEVICES et VIDEO_CARDS selon vos besoins dans le fichier /etc/make.conf. Les paramètres minimaux pour l'exemple ci-dessus seraient INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="radeon". Si vous ne configurer pas une de ces variables, xorg-x11 installera tous les pilotes disponibles correspondants. En tant que pilotes de secours, il peut être intéressant d'ajouter vesa et fbdev à VIDEO_CARDS.

Maintenant, installez le méta-paquet. Cela installera le serveur et les applications usuelles, vous donnant accès à une implémentation fonctionnelle de X.

Exemple de code 2.6 : Installer le méta-paquet modulaire

# emerge xorg-x11
# etc-update
# [[ -e ~/usr-x11r6-packages ]] && emerge $(<~/usr-x11r6-packages)
# revdep-rebuild

Note : Si vous souhaitez vraiment une installation minimale, installez seulement xorg-server. Cela n'installera que le strict nécessaire pour démarrer un serveur X.

Remarquez que cette installation est plutôt minimaliste, donc les choses comme xcursor-themes ne seront pas installées par défaut. Pour cet exemple précis, il vous faudra installer xcursor-themes si vous avez changé les réglages de votre curseur en whiteglass, redglass ou handhelds. Si vous utilisez les thèmes de curseur gentoo, gentoo-blue ou gentoo-silver, il faut alors installer gentoo-xcursors.

Note : Une fois la version modulaire installée, certains pilotes externes comme nvidia-glx et wacom tout comme certaines applications vnc risquent de ne pas fonctionner s'ils installent des choses dans /usr/lib/modules au lieu de /usr/lib/xorg/modules. Une détection de X modulaire a été ajoutée au processus d'installation de la plupart d'entre eux, ainsi ils auront besoin d'être réinstallés après l'installation de X modulaire. De plus, la plupart des pilotes externes ont une option USE dlloader que vous devrez activer, avant de recompiler le pilote en question.

3.  Remarques/problèmes usuels

'emerge -u world' veut installer xorg-x11 6.x ou virtual/x11

Cela est dû au fait que l'arbre n'est pas encore adapté aux dépendances vers X modulaire. Vous pouvez aider à la transition en lisant le Guide de portage vers X modulaire et en remplissant des bogues avec les correctifs pour les mainteneurs des paquets. Les noms des mainteneurs sont listés dans le fichier metadata.xml dans le répertoire du paquet. Le paquet herdstat peut vous aider dans vos recherches.

Vous rencontrerez ce problème en particulier si vous installez X modulaire sur un système utilisant la branche stable pour les autres paquets. Beaucoup de paquets ne fonctionnent avec X modulaire que dans leurs versions ~arch, aussi vous devrez peut-être ajouter d'autres paquets dans /etc/portage/package.keywords.

Qu'est-il advenu de toutes les options de la variable USE ?

De nombreuses options USE de la série xorg-x11-6.8 ont disparu ou changé pour la 7.0. De nouvelles sont aussi apparues. En voici la description :

Variable USE Qu'en est-il avec la 7.0 ?
3dfx Dans la 7.0, intègre glide-v3 depuis le méta-paquet xorg-x11.
3dnow, mmx, sse Activées par defaut lors de la compilation, car des contrôles sont effectués
bitmap-fonts, truetype-fonts, type1-fonts Le méta-paquet xorg-x11 n'installe qu'une petite sélection des fontes les plus utilisées ou nécessaires. Vous pouvez installer en plus toutes celles qui se trouvent dans la catégorie media-fonts/.
cjk USE=nls pour font-misc-misc and font-sony-misc permet d'obtenir les fontes japonaises JISX0201. D'autres sont disponibles dans font-jis-misc. Les fontes chinoises se trouvent dans font-isas-misc. Les fontes coréennes sont dans font-daewoo-misc
dlloader La 7.0 utilise dlloader par défaut et elfloader ne fonctionne pas
doc Remplacé par app-doc/xorg-docs
dmx Compilé avec xorg-server sauf avec l'option USE=minimal
font-server Il faut installer manuellement xfs
ipv6 Adaptée seulement aux paquets l'utilisant. Réglez-la de manière globale si vous la voulez.
minimal Pour obtenir le même effet, installez uniquement xorg-server à la place de xorg-x11. L'option minimal pour xorg-server permet de ne pas compiler Xdmx, Xvfb et Xnest. Si vous avez besoin de quelque chose d'encore plus minimal, orientez-vous vers x11-base/kdrive.
nls Dans la 7.0, USE=nls installe toutes les versions non-ISO8859-1 des fontes.
nocxx Pas encore d'équivalent pour la 7.0
opengl Changée en « dri » qui active le rendu direct (« direct rendering ») dans xorg-server et de nombreux pilotes. Que USE=dri soit activé ou non, vous devriez toujours avoir de la 3D logicielle via Mesa.
pam S'applique uniquement aux paquets qui l'utilisent tels que xorg-server et xdm.
sdk La 7.0 doit installer le SDK à cause de la modularisation.
static Cela n'a presque aucun sens de vouloir compiler un serveur statique dans un monde modulaire, car les pilotes ne peuvent être compilés avec.
xprint Pour le méta-paquet, cela intègre libXp. Pour les autres applications, cela intègre le support pour xprint. La plupart des gens n'ont pas besoin de cette option.
xv N'est plus une option, car cela n'engendre presque aucun gain de place et pose problème avec certains paquets qui s'attendent à ce qu'elle soit activée.

Qu'est-il advenu des fichiers de configurations ?

Dans le paquet X.Org 6.8 de Gentoo, tous les fichiers de configuration et les scripts étaient dans le répertoire /etc/X11. Dans X.Org modulaire, l'emplacement par défaut de ces fichiers a changé, c'est-à-dire que les fichiers de configuration sont toujours dans /etc/X11, mais les scripts et les configurations par défaut se trouvent maintenant dans /usr/lib/X11 (ou /usr/lib64/X11) et /usr/share/X11.

À cause de la protection des fichiers de configurations (CONFIG_PROTECT), vous aurez certainement encore tous vos vieux fichiers de configuration de X.Org 6.8 dans /etc/X11 ; ces fichiers prennent inutilement de la place et peuvent vous induire en erreur quant à leur utilité.

Puisque ces nouveaux répertoires ne sont pas dans CONFIG_PROTECT, il est important que tout changement apporté à la configuration par défaut soit fait en copiant les fichiers concernés dans /etc/X11 et en faisant les changement dans ce répertoire. Une autre méthode, mais qui n'est pas recommandée, consiste à ajouter le nouvel emplacement dans CONFIG_PROTECT. Ci-dessous se trouvent deux exemples :

Exemple de code 3.1 : Personnaliser l'initialisation de XDM

(D'abord, copiez le fichier Xsetup_0 dans /etc pour qu'il soit protégé.)
# cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/
(Modifiez le fichier comme cela vous convient.
Puis modifiez xdm-config pour changer le chemin vers ce fichier.)
# nano /etc/X11/xdm/xdm-config
(Changez ceci :)
! The following three resources set up display :0 as the console.
DisplayManager._0.setup:        /usr/lib/X11/xdm/Xsetup_0
DisplayManager._0.startup:      /usr/lib/X11/xdm/GiveConsole
DisplayManager._0.reset:        /usr/lib/X11/xdm/TakeConsole
(en cela :)
! The following three resources set up display :0 as the console.
DisplayManager._0.setup:        /etc/X11/xdm/Xsetup_0
DisplayManager._0.startup:      /usr/lib/X11/xdm/GiveConsole
DisplayManager._0.reset:        /usr/lib/X11/xdm/TakeConsole

Note : Sur les systèmes 64 bits multilib avec le profil no-symlink, il faut changer lib en lib64.

Dans cet exemple proposé par Joe Womack, nous allons configurer quelques paramètres de xterm. Cela peut être fait soit globalement par l'administrateur, soit par chaque utilisateur selon ses préférences.

Exemple de code 3.2 : Configuration globale d'app-defaults/XTerm-color


Comme précédemment, créez une copie du fichier dans /etc/ afin de
bénéficier de la protection des fichiers de configuration :

# cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/

Éditez le fichier selon vos préférences. Nous devons maintenant informer Xt de
l'emplacement du fichier à travers la variable XFILESEARCHPATH. Configurez
cette variable dans un fichier placé dans /etc/env.d :

# echo '# Emplacement global des fichiers de configuration des applications X' >> /etc/env.d/10xpaths
# echo 'XFILESEARCHPATH=/etc/X11/%T/%N:/usr/share/X11/%T/%N' >> /etc/env.d/10xpaths

Exemple de code 3.3 : Configuration de app-defaults/XTerm-color par les utilisateurs

Cela peut être fait de deux façons :
1) Configurez un répertoire « app-defaults » par utilisateur :
# echo '# Emplacement par utilisateur des fichiers de configuration des applications X' >> /etc/env.d/10xpaths 
# echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths


2) Créez un fichier .Xdefault ou .Xresources et copiez-y les paramètres que
vous souhaitez modifier. Dans cet exemple, on personnalisera les Xterm pour
qu'ils aient un curseur orange, qu'ils se comportent comme un terminal
interactif, qu'ils aient une barre de défilement, ainsi qu'un historique de
1000 lignes :

# echo '! Xterm defaults'               >> .Xresources
# echo 'XTerm*CursorColor:      orange' >> .Xresources
# echo 'XTerm*loginShell:       true'   >> .Xresources
# echo 'XTerm*scrollBar:        true'   >> .Xresources
# echo 'XTerm*saveLines:        1000'   >> .Xresources


Pour appliquer ces paramètres, relancez X ou bien utilisez la commande :

# xrdb -merge $HOME/.Xresources

Note : Consultez la page http://www.faqs.org/faqs/x-faq/part2/section-22.html pour plus de détails sur la configuration des variables XFILESEARCHPATH et XUSERFILESEARCHPATH. Consultez la page http://tldp.org/HOWTO/XWindow-User-HOWTO/moreconfig.html#XRESOURCES pour plus de détails sur le fichier .Xresources.

Problèmes de pilotes

Il a été rapporté que :

  • vesa bloque la machine avec les cartes Matrox
  • vga donne un affichage très étrange, l'écran étant divisé en quatre.

Faire fonctionner l'accélération 3D

Ces programmes sont maintenant fournis par x11-apps/mesa-progs. mesa-progs est automatiquement installé par x11-base/xorg-x11.

Pour obtenir des informations de débogage afin de faire fonctionner le rendu direct :

Exemple de code 3.4 : Obtenir des informations de débogage

# grep -e EE -e WW /var/log/Xorg.0.log
# LIBGL_DEBUG=verbose glxinfo

Auto-détection du protocole de la souris

Si vous avez configuré votre souris avec Protocol "auto" dans xorg.conf, cela risque de ne pas fonctionner. Il vous faudra alors spécifier Protocol "ExplorerPS/2" ou "IMPS/2" pour que votre molette fonctionne.

Un message d'erreur me dit que libbitmap ou libpcidata est introuvable

Assurez-vous qu'il n'y ait aucune ligne ModulePath dans le fichier /etc/X11/xorg.conf.

gdm/kdm ne fonctionne pas

Si vous avez installé X modulaire sur une nouvelle installation Gentoo, il se peut que vous n'ayez pas le lien symbolique /usr/X11R6 -> /usr. Le paquet x11-base/xorg-x11 s'assurera que ce lien existe durant le processus d'installation.

Vous pouvez aider à sortir les choses de /usr/X11R6 en corrigeant les paquets qui s'y installent et en remplissant des rapports de bogue. N'oubliez pas non plus de réinstaller ces paquets.

Exemple de code 3.5 : Paquets qui s'installent dans /usr/X11R6

# cat ~/usr-x11r6-packages
# emerge --pretend $(< ~/usr-x11r6-packages )

XKB ne marche pas, impossible changer de terminal virtuel, etc.

  • De nombreuses dispositions de clavier XKB ont été déplacées, consolidées ou ont disparu. Regardez le répertoire /usr/share/X11/xkb/symbols/ pour voir ce qu'il est advenu de votre ancien paramètre XkbLayout de xorg.conf. Par exemple, pour remplacer la disposition "us_intl", vous devriez mettre XkbLayout "latin", XkbOptions "lv3:ralt_switch". Pour remplacer la disposition "sk_qwerty", il faut mettre XkbLayout "sk", XkbVariant "qwerty". Cas plus compliqué, vous avez XkbLayout "us,sk_qwerty". Pour le faire fonctionner, le nouveau paramètre serait XkbLayout "us,sk", et l'astuce, c'est la virgule dans XkbVariant ",qwerty", parce qu'on veut que la variante s'applique à la seconde disposition.

Exemple de code 3.6 : Rechercher les changements de XKB

(Recherhez dans /var/log/Xorg.0.log le message suivant :)
(WW) Couldn't load XKB keymap, falling back to pre-XKB keymap
(Si vous n'avez pas ce message, XKB fonctionne déjà.)
# grep Xkb /etc/X11/xorg.conf
 Option "XkbModel"  "logibik"
 Option "XkbLayout"  "dvorak"
 Option "XkbOptions" "ctrl:swapcaps"
(D'abord, regardez ce qui a changé pour votre disposition. Cela se
trouve dans le repertoire symbols/pc.)
# cd /usr/share/X11/xkb/symbols/
(Si vous avez xkbdata à la place de xkeyboard-config,
passez dans le sous-répertoire pc/)
# ls *dvorak*
(OK, il n'y a rien.)
(De nombreuses vieilles dispositions ont été renomées avec le code du pays.)
# ls *us*
 us
(Ensuite, on cherche une variante xkb_symbols qui s'appelle dvorak.)
# grep xkb_symbols.*dvorak us
 xkb_symbols "dvorak" {
(Cela signifie qu'il faut Option "XkbLayout" "us"
et Option "XkbVariant" "dvorak" dans xorg.conf.)

(Mais lorsqu'on essaie avec setxkbmap, on obtient encore une erreur:)
# setxkbmap -model logibik -layout us -variant dvorak -option "ctrl:swapcaps"
(Peut-être que le modèle a aussi changé.)
# cd /usr/share/X11/xkb/rules/
# grep logibik xorg.lst
(Pas de retour, il n'existe donc plus. Y en a-t-il des similaires ?)
# grep logi* xorg.lst
 logiaccess      Logitech Access Keyboard
 logicdit        Logitech Cordless Desktop iTouch
 logicdp         Logitech Cordless Desktop Pro
 logicdpa        Logitech Cordless Desktop Pro (alternate option)
 logicdpa2       Logitech Cordless Desktop Pro (alternate option2)
 logicdo         Logitech Cordless Desktop Optical
 logicfn         Logitech Cordless Freedom/Desktop Navigator
 logicdn         Logitech Cordless Desktop Navigator
 logidak         Logitech Deluxe Access Keyboard
 logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
 logiik          Logitech Internet Keyboard
 logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
 logiik          Logitech Internet Keyboard
 logiink         Logitech Internet Navigator Keyboard
 logiultrax      Logitech Ultra-X Keyboard
(Génial !
Le modèle « logiik » semble similaire, essayons-le donc avec setxkbmap.)
# setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps"
(Ça marche, donc faites correspondre la valeur de XkbModel.
Maintenant, tout fonctionne)

Autres problèmes

  • Le paquet x11-base/xorg-x11 filtre maintenant tous les ModulePath et RgbPath de votre /etc/X11/xorg.conf, puisque ces deux chemins ont changé depuis les versions précédentes. Assurez-vous de lancer etc-update pour que ces modifications prennent effet. Si vous remarquez que ces lignes n'ont pas été supprimées automatiquement, enlevez-les manuellement.


Imprimer

Dernière mise à jour le 5 novembre 2006

Résumé : Ce guide vous explique comment migrer vers la version modulaire de X.Org.

Donnie Berkholz
Auteur

Joshua Baergen
Auteur

Bertrand Coppa
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.