Xorg/Guide
Xorg est le serveur de fenêtres X qui permet aux utilisateurs de disposer d'un environnement graphique. Ce guide explique ce qu'est Xorg, comment l'installer, et les différentes options de configuration.
Qu'est-ce que le serveur X Window ?
Environnement graphique vs ligne de commande
Un utilisateur moyen peut être effrayé à l'idée d'avoir à taper des commandes dans une interface en ligne de commandes (CLI). Pourquoi ne pourrait-il pas pointer avec la souris et cliquer pour se frayer son chemin dans l'espace de liberté procuré par Gentoo (et Linux en général) ? Eh bien, naturellement, il peut le faire !
Gentoo offre une grande variété d'interfaces utilisateur très attractives telles que des gestionnaires de fenêtres et des environnements de bureau que vous pouvez installer au-dessus de votre installation existante.
Une des plus grandes surprises que les nouveaux utilisateurs rencontrent : Les interfaces graphiques ne sont rien de plus qu'une application (ou dans certains cas une suite d'applications) qui sont lancées sur un système. Ce n'est pas une partie du noyau Linux, ou autre fonctionnalité interne du système. Ceci étant dit, les interfaces graphiques sont des outils puissants qui ouvrent les capacités graphiques d'une station de travail.
Comme les normes sont importantes, une norme pour dessiner et déplacer des fenêtres sur l'écran, interagissant avec l'utilisateur via la souris, le clavier, et autres dispositifs, a été créée et nommée le système X Window', couramment abrégé en X11 ou tout simplement X. Ce système est utilisé sur Unix, Linux, et les systèmes d'exploitation basés sur Unix à travers le monde entier.
L'application qui permet aux utilisateurs d'exécuter les interfaces graphiques et qui se base sur la norme X11 est Xorg-X11, un embranchement du projet XFree86. XFree86 ayant décidé d'utiliser une licence qui pourrait s'avérer incompatible avec la licence GPL, l'utilisation de Xorg est par conséquent recommandée. Les paquets XFree86 ne sont dorénavant plus fournis par le dépôt Gentoo.
Le projet X.org
Le projet X.org a créé et tient à jour une mise en œuvre du système X11 librement distribuable et open-source. Il s'agit d'une infrastructure de bureau open-source basée sur X11.
Xorg procure une interface entre votre matériel et l'application graphique que vous voulez exécuter. En plus de cela, Xorg est compatible avec le fonctionnement en réseau, ce qui signifie que vous pouvez exécuter une application sur un système tout en visualisant les résultats sur un autre.
Installer Xorg
Avant d'installer Xorg, préparez votre système à le recevoir. Tout d'abord, configurez le noyau pour qu'il prenne en charge les périphériques d'entrée et les cartes vidéo. Ensuite, préparez /etc/portage/make.conf pour que les bons pilotes et les paquets Xorg soient compilés et installés.
Prise en charge des pilotes de périphérique d'entrée
Le support pour interface d'événements (CONFIG_INPUT_EVDEV) doit être activé en modifiant la configuration du noyau. Lisez le Guide de configuration du noyau si vous ne savez pas comment configurer votre noyau.
Device Drivers --->
Input device support --->
<*> Event interface
Kernel modesetting
Les pilotes vidéo open-source modernes s'appuient sur le kernel mode setting (KMS). KMS procure un démarrage graphique amélioré moins vacillant, avec un changement d'utilisateur plus rapide, une console à tampon de trames incorporée, une transition douce entre console et Xorg et d'autres fonctionalités.
Verify legacy framebuffer drivers have been disabled
KMS entre en conflit avec les pilotes de tampon de trames patrimoniaux, qui doivent rester désactivés dans la configuration du noyau
En premier lieu, préparez votre noyau pour KMS. Vous devez accomplir cette étape sans vous soucier du pilote vidéo Xorg que vous allez utiliser.
'"`UNIQ--pre-00000003-QINU`"'
Ensuite, configurez le noyau pour qu'il utilise le pilote KMS adéquat pour la carte vidéo. Intel, NVIDIA et AMD/ATI sont les cartes les plus répandues. Suivez le listing de code ci-dessous pour chaque carte.
Intel
Pour les cartes Intel [1]:
NVIDIA
Pour les cartes nVidia :
In addition to the kernel driver, certain cards require closed source firmware to be built-in to the Linux kernel. Depending on the selected driver, readers should visit each respective article to check to see if firmware (from the sys-kernel/linux-firmware is necessary for their specific card.
'"`UNIQ--pre-00000008-QINU`"'
AMD/ATI
Pour les cartes AMD/ATI les plus récentes (RadeonHD 2000 et postérieures), vous devrez installer x11-drivers/radeon-ucode ou sys-kernel/linux-firmware. Une fois que vous avez installé un de ces paquets, configurez votre noyau comme expliqué en détails dans la section firmware de la page Radeon::
Anciennes cartes :
'"`UNIQ--pre-0000000D-QINU`"'
Nouvelles cartes :
## (Setup the kernel to use the amdgpu firmware, optional if "AMD GPU" below is M)
Device Drivers --->
Generic Driver Options --->
[*] Include in-kernel firmware blobs in kernel binary
## # AMD card specific, (see AMDGPU page for details which firmware files to include)
(amdgpu/<CARD-MODEL>.bin ...)
## # Specify the root directory
(/lib/firmware/) External firmware blobs to build into the kernel binary
## (Enable Radeon KMS support)
Device Drivers --->
Graphics support --->
<M/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<M/*> AMD GPU
[ /*] Enable amdgpu support for SI parts
[ /*] Enable amdgpu support for CIK parts
[*] Enable AMD powerplay component
ACP (Audio CoProcessor) Configuration --->
[*] Enable AMD Audio CoProcessor IP support (CONFIG_DRM_AMD_ACP)
Display Engine Configuration --->
[*] AMD DC - Enable new display engine
[ /*] DC support for Polaris and older ASICs
[ /*] AMD FBC - Enable Frame Buffer Compression
[ /*] DCN 1.0 Raven family
<M/*> HSA kernel driver for AMD GPU devices
Les anciennes cartes Radeon(séries X1900 et antérieurse) ne nécessitent pas le paquet x11-drivers/radeon-ucode ou aucune autre configuration de micro-code. Contentez-vous d'activer le Direct Rendering Manager (Gestionnaire de Rendu Direct) et ATI Radeon modesetting.
Noyau Linux >= 3.9 ne dispose pas de Enable modesetting on radeon by default puisqu'il est déjà implicite par défaut
Linux kernel >= 4.15 does include Display Core (DC) which is required for AMDGPU to work. This newer driver was written for GCN5.0 Vega and DCN1.0 Raven Ridge (APU), but also adds additional functionality for older Radeon graphics cards starting with GCN1.1 Southern Islands and newer. It is planned to make this additional support for older Radeon cards the standard, so do not be alarmed if this option is missing in newer kernels.
Exit the kernel configuration, rebuild the kernel, and reboot.
Maintenant que KMS a été configuré, continuez avec la préparation du fichier /etc/portage/make.conf à la section suivante.
Maintenant que le noyau est préparé, il faut configurer des variables dans le fichier /etc/portage/make.conf avant d'installer Xorg.
make.conf
Portage knows the X USE flag for enabling support for X in other packages (default in all desktop profiles). Make sure this USE flag is added to the USE flag list to ensure X compatibility system wide:
USE="X"
La première variable est VIDEO_CARDS
. Elle est utilisée pour définir le pilote vidéo que vous allez utiliser et dépend du type de carte vidéo que vous avez. La définition la plus commune est nouveau
pour les cartes nVidia ou radeon
pour les cartes ATI.
Vous pouvez aussi essayer les pilotes propriétaire de NVIDIA et d'AMD/ATI,
nvidia
et fglrx
respectivement. Cependant, définir les pilotes propriétaire sort du champ de ce guide. Reportez-vous au guide guide NVIDIA de Gentoo Linux et à la FAQ ATI de Gentoo Linux. Si vous ne savez pas quel pilote choisir, reportez-vous à ces guides pour plus d'informations.Le pilote intel
peut être utilisé pour les stations de travail ou les ordinateurs portables munis des jeux de circuits Intel courants intégrés.
VIDEO_CARDS
peut contenir plus d'un pilote, chacun séparé par une espace.La deuxième variable est INPUT_DEVICES
. Elle est utilisée pour déterminer quels pilotes compiler pour la prise en charge des périphériques d'entrée. Dans la plupart des cas, la définir à evdev
devrait donner satisfaction. Si vous utilisez des périphériques d'entrée alternatifs, tels qu'un pavé tactile Synaptics pour un ordinateur portable, assurez-vous de l'ajouter à la variable INPUT_DEVICES
.
make.defaults has Libinput as the default input device driver.
To check what is presently set, run:
user $
portageq envvar INPUT_DEVICES
Maintenant déterminez quels pilotes vous allez utiliser et ajouter les définitions nécessaires au fichier /etc/portage/make.conf :
## (Pour la prise en charge de la souris, du clavier et du pavé tactile Synaptics)
INPUT_DEVICES="libinput synaptics"
## (Pour des cartes NVIDIA)
VIDEO_CARDS="nouveau"
## (Pour les cartes AMD/ATI)
VIDEO_CARDS="radeon"
Si les définitions suggérées ne fonctionnent pas pour vous, vous devriez installer le paquet emerge -pv xorg-drivers
, passer en revue toutes les options disponibles et choisir celles qui s'appliquent à votre système. Cet exemple est pour un système doté d'un clavier, d'une souris, d'un pavé tactile Synaptics et d'une carte vidéo Radeon.
root #
emerge --pretend --verbose x11-base/xorg-drivers
These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] x11-base/xorg-drivers-1.20-r1::gentoo INPUT_DEVICES="libinput synaptics -elographics -evdev -joystick -keyboard -mouse -vmmouse -void -wacom" VIDEO_CARDS="nouveau radeon -amdgpu -ast -dummy -fbdev (-freedreno) (-geode) -glint -i915 -i965 -intel -mga -nv -nvidia (-omap) -qxl -r128 -radeonsi -siliconmotion (-tegra) (-vc4) -vesa -via -virtualbox -vmware" 0 KiB
The USE flags have the following meaning:
USE flags for x11-base/xorg-server X.Org X servers
+elogind
|
Use elogind to get control over framebuffer when running as regular user |
+udev
|
Enable virtual/udev integration (device discovery, power and storage device support, etc) |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
minimal
|
Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features) |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
suid
|
Enable setuid root program(s) |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
unwind
|
Enable libunwind usage for backtraces |
xcsecurity
|
Build Security extension |
xephyr
|
Build the Xephyr server |
xnest
|
Build the Xnest server |
xorg
|
Build the Xorg X server (HIGHLY RECOMMENDED) |
xvfb
|
Build the Xvfb server |
By default the suid USE flag is disabled, which is fine when, as per recommendation, X runs under a logind provider like elogind, or systemd. The suid USE flag should however be enabled in /etc/portage/package.use/xorg-server in case no logind provider is used and X is run under a normal user account, e.g. started with startx. Please see also this repository news article. Setting suid would then prevent permission errors on /dev/tty0, or on virtual console 7.
Emerge
Après avoir défini toutes les variables nécessaires, Xorg peut être installé.
root #
emerge --ask xorg-server
Dès que l'installation est terminée, vous devez réinitialiser quelques variables d'environnement avant de continuer :
root #
env-update
root #
source /etc/profile
Configurer Xorg
Le serveur X est conçu pour fonctionner dès l'installation sans besoin d'éditer des fichiers de configuration. Il devrait détecter et configurer les périphériques tels que souris, clavier et moniteurs.
Vous devriez d'abord essayer utiliser startx sans éditer aucun fichier de configuration. Si Xorg en démarre pas, où s'il y a un autre problème, alors vous devez configurer Xorg à la main comme expliqué dans la section qui suit.
To run Xorg with non-root users, as root, either enable a logind provider (see Non root Xorg) or set the suid USE flag (see above note).
Pensez à redémarrer votre système avant d'utiliser startx afin de démarrer sur votre nouveau noyau si vous y avez fait des modifications.
Le répertoire xorg.conf.d
Les fichiers de configuration dans xorg.conf.d devraient être considérés comme un "dernier recours". Il est hautement désirable de fonctionner sans configuration spéciale si possible. Si vous ne parvenez pas à obtenir une configuration fonctionnelle alors continuez à lire.
Les fichiers de configuration de Xorg sont stockés dans /etc/X11/xorg.conf.d/ . Chaque fichier reçoit un nom unique qui se termine par .conf . Si les noms de fichier commencent par un nombre, alors Xorg lira les fichiers dans l'ordre numérique. 10-evdev.conf sera lu avant 20-synaptics.conf ,et ainsi de suite. Vous n'avez pas besoin de les numéroter, mais cela aide à les organiser.
Xorg fournit des exemples de configuration dan /usr/share/doc/xorg-server-${version}/xorg.conf.example.bz2 . Vous pouvez les utiliser pour créer vos propres fichiers de configuration dans /etc/X11/xorg.conf.d/ . Les exemples sont largement commentés, mais si vous avez besoin de plus d'information en ce qui concerne la syntaxe, lisez la page de manuel
man xorg.conf
. D'autres exemples sont disponibles dans le chapitre Ressources à la fin de ce guide.Utiliser startx
Essayer maintenant startx
pour démarrer le serveur X. startx
est un script qui lance une session X ; c'est à dire qu'il démarre le serveur X et quelques applications graphiques par dessus ce serveur. Il décide quelles applications lancer selon la logique suivante :
- Si un fichier nommé .xinitrc existe dans le répertoire home, il exécute les commandes qu'il y trouve.
- Sinon, il lit la valeur de la variable
XSESSION
et lance une des sessions disponibles dans /etc/X11/Sessions/ en fonction de cette variable. La valeur deXSESSION
peut être définie dans le fichier /etc/env.d/90xsession pour en faire la session par défaut pour tous les utilisateurs du système. Par exemple, en tant que root, exécutez echo XSESSION="Xfce4" > /etc/env.d/90xsession . Ceci créera le fichier 90xsession et définira la session X par défaut à Xfce. Pensez à exécuter env-update après avoir changé 90xsession .
root #
echo XSESSION="Xfce4" > /etc/env.d/90xsession
- This will create the 90xsession file and set the default X session to Xfce. Remember to run env-update after making changes to 90xsession.
user $
startx
Si vous n'avez pas encore installé un gestionnaire de fenêtres, vous verrez un écran noir. Comme cela peut aussi être le signe que quelque chose ne va pas, vous devriez installer twm
et xterm
juste pour tester X .
Une fois ces programmes installés, exécutez startx
à nouveau. Quelques fenêtres xterm
devraient apparaître, rendant plus facile la vérification que X fonctionne correctement. Une fois que vous êtes satisfait des résultats, exécutez emerge --unmerge twm xterm
en tant que root pour vous débarrasser des paquets de test. Vous n'en aurez plus besoin, une fois votre propre environnement de bureau installé.
The session (program to start) could also be given as an argument to startx:
user $
startx /usr/bin/startfluxbox
In addition, to pass X11 server options, by preceding them with a double dash:
user $
startx -- vt7
Peaufiner les réglages de X
Définir votre résolution d'écran
Si vous trouvez que la résolution de votre écran n'est pas bonne, vous devez vérifier deux sections de votre configuration dans xorg.conf.d. Tout d'abord, regardez la section Screen qui liste les résolutions auxquelles votre serveur X fonctionnera. Cette section peut très bien ne citer aucune résolution. Si c'est le cas, Xorg estimera la résolution en se basant sur l'information de la section Monitor.
Changez maintenant la résolution. Dans l'exemple qui suit tiré de /etc/X11/xorg.conf.d/40-monitor.conf, ajoutez la ligne PreferredMode
pour dire à votre serveur de démarrer à 1440x900 par défaut. L'option
dans la section Device
doit correspondre au nom de votre moniteur ( DVI-0
), qui peut être obtenu en exécutant la commande xrandr
. Vous devez exécuter emerge xrandr
le temps d'obtenir cette information. L'argument après le nom du moniteur (dans la section Device
) doit correspondre l'identifiant (Identifier
) sans la section Monitor
.
Section "Device"
Identifier "RadeonHD 4550"
Option "Monitor-DVI-0" "DVI screen"
EndSection
Section "Monitor"
Identifier "DVI screen"
Option "PreferredMode" "1440x900"
EndSection
Exécutez X (startx) pour vérifier qu'il utilise la résolution voulue.
Moniteurs multiples
Vous pouvez configurer plus d'un moniteur dans /etc/X11/xorg.conf.d/. Tout ce que vous avez à faire, c'est de donner un identifiant à chacun des moniteurs, puis lister leur position physique, telle que RightOf (à droite de) ou Above (au-dessus) d'un autre moniteur. L'exemple qui suit montre comment configurer un moniteur DVI et un moniteur VGA, avec le moniteur VGA à droite :
Section "Device"
Identifier "RadeonHD 4550"
Option "Monitor-DVI-0" "DVI screen"
Option "Monitor-VGA-0" "VGA screen"
EndSection
Section "Monitor"
Identifier "DVI screen"
EndSection
Section "Monitor"
Identifier "VGA screen"
Option "RightOf" "DVI screen"
EndSection
Configurer le clavier
For methods of switching the keyboard layout see the Keyboard layout switching article.
The rest of this section may not be needed if following the Keyboard layout switching article.
Pour configurer X pour l'utilisation d'un clavier international, vous devez seulement créer le fichier de configuration approprié dans /etc/X11/xorg.conf.d/. Cet exemple concerne un arrangement de clavier Tchèque :
Section "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbLayout" "us,cz"
Option "XkbModel" "logitech_g15"
Option "XkbRules" "xorg"
Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp"
Option "XkbVariant" ",qwerty"
MatchIsKeyboard "on"
EndSection
La commande terminate ( terminate:ctrl_alt_bksp
) vous permet de tuer la session X à l'aide de la combinaison de touches Ctrl-Alt-Backspace. Néanmoins, ceci provoque une sortie de X disgracieuse -- quelque chose que vous ne souhaitez pas toujours. Cela peut être utile, lorsque des programmes figent votre écran totalement, ou quand vous peaufinez la configuration de votre environnement Xorg.
Soyez prudent en tuant votre environnement de bureau de cette manière -- la plupart des programmes n'aiment pas ça et peuvent perdre une partie ( voire la totalité) des données sur lesquelles vous étiez en train de travailler.
Because the "evdev" driver can handle multiple devices (even non-keyboards), limiting the section to only some devices might be needed for proper working of all the devices. Use the MatchProduct
directive to specify the device name, consult man xorg.conf for more info.
For more information about XkbModel
and XkbOptions
, consult /usr/share/X11/xkb/rules/base.lst and man xkeyboard-config.
Pour terminer
Exécutez startx et profitez du résultat. Félicitations ! Vous avez désormais un Xorg opérationnel. L'étape suivante consiste à installer un gestionnaire de fenêtres ou environnement de bureau tel que KDE, GNOME, ou Xfce. Des informations sur la manière d'installer ces environnements de bureau sont disponibles sur ce wiki.
Voir aussi
- Wayland - La nouvelle génération de gestionnaire de fenêtres pour Linux.
Ressources externes
Créer et éditer les fichiers de configuration
man xorg.conf et man evdev fournissent une référence rapide mais complète sur la syntaxe utilisée dans ces fichiers. Assurez-vous de les avoir à portée de main quand vous éditez les fichiers de configuration !
Example configurations can be found at /usr/share/doc/xorg-server-*/xorg.conf.example.bz2.
Il existe aussi beaucoup de ressources en ligne sur l'édition des fichiers de configuration dans /etc/X11/. Nous nous contentons d'en donner quelques unes ici ; utilisez Google pour en savoir plus.
Autres ressources
Une information complémentaire sur l'installation et la configuration de divers environnements de bureau et applications est disponible dans la section la station de travail de Gentoo
Si vous montez en version vers xorg-server
1.9, assurez-vous de lire le migration guide
X.org fournit beaucoup de FAQs sur son site WEB, en plus de la documentation.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT) , Joshua Saddler(nightmorph)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.