La configuration d'Xorg est un large sujet que je n'aborderai pas en détail : il s'agit plutôt ici d'un pense-bête pour moi-même Wink. J'utilise un portable doté d'une GeForce 8400M. Il possède un écran LCD 1440x900 LCD, une sortie VGA et une autre sortie TV S-vidéo/Composite. Pour le travail j'utilise le portable avec un écran LCD additionnel et un clavier US. A la maison je n'utilise pas d'écran supplémentaire sauf pour regarder des films sur TV. Voilà ma configuraion Xorg en utilisant nvidia TwinView.

Configuration des layouts Xorg

J'ai créé 3 layouts pour passer facilement d'une installation à une autre (travail, tv et "defaut"). Chaque layout utilise des écrans et claviers différents :

Section "ServerLayout"
Identifier "work"
Screen "Workstation Screen" 0 0
InputDevice "US Keyboard"
InputDevice "Configured Mouse"
EndSection

Section "ServerLayout"
Identifier "default"
Screen "Default Screen" 0 0
InputDevice "FR Keyboard"
InputDevice "Configured Mouse"
EndSection

Section "ServerLayout"
Identifier "tv"
Screen "TV Screen" 0 0
InputDevice "FR Keyboard"
InputDevice "Configured Mouse"
EndSection

Agencement du clavier

J'ai ajouté deux input devices et défini un agencement US pour le premier tandis que le second conserve un agencement de touches FR.

Section "InputDevice"
Identifier "US Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
Option "XkbVariant" "intl"
EndSection

Section "InputDevice"
Identifier "FR Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "latin9"
EndSection

Configuration générale

Nous indiquons à Xorg quels sont les modules que nous désirons utiliser. DRI veut dire Direct Rendering Interface et GLX veut dire OpenGL Extension to the X Window System. Ces deux modules sont nécessaires pour activer l'accélération 3D de la carte vidéo.
Ici je n'utilise pas Xinerama puisque le bi-écran sera assuré par TwinView.

Section "Module"
Load "dri"
Load "glx"
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Configuration des écrans

TwinView n'utilise qu'un écran logique. Toute la configuration se fait donc par la carte nvidia.
Nous allons juste définir un unique moniteur et un écran pour chaque layout.

Section "Monitor"
Identifier "Ecran LCD"
VendorName "Asus"
Option "DPMS"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation NVIDIA Default Card single head"
Monitor "Ecran LCD"
DefaultDepth 24

Option "AddARGBGLXVisuals" "true"

SubSection "Display"
Depth 24
Modes "1440x900"
EndSubSection
EndSection

Section "Screen"
Identifier "Workstation Screen"
Device "nVidia Corporation NVIDIA Default Card dual head"
Monitor "Ecran LCD"
DefaultDepth 24

Option "AddARGBGLXVisuals" "true"

SubSection "Display"
Depth 24
Modes "1440x900"
EndSubSection
EndSection

Section "Screen"
Identifier "TV Screen"
Device "nVidia Corporation NVIDIA Default Card TV"
Monitor "Ecran LCD"
DefaultDepth 24

Option "AddARGBGLXVisuals" "true"

SubSection "Display"
Depth 24
Modes "1440x900"
EndSubSection
EndSection

Configuration de TwinView

Voici la partie la plus importante, celle où nous configurons la carte vidéo. Voici mes paramètres :

  • La configuration simple écran est la plus simple puisqu'elle ne nécessite pas TwinView.
  • En configuration bi-écran, la sortie VGA est positionnée à la droite de l'écran LCD du portable.
  • La configuration TV consiste en une copie des deux écrans.

Bien entedu, changez les paramètres en fonction de vos besoins Wink

Section "Device"
Identifier "nVidia Corporation NVIDIA Default Card single head"
Driver "nvidia"

Option "NoLogo" "1"
Option "AllowGLXWithComposite" "true"
Option "RenderAccel" "true"

Option "TwinView" "0"

Option "MetaModes" "DFP-0: 1440x900"
EndSection

Section "Device"
Identifier "nVidia Corporation NVIDIA Default Card dual head"
# Avoid using too much power
# see http://linux.aldeby.org/nvidia-powermizer-powersaving.html
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"
Driver "nvidia"

Option "NoLogo" "1"
Option "AllowGLXWithComposite" "true"
Option "RenderAccel" "true"

Option "TwinView" "1"

Option "TwinViewXineramaInfoOrder" "DFP, CRT"
Option "UseDisplayDevice" "DFP, CRT"
Option "TwinViewOrientation" "CRT RightOf DFP"

Option "MetaModes" "DFP-0: 1440x900, CRT-0: 1280x1024"
EndSection

Section "Device"
Identifier "nVidia Corporation NVIDIA Default Card TV"
Driver "nvidia"

Option "NoLogo" "1"
Option "AllowGLXWithComposite" "true"
Option "RenderAccel" "true"

Option "TwinView" "1"

Option "TwinViewXineramaInfoOrder" "DFP, TV"
Option "UseDisplayDevice" "DFP, TV"
Option "TwinViewOrientation" "Clone"
Option "MetaModes" "DFP-0: 640x480, TV-0: 640x480"

Option "TVOutFormat" "COMPOSITE"
Option "TVStandard" "NTSC"
EndSection

Choisir un layout Xorg

Le Layout par défaut est le premier défini dans votre fichier xorg.conf.
Pour démarrer une application dans un nouveau serveur X avec un layout différent, utilisez cette commande :

$~ startx "/usr/bin/vlc" -- /usr/bin/X :1 -layout tv

Il vous faudra peut être accorder la permission pour démarrer un nouveau serveur X. Le plus simple pour y arriver est d'utiliser :

$~ dpkg-reconfigure x11-common