Xorg, radeon 9250 et multi-écrans

configuration avec MergedFB

Une carte radeon 9250 et deux écrans permettent de bénéficier soit d’une copie de l’affichage soit d’un espace plus grand, le bureau occupant les deux écrans soit des écrans indépendants : la configuration du serveur xorg.

Cette configuration est généralement dans le fichier /etc/xorg.conf mais consultez le man pour connaître les autres possibilités ! Il y a aussi /etc/XF86config pour ceux qui utilisaient XFree86.

Configuration :

Un écran TFT comme écran principal connecté sur la prise DVI et soit mon ancien écran CRT soit mon nouveau projecteur vidéo sur la prise VGA. Il n’est pas possible d’utiliser les 3 prises simultanéments (avec la prise TV) !

Les sections "InputDevice" et "Files" ne sont pas reproduites ici.

La solution choisie met en oeuvre MergedFB et non Xinerama.


Section "Module"

   Load        "dbe"   # Double buffer extension
   Load        "extmod"
   Load        "glx"

# This loads the Type1 and FreeType font modules
   Load        "type1"
   Load        "freetype"

EndSection


# **********************************************************************
# Monitor section
# **********************************************************************

Section "Monitor"

   Identifier  "ViewSonic VX900"

   HorizSync   79.9
   VertRefresh 75

EndSection


Section "Monitor"

   Identifier  "Eizo T68"

   HorizSync   30-96
   VertRefresh 50-160

EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

Section "Device"
   Identifier  "Standard VGA"
   VendorName  "Unknown"
   BoardName   "Unknown"
   Driver     "vga"
EndSection

Section "Device"
       Identifier  "DVI"
       Driver      "radeon"
       VendorName  "ATI"
       BoardName   "Radeon"
       Screen      0
       BusID       "PCI:1:0:0"

       Option "CRT2HSync"   "30-96"
       Option "CRT2VRefresh" "50-160"

# l'option MetaModes permet d'utiliser des resolutions
# differentes sur chaque ecran

       Option "MetaModes" "1280x1024-1024x768"
#
# pour un bureau sur les deux ecrans  precisez
# la position souhaite pour le second ecran
# (Screen 1)
# RightOf a droite,  LeftOf a gauche par exemple
# par defaut le mode sera "Clone" et les deux ecrans
# afficheront la meme chose. Un defillement en fonction de la position
# de la souris permettant l'affichage avec des resolutions
# plus petites sur le second ecran.
#
#        Option "CRT2Position" "RightOf"
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

Section "Screen"
   Identifier  "Screen0"
   Device      "DVI"
   Monitor     "ViewSonic VX900"
   DefaultDepth 24

   Subsection "Display"
       Depth       24
       Modes       "1280x1024"
       ViewPort    0 0
   EndSubsection
EndSection

Section "Screen"
   Identifier  "Screen1"
   Device      "DVI"
   Monitor     "Eizo T68"
   DefaultDepth 24

   Subsection "Display"
       Depth       24
       Modes       "1024x768"
       ViewPort    0 0
   EndSubsection
EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

Section "ServerLayout"

# The Identifier line must be present
   Identifier  "Simple Layout"

   Screen 0 "Screen0"
   Screen 1 "Screen1"
   InputDevice "Mouse1" "CorePointer"
   InputDevice "Keyboard1" "CoreKeyboard"

EndSection

pour un bureau sur un écran et le second vide, utilisable par exemple comme écran d’affichage pour gqview la configuration suivante (seule la partie Graphics device section est modifiée) permet de l’utiliser avec comme nom de DISPLAY localhost:0.1


# **********************************************************************
# Graphics device section
# **********************************************************************

Section "Device"
   Identifier  "Standard VGA"
   VendorName  "Unknown"
   BoardName   "Unknown"

   Driver     "vga"
EndSection

Section "Device"
       Identifier  "DVI"
       Driver      "radeon"
       VendorName  "ATI"
       BoardName   "Radeon"
       Screen      0
       BusID       "PCI:1:0:0"
       Option "CRT2HSync"   "30-96"
       Option "CRT2VRefresh" "50-160"
       Option "MetaModes" "1280x1024-1024x768"

EndSection

Section "Device"
       Identifier  "VGA"
       Driver      "radeon"
       VendorName  "ATI"
       BoardName   "Radeon"
       Screen      1
       BusID       "PCI:1:0:0"
       Option "CRT2HSync"   "30-96"
       Option "CRT2VRefresh" "50-160"
       Option "MetaModes" "1280x1024-1024x768"
       Option "MergedFB" "false"
EndSection

Exemple de pré de gqview :

Exemple de menu de configuration GQview :

Vous noterez qu’il y a un moniteur localhost:0.2 grâce à l’ajout d’une carte sur le port PCI ... Il faut impérativement connaître le busID des différentes cartes. Soit en consultant le journal de bord du serveur X ( /var/log/Xorg.0.log ) soit sous FreeBSD par la commande : pciconf -lv Les lignes affichées ressemblent à :


drm1@pci0:11:0: class=0x030000 card=0x0250174b chip=0x59601002 rev=0x01 hdr=0x00
   vendor     = 'ATI Technologies Inc'
   device     = 'RV280 Radeon 9200 Pro'
   class      = display
   subclass   = VGA
none0@pci0:11:1:        class=0x038000 card=0x0251174b chip=0x59401002 rev=0x01 hdr=0x00
   vendor     = 'ATI Technologies Inc'
   device     = 'RV280 Radeon 9200 Pro - Secondary'
   class      = display

L’identification drm1@pci0:11:0 permet de connaître le busID de la carte PCI. La carte AGP sera elle avec le premier paramètre à 1 généralement.


drm0@pci1:0:0:  class=0x030000 card=0x2094148c chip=0x59601002 rev=0x01 hdr=0x00
   vendor     = 'ATI Technologies Inc'
   device     = 'RV280 Radeon 9200 Pro'
   class      = display
   subclass   = VGA
none2@pci1:0:1: class=0x038000 card=0x2095148c chip=0x59401002 rev=0x01 hdr=0x00
   vendor     = 'ATI Technologies Inc'
   device     = 'RV280 Radeon 9200 Pro - Secondary'
   class      = display

donc pci1:0:0

Il faut donc ajouter la sortie de la nouvelle carte, un &ecute;cran en l’occurence un vidéo-projecteur et modifier la description du serveur :


Section "Device"
       Identifier  "PCI-VGA"
       Driver      "radeon"
       VendorName  "ATI"
       BoardName   "Radeon"
       Screen      0
       BusID       "PCI:0:11:0"
EndSection

Section "Screen"
   Identifier  "projector"
   Device      "PCI-VGA"
   Monitor     "Optoma DX733"
   DefaultDepth 24

   Subsection "Display"
       Depth       24
       Modes       "1024x768"
       ViewPort    0 0
   EndSubsection
EndSection

Section "ServerLayout"

# The Identifier line must be present
   Identifier  "Simple Layout"

   Screen 0 "DVI"
   Screen 1 "VGA"
   Screen 2 "projector"
   InputDevice "Mouse1" "CorePointer"
   InputDevice "Keyboard1" "CoreKeyboard"

EndSection
L’indication "Screen 0" au niveau du device défini le port principal (main head) de la carte alors que le "screen 2" dans la section "ServerLayout" permet d’associer l’écran "projector" au display 0.2

La description dans le fichier journal ( /var/log/Xorg.0.log ) sera :


(==) ServerLayout "Simple Layout"
(**) |-->Screen "main" (0)
(**) |   |-->Monitor "ViewSonic VX900"
(**) |   |-->Device "DVI"
(**) |-->Screen "CRT" (1)
(**) |   |-->Monitor "Eizo T68"
(**) |   |-->Device "VGA"
(**) |-->Screen "projector" (2)
(**) |   |-->Monitor "Optoma DX733"
(**) |   |-->Device "PCI-VGA"
(**) |-->Input Device "Mouse1"
(**) |-->Input Device "Keyboard1"

On peut aussi y trouver la description des ports (heads) :


(--) PCI: (0:11:0) ATI Technologies Inc RV280 [Radeon 9200 PRO] rev 1, Mem @ 0xd8000000/27, 0xe8930000/16, I/O @ 0xac00/8
(--) PCI: (0:11:1) ATI Technologies Inc RV280 [Radeon 9200 PRO] (Secondary) rev 1, Mem @ 0xe0000000/27, 0xe8950000/16
(--) PCI: (1:0:0) ATI Technologies Inc RV280 [Radeon 9200 PRO] rev 1, Mem @ 0xc8000000/27, 0xe8820000/16, I/O @ 0x9000/8
(--) PCI: (1:0:1) ATI Technologies Inc RV280 [Radeon 9200 PRO] (Secondary) rev 1, Mem @ 0xd0000000/27, 0xe8830000/16

Les ports secondaires ne sont pas utilisés même si les les ports le sont.


(II) Primary Device is:
(WW) RADEON: No matching Device section for instance (BusID PCI:0:11:1) found
(WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found
(--) Chipset ATI Radeon 9250 5960 (AGP) found
(--) Chipset ATI Radeon 9250 5960 (AGP) found
(--) Chipset ATI Radeon 9250 5960 (AGP) found
Ces informations sont données uniquement pour faciliter la création des fichiers de configuration du serveur xorg. Ils doivent être adaptés préalablement à toute utilisation en particulier pour les fréquences des équipements connectés.