Guide de migration vers X.Org modulaire
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 |
# cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/
# nano /etc/X11/xdm/xdm-config
! 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
! 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 |
# cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/
# 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 |
# echo '# Emplacement par utilisateur des fichiers de configuration des applications X' >> /etc/env.d/10xpaths
# echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths
# echo '! Xterm defaults' >> .Xresources
# echo 'XTerm*CursorColor: orange' >> .Xresources
# echo 'XTerm*loginShell: true' >> .Xresources
# echo 'XTerm*scrollBar: true' >> .Xresources
# echo 'XTerm*saveLines: 1000' >> .Xresources
# 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 |
(WW) Couldn't load XKB keymap, falling back to pre-XKB keymap
# grep Xkb /etc/X11/xorg.conf
Option "XkbModel" "logibik"
Option "XkbLayout" "dvorak"
Option "XkbOptions" "ctrl:swapcaps"
# cd /usr/share/X11/xkb/symbols/
# ls *dvorak*
# ls *us*
us
# grep xkb_symbols.*dvorak us
xkb_symbols "dvorak" {
# setxkbmap -model logibik -layout us -variant dvorak -option "ctrl:swapcaps"
# cd /usr/share/X11/xkb/rules/
# grep logibik xorg.lst
# 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
# setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps"
|
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.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|