Guide de migration vers X.Org modulaire Donnie Berkholz Joshua Baergen Bertrand Coppa Ce guide vous explique comment migrer vers la version modulaire de X.Org. 1.18 2006-02-01 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.
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
# emerge gentoolkit
# quickpkg xorg-x11

Se débarasser de l'installation monolithique :

# emerge -Ca xorg-x11 virtual/x11

Il est fortement conseillé de faire une sauvegarde du xorg-x11 monolithique au cas où les choses se passeraient vraiment très mal.

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.

# if [[ ! -L /usr/X11R6 ]]; \
    then equery belongs /usr/X11R6 > ~/usr-x11r6-packages \
    && rm -rf /usr/X11R6; fi
Seconde étape : installer le X modulaire

D'abord, ajoutez les paquets nécessaires dans le fichier /etc/portage/package.unmask. Ouvrez /usr/portage/profiles/package.mask avec l'éditeur de texte de votre choix et faites un copier-coller de la liste complète des fichiers masqués pour X modulaire dans package.unmask. Faites de même pour /etc/portage/package.keywords si vous êtes dans la branche stable. Si tout ceci vous est incompréhensible, lisez la section concernant le masquage du manuel..

>=sys-apps/portage-2.1_pre4=sys-apps/man-1.6b-r2app-admin/eselect-opengl>=app-admin/eselect-1.0_rc1media-video/nvidia-kernelmedia-video/nvidia-glx
Autres paquets pouvant avoir besoin de package.keywords pour les utilisateurs de la branche stable

Pour avoir accès au « direct rendering », ajoutez l'option dri à la variable USE.

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 :

# grep Driver /etc/X11/xorg.conf
  Driver      "kbd"
  Driver      "mouse"
  Driver      "radeon"
# 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 savage -apm -ark -ati* -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="ati". 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.

# emerge xorg-x11
# etc-update

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.

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.
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.

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 :

3dfxDans la 7.0, intègre glide-v3 depuis le méta-paquet xorg-x113dnow, 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 dlloaderLa 7.0 utilise dlloader par défaut et elfloader ne fonctionne pasdocRemplacé par app-doc/xorg-docsdmxCompilé avec xorg-server sauf avec l'option USE=minimalfont-serverIl faut installer manuellement xfsipv6 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. nocxxPas encore d'équivalent pour la 7.0opengl 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. sdkLa 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.
Variable USE Qu'en est-il avec la 7.0 ?
Problèmes de pilotes

On m'a 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 :

# 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

Installez à nouveau >=xorg-server-0.99.1-r4. C'était un bogue temporaire dans l'ebuild qui avait pour conséquence l'effacement après désinstallation du paquet. Normalemment, /usr/lib/xorg ne devrait être effacé que s'il n'y a plus aucun xorg-server sur le système.

Assurez-vous aussi que ModulePath n'est pas configuré 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.

# 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/pc 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.
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.