xorg.conf – fichier de référence

Les nombreuses heures de travail sur le projet ont mené à la création d’un fichier de configuration du serveur X général et tout-terrain, qui peut servir de base pour tout multiseat.

# Configuration de référence du serveur X pour le multiseat. Fichier générique, mais configuré pour un poste précis. Les zones à modifées sont indiquées par un commentaire non indenté.
# Note : les entêtes des parties de chaque seat ont été modifiées pour la machine en cours. Elles seront adaptées aux différentes contextes. Le script générateur donnera la possibilité à l'utilisateur de mettre un petit texte pour se souvenir de quel matériel traite le seat.

#**************************************************************
#**************************************************************
#
#	PARTIE COMMUNE À TOUS LES SEAT
#
#**************************************************************
#**************************************************************

    Section "ServerFlags"
        Option         "AutoAddDevices"      "false"
        Option         "AutoEnableDevices"   "false"
        Option         "AllowEmptyInput"     "true"
        Option         "AllowMouseOpenFail"  "true"
        Option         "AutoAddGPU"          "false"
        Option         "DPMS"                "true"
        Option         "BlankTime"           "5"
        Option         "StandbyTime"         "6"
        Option         "SuspendTime"         "7"
        Option         "OffTime"             "8"
        Option         "DefaultServerLayout" "Seat0"
        Option         "DontVTSwitch"        "true"
    EndSection

    Section "Module"
        Load         "extmod"
        Load         "dri2"
        Load         "dri"
        Load         "dbe"
        Load         "record"
        Load         "glx"
        Load         "GLcore"
    EndSection

#**************************************************************
#**************************************************************
#
#	SEAT 0 - Matériel perso
#
#**************************************************************
#**************************************************************

    Section "ServerLayout"
        Identifier         "Seat0"
        Screen           0 "Screen0"        0 0
        InputDevice        "Mouse0"         "CorePointer"
        InputDevice        "Keyboard0"      "CoreKeyboard"
        Option             "DontVTSwitch"   "false"
    EndSection

    Section "Device"
        Identifier         "Videocard0"
# CHANGER LE PILOTE
        Driver             "nvidia"
# CHANGER L'ADRESSE PCI
        BusID              "PCI:01:00:0"
# OPTION À UTILISER UNIQUEMENT SI LE PILOTE NVIDIA EST UTILISÉ
        Option             "ProbeAllGpus" "false"
    EndSection

    Section "InputDevice"
        Identifier         "Keyboard0"
        Driver             "evdev"
# CHANGER LE CHEMIN
        Option             "Device"       "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
        Option             "XkbRules"     "xorg"
        Option             "XkbModel"     "xorg"
# ADAPTER LES DEUX OPTIONS SUIVANTES À LA LANGUE ET LA VARIANTE DU CLAVIER UTILISÉ
        Option             "XkbLayout"    "fr"
        Option             "XkbVariant"   "oss"
        Option             "GrabDevice"   "true"
    EndSection

    Section "InputDevice"
        Identifier         "Mouse0"
# PILOTE "SYNAPTICS" SI PC PORTABLE AVEC TOUCHPAD SYNAPTICS
        Driver             "mouse"
# CHANGER LE CHEMIN
        Option             "Device"      "/dev/input/by-path/pci-0000:00:0b.0-usb-0:2:1.0-mouse"
	Option             "Protocol"    "ExplorerPS/2"
        Option             "GrabDevice"  "true"
    EndSection

    Section "Monitor"
        Identifier         "Monitor0"
        Option             "DPMS"
    EndSection     

    Section "Screen"
        Identifier         "Screen0"
        Device             "Videocard0"
        Monitor            "Monitor0"
        Option             "NoLogo" "true"
    EndSection

#**************************************************************
#**************************************************************
#
#	SEAT 1 - matériel université
#
#**************************************************************
#**************************************************************

    Section "ServerLayout"
        Identifier         "Seat1"
        Screen             "Screen1"
        InputDevice        "Mouse1"      "CorePointer"
        InputDevice        "Keyboard1"   "CoreKeyboard"
    EndSection

    Section "Device"
        Identifier         "Videocard1"
# CHANGER LE PILOTE
	Driver             "nvidia"
# CHANGER L'ADRESSE
        BusID              "PCI:06:00:0"
# OPTION À UTILISER UNIQUEMENT SI LE PILOTE NVIDIA EST UTILISÉ
        Option             "ProbeAllGpus" "false"
    EndSection

    Section "InputDevice"
        Identifier         "Keyboard1"
        Driver             "evdev"
# CHANGER LE CHEMIN
        Option             "Device"         "/dev/input/by-path/pci-0000:00:0b.0-usb-0:4:1.0-event-kbd"
        Option             "XkbRules"       "xorg"
        Option             "XkbModel"       "xorg"
# ADAPTER LES DEUX OPTIONS SUIVANTES À LA LANGUE ET LA VARIANTE DU CLAVIER UTILISÉ
        Option             "XkbLayout"      "fr"
        Option             "XkbVariant"     "oss"
        Option             "GrabDevice"     "true"
    EndSection

    Section "InputDevice"
        Identifier         "Mouse1"
# PILOTE "SYNAPTICS" SI PC PORTABLE AVEC TOUCHPAD SYNAPTICS
        Driver             "mouse"
# CHANGER LE CHEMIN
        Option             "Device"       "/dev/input/by-path/pci-0000:00:0b.0-usb-0:1:1.0-mouse"
	Option             "Protocol"     "ExplorerPS/2"
        Option             "GrabDevice"   "true"
    EndSection

    Section "Monitor"
        Identifier         "Monitor1"
        Option             "DPMS"
    EndSection    

    Section "Screen"
        Identifier         "Screen1"
        Device             "Videocard1"
        Monitor            "Monitor1"
        Option             "NoLogo" "true"
    EndSection

Un fichier détaillant chaque ligne est également disponible (on ne peut pas héberger des fichiers texte donc il faudra faire du copier/coller) :

# Fichier de configuration d'X.Org créé manuellement en vue de la réalisation d'un système multiseat.
# Chaque ligne est commentée pour détailler le rôle de l'option, son fonctionnement, son importance et les problèmes possibles.

# Version 1.0
#
# Notes de version :
#    - Première version fonctionnelle ;
#    - Multiseat statique à deux postes : aucune modification du matériel n'est possible, tous les réglages se font à la main dans ce fichier et dans le fichier lightdm.conf :
#        - Pas de déplacement des périphériques sur d'autres ports (sauf en modifiant ce fichier) ;
#        - Pas de branchement à chaud de périphériques d'entrée (sauf en modifiant ce fichier ; supports de stockage possible mais que sur le premier seat) ;
#        - Pas de modification des sorties sur lesquelles les écrans sont branchés (sauf en modifiant ce fichier) ;
#    - Fonctionne avec une carte graphique par poste ;
#    - Ne gère pas le son.

#**************************************************************
#**************************************************************
#
#	NOTES
#
#**************************************************************
#**************************************************************

# Méthodes d'identification des périphériques d'entrée (InputDevice) :
#        
#        Note : toutes ces méthodes ont un défaut, on ne peut pas changer le périphérique de place (le brancher sur un autre port) car ils sont repérés en fonction de leur adresse physique.
#        
#     1. cat /proc/bus/input/devices (NE FONCTIONNE PAS MAIS LA PREMIÈRE PARTIE EST TRÈS UTILE POUR IDENTIFIER LE PÉRIPHÉRIQUE (NAME + EVENT))
#        Ce fichier contient une liste des périphériques connectés à l'ordinateur et diverses informations utiles, qui permettent de les identifier entre-autres.
#        
#        Exemple d'entrées concernant le bouton d'alimentation :
#        I: Bus=0019 Vendor=0000 Product=0001 Version=0000
#        N: Name="Power Button"
#        P: Phys=PNP0C0C/button/input0
#        S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
#        U: Uniq=
#        H: Handlers=kbd event1 
#        B: PROP=0
#        B: EV=3
#        B: KEY=10000000000000 0
#        
#        Le nom nous aide à identifier le périphérique, et la valeur de "Phys" nous permet de l'identifier. On entrera alors la ligne suivante dans la section InputDevice :
#        Option "Dev Phys" "PNP0C0C/button/input0"
#         OU :
#        Option "Phys" "PNP0C0C/button/input0"
#        
#        NOTE : CETTE FAÇON DE FAIRE A ÉTÉ ÉVOQUÉE ICI : https://help.ubuntu.com/community/MultiseatX ET UTILISÉE ICI http://en.wikibooks.org/wiki/Multiseat_Configuration/evdev ET LÀ http://blog.fclement.info/en/content/configurer-souris-logitech-v470-cordless-laser-sous-ubuntu. MAIS ELLE NE FONCTIONNE PAS ! Il y a peut-être une façon de l'utiliser mais je n'ai pas trouvé sur le web. On n'a quasiment jamais à identifier le périphérique utilisé directement dans xorg.conf, rare sont les exemples sur internet et ceux trouvés ne fonctionnent pas. Après 45min de recherche, cette solution a été mise de côté.
#        
#     2. ls -la /dev/input/by-path/ (MÉTHODE UTILISÉE !) OU ls -la /dev/input/by-id/
#        
#        Ce dossier permet d'identifier les périphériques d'entrée. Il contient des liens menant aux fichiers correspondant à ces périphériques. ces fichiers sont du type "eventn", n étant le numéro de l'évennement. Ce numéro pouvant changer entre les démarrage, on ne s'en sert pas directement. Les liens du dossier /dev/input/by-path/ mènent toujours au bon endroit et ne changent pas, leur nom est donné en fonction de l'adresse physique du périphérique (adresse du port USB ou bus PCI). Ainsi, chaque périphérique est identifié en fonction du port où il est connecté. Le fichier /proc/bus/input/devices aide pour identifier le clavier voulu.
#        
#        Exemple d'entrée pour le clavier :
#        
#        lrwxrwxrwx 1 root root  10 mars  15 19:40 pci-0000:00:1d.0-usb-0:1.5:1.0-event-mouse -> ../event11
#        lrwxrwxrwx 1 root root   9 mars  15 19:40 pci-0000:00:1d.0-usb-0:1.5:1.0-mouse -> ../mouse1
#
#        La seconde ligne nous intéresse, elle va nous servir à identifier le périphérique. NE SURTOUT PAS UTILISER LA PREMIÈRE LIGNE, LA SOURIS DEVIENDRAIT FOLLE ET INUTILISABLE. On entrera alors la ligne suivante dans la section InputDevice :
#        Option "Device" " "/dev/input/by-path/pci-0000:00:1d.0-usb-0:1.5:1.0-mouse"
#
#        Méthode similaire pour ls -la /dev/input/by-id/
#        
#     3. ls -la /dev/input/mouse*
#        Cette commande liste tous les fichiers spéciaux correspondants aux souris (un par souris connectée), numérotés de mouse0 à mouse(n-1) s'il y a n souris connectées. Pour identifier quel fichier correspond à quelle souris, il faut lire le fichier /proc/bus/input/devices et lire la partie  H: Handlers=mouse0 event1 pour déterminer quel est le numéro de la souris.
#
#        On entrera alors la ligne suivante dans la section InputDevice :
#        Option "Device" "/dev/input/mouse0"
#        
#     4. dmesg | tail (après avoir branché un périphérique)
#        Cette commande affiche les dernières lignes (tail) du tampon du noyau (dmesg). man dmesg : "dmesg is used to examine or control the kernel ring buffer. The default action is to read all messages from kernel ring buffer." C'est "ring buffer" que j'ai du mal à traduire avec précision.
#        Quand on connecte ou déconnecte un périphérique, cette action est écrite dans le tampon du noyau et on peut la lire. Cela permet de déterminer quel périphérique vient d'être connecté pour le traiter. Je ne sais pas si on peut s'en servir aisément pour un script, mais à la main, c'est plutôt pratique. Même si les périphériques ne sont pas ajoutés/activés par défaut, l'évennement est noté ici. Enfin, pour le traitement des périphériques, regarder aussi les évennements HAL/udev pour les ajouter via un script et voir DevicePresenceNotify. Bref se renseigner plus amplement.

#        DPMS : Protocole de communication entre la carte graphique et l'écran (donc les deux doivent le supporter). Utilisé pour la synchronisation verticale et horizontale entre-autres. Je n'en sais pas plus, c'est assez technique et je n'ai pas le temps de me renseigner plus. Mais ça sert aussi pour mettre l'écran en veille s'il ne  reçoit plus de signal de la carte vidéo.

# Il peut y avoir des problèmes en cas d'utilisation de plusieurs ports VGA : http://forum.ubuntu-fr.org/viewtopic.php?pid=2935712#p2935712.

# Les pilotes propriétaires sont plus stables.

#**************************************************************
#**************************************************************
#
#	PARTIE COMMUNE À TOUS LES SEAT
#
#**************************************************************
#**************************************************************

    Section "ServerFlags" # Permet de définir des options générales pour le serveur X ; héritées par tous les seats

        Option         "AutoAddDevices"      "false"
        # empêche l’ajout automatique de périphériques (inhibe utilisation de plusieurs claviers/souris sur un même poste) ; permet d’isoler les périphériques d’entrée en fonction du poste. Regarder les évennements HAL pour les ajouter via un script. Piste : DevicePresenceNotify.

        Option         "AutoEnableDevices"   "false"
        # empêche l’activation automatique des périphériques (ils ne seront pas reconnus dès leur branchement), ce qui peut poser problème car si une souris ou autre est débranchée, on doit relancer la session pour pouvoir la réutiliser. Un script lancé par une règle udev devrait corriger cela, et on garderait donc le contrôle sur chaque périphérique. Ou alors, des InputClass peut-être.

        Option         "AllowEmptyInput"     "true"
        # permet au serveur X de démarrer même si aucun périphérique d’entrée n’a pu être initialisé ; option inutile mais préconisée par plusieurs sources et ne génère pas de bug.

        Option         "DontZap"             "false"
        # empêche de tuer le serveur X avec une combinaison de touches.

        Option         "AllowMouseOpenFail"  "true"
        # permet au serveur X de démarrer même si aucune souris n’a pu être initialisé ; option inutile (et redondante avec "AllowEmptyInput") mais préconisée par plusieurs sources et ne génère pas de bug.

        Option         "AutoAddGPU"          "false"
        # option mystérieuse, utilisée pour les multiseat. Plus d’infos ici : http://www.mail-archive.com/xorg-devel@lists.x.org/msg31094.html (page officielle); utilisé ici : https://help.ubuntu.com/community/MultiseatX. Pas plus d'informations trouvées. La description officielle dit «This option is to stop the X server adding non-primary devices as gpu screens ». On ne comprend pas vraiment ce que veut dire « non-primary device » dans notre contexte. La documentation de Gentoo sur le multiseat indique « In case xorg-server 1.13.0 and above is in use, the following must be used to maintain the gpu separation », cette option servirait donc à séparer les GPUs...

        Option         "DPMS"                "true"
        # active le DPMS pour l’écran. DPMS : protocole de communication entre la carte graphique et l’écran (donc les deux doivent le supporter). Utilisé pour la synchronisation verticale et horizontale entre-autres. Cela sert aussi pour mettre l’écran en veille s’il ne  reçoit plus de signal de la carte vidéo. Une source (http://www.freebsd.org/doc/fr/books/handbook/x-config.html) : « X autorise l’utilisation des caractéristiques DMPS (Energy Star) avec les moniteurs qui en sont capables. Le programme xset(1) contrôle les délais et peut forcer la mise en veille, l’arrêt, ou les modes d’extinction ».

        Option         "BlankTime"           "5" # sets the inactivity timeout for the blanking phase of the screensaver

        # les 3 options qui suivent concernent les écrans et cartes compatibles avec le protocole DPMS. Elles gèrent l’extinction de l’écran après une période d’inactivité. Nous ne connaissons pas leur rôle (les tests ne donnent rien), mais elles sont dans cet ordre (de l’effet le moins important au plus important). La documentation n’est pas claire ; temps en minute ; commentaires du manuel de xorg.conf.s
        Option         "StandbyTime"         "6" # sets the inactivity timeout for the "standby" phase of DPMS mode
        Option         "SuspendTime"         "7" # sets the inactivity timeout for the "suspend" phase of DPMS mode
        Option         "OffTime"             "8" # sets the inactivity timeout for the "off" phase of DPMS mode

        Option         "DefaultServerLayout" "Seat0"
        # indique le poste à charger par défaut si on n'indique pas à X.org lequel utiliser ; inutile dans le cas du multiseat car on configure lightdm pour démarrer X.org avec le poste voulu. Laissé à des fins de débogage (si on rétabli la configuaration par défaut de lightdm par exemple) pour que le serveur X ne soit pas perdu.

        Option         "DontVTSwitch"        "true"
        # empêche de changer de console virtuelle avec la séquence ctrl+Fn. Important car seul le premier poste a accès à ces consoles, mais si un autre utilisateur fait cette combinaison, le premier poste est affecté et est changé de console virtuelle (donc l'utilisateur du premier poste va se retrouver dans une console sans comprendre pourquoi). On doit par contre le ré-activer pour le premier poste, avoir un accès à une console peut toujours servir.
    EndSection

    Section "Module" # Liste des modules optionnels à charger
        # depuis sa version 7.0, X.org est divisé en différents modules et tous ne sont pas chargés par défaut. Les modules listés ici seront chargés au démarrage. Il n'y a pas de liste exhaustive des modules possibles ni de façon simple et rapide de connaître ceux installés sur l'ordinateur (et donc utilisables). Il existe deux façons de déclarer un module : load "nom_module" (le nom est sensible à la casse) ou créer une sous-section ayant le nom du module et qui contient des Option (des extensions du module) qui seront transmises au module chargé. Certains modules sont chargés automatiquement, on peut l'empêcher en utilisant "Disable" au lieu de "Load". X.org va charger les fichiers correspondant au nom des modules donnés. Toutefois, le nom du module diffère légèrement du nom du fichier. Lorsque l'on nomme le module, on ne doit pas écrire les suffixes ".a", ".o", ou ".so", ni le préfixe "lib" si le nom du fichier le contient. Ainsi, le fichier "libextmod.so" est référencé par le module "extmod". X.org cherche récursivement les fichiers correspondants aux modules dans tous les répertoires spécifiés par le ModulePath (voir ci-dessous), les pilotes, les périphériques de saisie, les extensions et les polices. Il est donc très compliqué d'avoir un aperçu complet des modules disponibles. Toutefois, le contenu du répertoire "/usr/lib/xorg/modules" donne une liste non-exhaustive. Les modules “extmod”, “dbe”, “dri”, “dri2”, “glx” et “record” sont chargés automatiquement s'ils sont présents, à moins qu'ils soient explicitement désactivés par l'option "Disable". Il est recommandé de charger au moins le module "extmod".
        # Le "ModulePath" est une option que l'on peut spécifier dans la section "File" (absente de ce fichier). On utilise la syntaxe suivante : « ModulePath "path1[,path2][...][,pathn]" », on entre donc un ou plusieurs chemins séparés par des virgules. Si plusieurs entrées "ModulePath" sont présentes, elles seront concaténées pour créer le "ModulePath" utilisé par le serveur X. Le chemin par défaut est "/usr/lib/xorg/modules".
        # Source : Manuel de xorg.conf pour la version 1.11.3 de xorg-server. Certaines parties ne sont pas valables pour toutes les versions de xorg-server.

        # Principaux modules utilisables - source : http://www.x.org/wiki/XorgConfModulesSection :

        Load         "extmod"
        # active de nombreuses extensions très courantes de X.org comme shaped windows, shared memory, video mode switching, DGA, et Xvideo ; toutes ne sont pas forcément disponibles et certaines peuvent être désactivées en utilisant «SubSection "extmod" "omit nom_extension" EndSubSection ». ACTIVÉ PAR DÉFAUT.

        Load         "dri"
        # active le DRI (direct rendering infrastructure), toutes les cartes vidéos le supportent désormais. Permet d'utiliser l'accélération matérielle pour les rendus 3D (c'est la carte vidéo qui travaille et non le processeur ainsi). Sans ce module, c'est le serveur X qui génère ces rendus, faisant tout logiciellement, ce qui consomme beaucoup de ressources. Plus d'informations ici : http://www.gentoo.org/doc/fr/dri-howto.xml. ACTIVÉ PAR DÉFAUT.

        Load         "dri2"
        #  active le DRI2, amélioration du DRI. Plus d'informations ici : http://www.x.org/releases/X11R7.7/doc/dri2proto/dri2proto.txt et là : http://www.x.org/wiki/DRI2. ACTIVÉ PAR DÉFAUT.

        Load         "dbe"
        # active l'extension de double-buffering (utilise deux tampon pour créer les images), utile pour l'animation ou la vidéo. ACTIVÉ PAR DÉFAUT.
        # Traduction approximative de "http://www.x.org/releases/X11R7.7/doc/xextproto/dbe.html#Introduction" : L'extension DBE fournit une façon standard d'utiliser une double mémoire tampon dans le cadre du serveur X. Deux mémoires tampon snt utilisées, nommées "front" et "back" qui contiennent les images. Le premier tampon est visible par l'utilisateur, l'autre non. Les images successives d'une animation sont créées dans le tampon arrière pendant que l'image précédente est affichée sur le tampon avant. Quand uune nouvelle image est prête, les deux tampons échangent leur rôle, rendant visible la nouvelle image.

        Load         "record"
        # active l'extension record, enregistre des événements qui se produisent. Utilisé à des fins de test généralement. Spécification du protocole : http://www.x.org/releases/X11R7.7/doc/recordproto/record.html. ACTIVÉ PAR DÉFAUT.

        Load         "glx"
        # active le rendu OpenGL ; extension faisant le lien entre le serveur X et OpenGL (pour tout ce qui est 3D, etc.). Plus d'informations ici : http://doc.ubuntu-fr.org/opengl, http://fr.wikipedia.org/wiki/GLX, http://fr.wikipedia.org/wiki/OpenGL. ACTIVÉ PAR DÉFAUT.

        Load         "GLcore"
        # utilisé par OpenGL, pas plus d'informations trouvées.

        Load         "bitmap"
        # active le support des polices bitmap pour la rastérisation (http://fr.wikipedia.org/wiki/Rast%C3%A9risation - http://msdn.microsoft.com/fr-fr/library/ff604996%28v=xnagamestudio.40%29.aspx - traite l'image pour l'affichage sur l'écran). Inutile depuis la version 7.0 de X.org.

        Load         "vbe"
        # active l'extension Vesa Bios ;  autorise la demande des capacités du moniteur via la carte vidéo.

        Load         "int10"
        # émulateur x86 utilisé pour le démarrage de la carte vidéo secondaire. Devrait être activé si "vbe" l'est. Traduction de « real-mode x86 emulator used to softboot secondary VGA cards. Should be enabled if vbe is enabled ».

        Load         "ddc"
        # active l'extension Data Display Channel ;  autorise la demande des capacités du moniteur via la carte vidéo.

        Load         "i2c"
        # serial bus over which you speak the ddc protocol to get info from the monitor.

        Load         "freetype"
        Load         "type1"
        # charge les polices "freetype" et "type1" (ce sont des types de police, donc toutes celles qui y sont associées sont chargées ; polices stockées ici : "/usr/share/fonts").

    EndSection

#**************************************************************
#**************************************************************
#
#	SEAT 0 - Matériel perso
#
#**************************************************************
#**************************************************************

    Section "ServerLayout" # permet d’associer tout le matériel pour former une configuration complète. On peut également y appliquer diverses options, pour écraser celles du ServerFlags par exemple.
        Identifier         "Seat0"
        # permet d’identifier de manière unique cette section et donc tout ce qui s'y réfère.

        Screen           0 "Screen0"        0 0
        # n° écran du layout  (identifiant écran – position x – position y) ; voir man xorg.conf.

        InputDevice        "Mouse0"         "CorePointer"
        # indique la souris à utiliser ; CorePointer indique que c’est la souris principale.

        InputDevice        "Keyboard0"      "CoreKeyboard"
        # indique le clavier à utiliser ; CoreKeyboard indique que c’est le clavier principal.

        Option             "DontVTSwitch"   "true"
        # permet à l'utilisateur de ce poste d'utiliser les consoles virtuelles et d'y accéder grâce à la combinaison de touches ctrl+Fn.

    EndSection

    Section "Device"
        # permet d’identifier et configurer les carte graphique vidéo ; une section par carte (dans le cas du multiseat, sans multi-écran). Dans le cas d'un multi-écran, on utilise une section "Device" par sortie vidéo, en les identifiant de manière unique avec l'option « Screen n », n étant le numéro de la sortie. Numérotation début à 0 et est composée de nombres entiers contigues. Lors de la référence aux écrans dans le "ServerLayout", un écran ne peut être utilisé que si tous les écrans de numéro inférieur le sont. Ainsi, l'écran de la sortie n°1 ne peut être utilisé que si celui de la sortie n°0 y est. L'identification des sorties étant logicielle et non matérielle, le choix du numéro des sorties vidéo est arbitraire.
        Identifier         "Videocard0"

# CHANGER LE PILOTE
        Driver             "nvidia"
        # indique à X.org quel est le pilote de la carte graphique. Cela dépend de la carte graphique, il ne faut pas se tromper sinon le pilote nécessaire ne sera pas chargé. Voir ici (http://doc.ubuntu-fr.org/carte_graphique) les documentations de chaque carte pour plus d’informations sur les pilotes. En général, "radeon" fonctionne bien avec les cartes AMD, et "nv", "nouveau" avec celles Nvidia. "vesa" fonctionne aussi mais est trop basique. Pilote propriétaire "nvidia" recommandé pour les cartes Nvidia. Le répertoire "/usr/lib/xorg/modules/drivers" liste les pilotes graphiques installés.

# CHANGER L'ADRESSE PCI
        BusID              "PCI:01:00:0"
        # numéro du bus PCI de la carte : son adresse physique, permet de l’identifier de façon non-ambiguë. La commande  « $ lspci | grep -E « 3D|VGA » » permet de lister les différentes cartes graphiques. La ligne correspondant à chaque périphérique commence par son adresse physique. Note importante : l’adresse donnée par la commande sera de la forme « 01:00.0 », mais il faut écrire « 01:00:0 » dans le fichier xorg.conf. L’adressage des cartes AGP dans xorg.conf utilise excatement la même syntace (PCI:01:00:0).

# OPTION À UTILISER UNIQUEMENT SI LE PILOTE NVIDIA EST UTILISÉ
        Option             "ProbeAllGpus" "false"
        # permet de ne sonder que les cartes vidéos qui sont connectées à un écran ; comportement par défaut sonde toutes les cartes.
    EndSection

    Section "InputDevice" # permet de répertorier chaque périphérique de saisie et d’en donner les caractéristiques afin qu’ils soient bien reconnus par le système ; une section par périphérique.
        Identifier         "Keyboard0"

        Driver             "evdev"
        # pilote qui gère les claviers.

# CHANGER LE CHEMIN
        Option             "Device"       "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
        # chemin vers le fichier correspondant au clavier considéré.

# le dossier /usr/share/X11/xkb contient les différentes valeurs possibles pour les options suivantes.

        Option             "XkbRules"     "xorg"
        # indique les règles utilisées pour interpréter les options XkbModel, XkbLayout, XkbVariant et XkbOptions. On indique généralement "xorg" ou "evdev".

        Option             "XkbModel"     "xorg"
        # type de clavier (105 touches, etc), "xorg" fonctionne trrès bien.

# ADAPTER LES DEUX OPTIONS SUIVANTES À LA LANGUE ET LA VARIANTE DU CLAVIER UTILISÉ
        Option             "XkbLayout"    "fr"
        # langue du clavier.

        Option             "XkbVariant"   "oss"
        # variante du clavier (bépo et autrte) ; oss est très bien et fournit de nombreux caractères manquants sur les claviers azerty comme : «»≤≥œ©êæâêþÿûîôöŀïüð’‘ëßä ¬¿×÷¡↓↔↖↑↗→↔↓↘↙ à l'aide de la touche altGr.

        Option             "GrabDevice"   "true"
        #  peut empêcher certains bugs du clavier ou de la souris.

    EndSection

    Section "InputDevice"
        Identifier         "Mouse0"

# PILOTE "SYNAPTICS" SI PC PORTABLE AVEC TOUCHPAD SYNAPTICS
        Driver             "mouse"
        # pilote qui gère les souris.

# CHANGER LE CHEMIN
        Option             "Device"      "/dev/input/by-path/pci-0000:00:0b.0-usb-0:2:1.0-mouse"

	Option             "Protocol"    "ExplorerPS/2"
        # protocole qui gère la souris ; nombreuses valeurs possibles ; entrées obligatoire, aucune valeur par défaut. Plus d'informations ici : http://ftp.x.org/pub/X11R7.0/doc/html/mouse.4.html.

        Option             "GrabDevice"  "true"
    EndSection

    Section "Monitor" # permet de configurer les écrans, une section par écran.
        Identifier         "Monitor0"

        Option             "DPMS"
        # Active l'extension DPMS (Energy Star) pour l'écran ; tous le supportent maintenant.
    EndSection     

    Section "Screen" # permet de créer un dispositif d'affichage complet en associant une carte vidéo et un écran. L'écran connecté utilisera donc les réglages spécifiés dans la section "monitor", changer d'écran ne se fait pas toujours simplement.
        Identifier         "Screen0"

        Device             "Videocard0"
        # référence à la carte vidéo utilisée.

        Monitor            "Monitor0"
        # référence à l'écran utilisé.

# OPTION À UTILISER UNIQUEMENT SI LE PILOTE NVIDIA EST UTILISÉ
        Option             "NoLogo" "true"
        # auparavant, avec le pilote "nvidia", le logo de Nvidia apparaissait au démarrage de X.org et cette option permettait de l'enlever. Aujourd'hui, le comportement par défaut est de ne pas l'afficher, rendant ceette option caduque. Voir http://brainstorm.ubuntu.com/idea/6420/.

    EndSection

#**************************************************************
#**************************************************************
#
#	SEAT 1 - matériel université
#
#**************************************************************
#**************************************************************

    Section "ServerLayout"
        Identifier         "Seat1"
        Screen             "Screen1"
        InputDevice        "Mouse1"      "CorePointer"
        InputDevice        "Keyboard1"   "CoreKeyboard"
    EndSection

    Section "Device"
        Identifier         "Videocard1"
# CHANGER LE PILOTE
	Driver             "nvidia"
# CHANGER L'ADRESSE
        BusID              "PCI:06:00:0"
# OPTION À UTILISER UNIQUEMENT SI LE PILOTE NVIDIA EST UTILISÉ
        Option             "ProbeAllGpus" "false"
    EndSection

    Section "InputDevice"
        Identifier         "Keyboard1"
        Driver             "evdev"
# CHANGER LE CHEMIN
        Option             "Device"         "/dev/input/by-path/pci-0000:00:0b.0-usb-0:4:1.0-event-kbd"
        Option             "XkbRules"       "xorg"
        Option             "XkbModel"       "xorg"
# ADAPTER LES DEUX OPTIONS SUIVANTES À LA LANGUE ET LA VARIANTE DU CLAVIER UTILISÉ
        Option             "XkbLayout"      "fr"
        Option             "XkbVariant"     "oss"
        Option             "GrabDevice"     "true"
    EndSection

    Section "InputDevice"
        Identifier         "Mouse1"
# PILOTE "SYNAPTICS" SI PC PORTABLE AVEC TOUCHPAD SYNAPTICS
        Driver             "mouse"
# CHANGER LE CHEMIN
        Option             "Device"       "/dev/input/by-path/pci-0000:00:0b.0-usb-0:1:1.0-mouse"
	Option             "Protocol"     "ExplorerPS/2"
        Option             "GrabDevice"   "true"
    EndSection

    Section "Monitor"
        Identifier         "Monitor1"
        Option             "DPMS"
    EndSection    

    Section "Screen"
        Identifier         "Screen1"
        Device             "Videocard1"
        Monitor            "Monitor1"
    EndSection
Publicités

Une réponse à “xorg.conf – fichier de référence

  1. Pingback: Phase 3 : Première mise en place d’un multiseat | Multiseat Linux

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s