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 :
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. |
'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. |
Il a été rapporté que :
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.
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.
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) |
Ce document est protégé par la licence Creative Commons : Paternité - Partage des Conditions Initiales à l'Identique 2.5.