Strict Standards: Only variables should be passed by reference in /homepages/33/d411990001/htdocs/spip/config/ecran_securite.php on line 283
Bi-Ecran sous linux avec 2 cartes graphiques - Ian’s Web Page

Bi-Ecran sous linux avec 2 cartes graphiques

mercredi 17 août 2005
par  Yann
popularité : 7%

Bi-Ecran sous linux avec 2 cartes graphiques

Un très bon article sur le site léa-linux décrit cela. On se laisse guider en adaptant à notre configuration et tout fonctionne correctement. L’article

Petit problème à éviter La plupart du temps (comme vous avez une seul carte graphique intégrée ou AGP) le bios est configuré pour démarrer la video sur le bus AGP. Et il arrive parfois, lors de l’ajout de la deuxième carte graphique PCI, que la vidéo ne démarre plus.

Dans ce cas essayer de configurer le bios pour que le PC démarre la video sur le bus PCI. Normalement tout rentre dans l’ordre.

Retrouver ses cartes graphiques

Comme pour les moniteurs il vous faut une section par carte graphique, mais à la différence des moniteurs, si vous avez deux cartes identiques (par exemple 2 TNT PCI) il faut faudra quand même deux sections « Device » : une pour chaque carte. Le problème va être de trouver quelle valeur mettre pour la variable « BusID » de ces sections. Mais ce n’est pas très complexe, tapez (en mode console, et en tant que root) :

# X -scanpci -verbose

Et vous devriez voir quelque chose comme :

Probing for PCI devices (Bus:Device:Function)

(0:0:0) unknown chip (DeviceId 0x0305) from VIA (0:1:0) unknown chip (DeviceId 0x8305) from VIA (0:3:0) Realtek unknown card (0x8029) using a Realtek 8029 (0:4:0) S3 ViRGE (0:20:0) VIA card using a VIA VT 82C686 MVP4 ISA Bridge (0:20:1) VIA card using a VIA VT 82C586 MVP3 IDE Bridge (0:20:2) unknown card (0x0925/0x1234) using a VIA VT 82C586 MVP3 USB Controller (0:20:3) unknown card (0x0925/0x1234) using a VIA VT 82C586 MVP3 USB Controller (0:20:4) VIA card using a VIA VT 8501 MVP4 ACPI Bridge (0:20:5) VIA card using a VIA VT 8501 MVP4 MultiMedia (1:0:0) unknown card (0x1569/0x002d) using a NVidia Riva Ultra 64

C’est la liste de tous vos périphériques PCI/AGP. Mes carte graphiques sont une S3 Virge dont le paramètre BusID sera donc (cf. paramètre en rouge) : « 0:4:0 » et une TNT2 dont le paramètre BusID sera (cf. paramètre en vert) : « 1:0:0 ». Mes sections « device » sont donc :

   Section "Device"
       Identifier  "RIVA TNT2"
       VendorName  "Unknown"
       BoardName   "Unknown"
       BusID       "1:0:0"
       Driver      "nvidia"

       # Uncomment following option if you see a big white block
       # instead of the cursor!
       #    Option      "sw_cursor"

       Option      "DPMS"
   EndSection

pour ma TNT2 et :

   Section "Device"
       Identifier  "S3 Virge"
       VendorName  "Unknown"
       BoardName   "Unknown"
       BusID       "0:4:0"
       Driver      "s3virge"

       # Uncomment following option if you see a big white block
       # instead of the cursor!
       #    Option      "sw_cursor"

       Option      "DPMS"
   EndSection

pour ma S3 Virge. Comme pour les moniteurs, les variables Identifier doivent être différentes pour chacune des cartes graphiques.

Note : Si votre carte graphique est une GeForce2MX, vous pouvez utiliser les fonctionnalités TwinView (deux écrans sur la même carte graphique), voici un exemple de lignes à ajouter dans la section « Device » de cette carte :

   Option "TwinView"
   Option "SecondMonitorHorizSync" "30-38"
   Option "SecondMonitorVertRefresh" "50-100"
   Option "TwinViewOrientation" "Below"
   Option "MetaModes" "1152x864, 800x600; 1152x864, NULL"
   Option "ConnectedMonitor" "crt, crt"

La section « ServerLayout » J’ai mis mon écran « Secondaire » à droite de (RightOf) mon écran « Principal » donc ma section ServerLayout est :

   Section "ServerLayout"
       Identifier "layout1"
       Screen     "Principal"
       Screen     "Secondaire" RightOf "Principal"

       InputDevice "Mouse1" "CorePointer"
       InputDevice "Keyboard1" "CoreKeyboard"
   EndSection

A la place de « RightOf » vous pouvez mettre :

  • LeftOf : à gauche,
  • Above : au-dessus,
  • Below : en-dessous,
  • Relative : pour placer un écran relativement à un autre (exemple : « Secondaire » Relative « Principal » 1088 216),
  • Absolute : pour dire que les coordonnées du coin supérieur gauche de cet écran sont (x,y) (exemple : Absolute 800 600).

Premier essai Voilà, notre fichier /etc/X11/XF86Config est correctement écrit, vous avez vérifié trois fois chaque paramètre et c. Lançons nous et tapons (en mode console) :

   X

Normalement le serveur X doit démarrer et vos deux écrans doivent s’allumer, vous devez pouvoir passer la souris d’un écran sur l’autre, comme s’ils ne formaient qu’une seule surface. Ca marche ? Passons à la suite. Ca ne marche pas ? Relisez tout ce qui précède...

Maintenant vous pouvez travailler avec vos deux écrans.

Le Xinerama

La manière la plus simple de travailler avec deux écrans est d’activer le mode Xinerama de votre serveur X (disponible depuis XFree86 4.0.x). Le mode Xinerama est un mode de fonctionnement dans lequel les multiples écrans connectés à votre ordinateur ne semblent plus n’en faire qu’un : leurs résolutions s’additionnent. Pour configurer ce mode de fonctionnement, c’est vraiment très simple : il suffit de passer « +xinerama » au serveur X. Mais, en fait on n’appelle jamais soi-même le serveur X, on passe soit par le script startx, dans ce cas il faut taper :

   startx -- +xinerama

soit on utilise un « Display Manager » (kdm, gdm, xdm, et c.). Dans le cas de kdm ou xdm il faut éditer le fichier /etc/X11/xdm/Xserver pour que la ligne d’appel du serveur X devienne :

   :0 local /usr/X11R6/bin/X +xinerama

Dans le cas de gdm il faut éditer le fichier /etc/X11/gdm/gdm.conf pour que la ligne d’appel du serveur X devienne :

   0=/usr/bin/X11/X +xinerama

(dans la section : servers). Puis vous redémarrez votre « Display Manager » :

   init 3

Attendez 5 secondes, puis :

   init 5

Et voilà, votre « Display Manager » s’étale sur vos multiples écrans. Si vous vous loguez, vous devez voir le changement. Pour que votre écran MultiHead soit le plus facilement utilisable je vous conseille d’utiliser Enlightenment qui permet, entre autre, la maximisation limitée à une seul écran (ce que vous voudrez sans doute faire). Il parait que Sawfish en est aussi capable, mais je n’ai pas pu le voir fonctionner...

Attention à la profondeur des couleurs

Lors de mes essais, le serveur X (Xfree comme Xorg) a été incapable de démarrer si les profondeurs de couleurs étaient différentes sur les deux écrans. IL faut donc bien faire attention d’avoir les mêmes valeurs pour la variables DefaultDepth.

Fichier XF86Config-4

# XF86Config-4 (XFree86 X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the XF86Config-4 manual page.
# (Type "man XF86Config-4" at the shell prompt.)
#
# This file is automatically updated on xserver-xfree86 package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xfree86
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands as root:
#
#   cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
#   md5sum /etc/X11/XF86Config-4 >/var/lib/xfree86/XF86Config-4.md5sum
#   dpkg-reconfigure xserver-xfree86

Section "Files"
        FontPath        "unix/:7100"                        # local font server
        # if the local font server has problems, we can fall back on these
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/CID"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
#nvidia
#        Load        "GLcore"
        Load        "bitmap"
        Load        "dbe"
        Load        "ddc"
#nvidia       
#        Load        "dri"
        Load        "extmod"
        Load        "freetype"
        Load        "glx"
        Load        "int10"
        Load        "record"
        Load        "speedo"
        Load        "type1"
        Load        "vbe"
EndSection

Section "InputDevice"
        Identifier        "Generic Keyboard"
        Driver                "keyboard"
        Option                "CoreKeyboard"
        Option                "XkbRules"        "xfree86"
        Option                "XkbModel"        "pc105"
        Option                "XkbLayout"        "fr"
EndSection

Section "InputDevice"
        Identifier        "Configured Mouse"
        Driver                "mouse"
        Option                "CorePointer"
        Option                "Device"                "/dev/psaux"
        Option                "Protocol"                "ImPS/2"
        Option                "Emulate3Buttons"        "true"
        Option                "ZAxisMapping"                "4 5"
EndSection
Section "InputDevice"
        Identifier        "Generic Mouse"
        Driver                "mouse"
        Option                "SendCoreEvents"        "true"
        Option                "Device"                "/dev/input/mice"
        Option                "Protocol"                "ImPS/2"
        Option                "Emulate3Buttons"        "true"
        Option                "ZAxisMapping"                "4 5"
EndSection

Section "Device"
        Identifier        "Matrox"
        Driver                "mga" #"nvidia" #"nv"
        BusID                 "0:8:0"
EndSection

Section "Device"
        Identifier        "Riva TNT"
        Driver                "nvidia" #"nv"
        BusID                 "1:0:0"
EndSection

Section "Monitor"
        Identifier        "Generic Monitor 1"
#        HorizSync        30-82 iiyama
#        VertRefresh        50-110 iiyama
        HorizSync        30-70
        VertRefresh        50-180
        Option                "DPMS"
#        ModeLine "1280x1024"   135.00   1280 1288 1432 1688   1024 1025 1028 1066 +hsync +vsync
#        ModeLine "1280x1024"   135.00   1280 1324 1468 1708   1024 1025 1028 1066 +hsync +vsync
#        Modeline "1152x864"    108.00   1152 1228 1356 1604    864  865  868  900 +hsync +vsync
EndSection

Section "Monitor"
        Identifier        "Generic Monitor 2"
#        HorizSync        30-82 iiyama
#        VertRefresh        50-110 iiyama
        HorizSync        30-70
        VertRefresh        50-180
        Option                "DPMS"
#        ModeLine "1280x1024"   135.00   1280 1288 1432 1688   1024 1025 1028 1066 +hsync +vsync
#        ModeLine "1280x1024"   135.00   1280 1324 1468 1708   1024 1025 1028 1066 +hsync +vsync
#        ModeLine "1280x960"    108.00   1280 1304 1416 1640    960  961  964 1000 +hsync +vsync
#        Modeline "1152x864"    108.00   1152 1228 1356 1604    864  865  868  900 +hsync +vsync
EndSection

Section "Screen"
        Identifier        "Default Screen"
        Device                "Matrox"
        Monitor                "Generic Monitor 1"
        DefaultDepth        16 #24
        SubSection "Display"
                Depth                16 #24
                Modes                "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" "1280x1024" "1280x960"
#        ViewPort        0 0
        EndSubSection
EndSection

Section "Screen"
        Identifier        "Screen 2"
        Device                "Riva TNT"
        Monitor                "Generic Monitor 2"
        DefaultDepth        16 #24
        SubSection "Display"
                Depth                16 #24
                Modes                "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"
#        ViewPort        0 0
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier        "Default Layout"
#        Screen                "Default Screen"
#        Screen                "Screen 2" LeftOf "Default Screen"
        Screen                "Screen 2"
        Screen                "Default Screen" RightOf "Screen 2"
        InputDevice        "Generic Keyboard"
        InputDevice        "Configured Mouse"
        InputDevice        "Generic Mouse"
EndSection

Section "DRI"
        Mode        0666
EndSection

Le bi-écran en images

JPEG - 388.9 ko
Capture d’écran avec Xinerama activé
JPEG - 48.1 ko
Le bi-écran en fonctionnement
JPEG - 64 ko
Le bi-écran en fonctionnement

Météo

Metz, 57, France

Conditions météo à 10h00
par weather.com®

Neige et verglas

2°C


Neige et verglas
  • Vent : 33 km/h - sud-ouest
  • Pression : 965 mbar tendance symbole
Prévisions >>

Prévisions du 15 décembre
par weather.com®

Averses

Max 4°C
Min N/D°C


Averses
  • Vent : 22 km/h
  • Risque de precip. : %
<< Conditions  |  Prévisions >>

Prévisions du 16 décembre
par weather.com®

Nuageux

Max 3°C
Min -1°C


Nuageux
  • Vent : 16 km/h
  • Risque de precip. : 20%
<<  Prévisions  >>

Prévisions du 17 décembre
par weather.com®

Soleil et nuages épars

Max 2°C
Min N/D°C


Soleil et nuages épars
  • Vent : 12 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 18 décembre
par weather.com®

Averses

Max 5°C
Min 1°C


Averses
  • Vent : 24 km/h
  • Risque de precip. : 80%
<<  Prévisions  >>

Prévisions du 19 décembre
par weather.com®

Soleil et nuages épars

Max 4°C
Min 1°C


Soleil et nuages épars
  • Vent : 6 km/h
  • Risque de precip. : 10%
<<  Prévisions  >>

Prévisions du 20 décembre
par weather.com®

Nuageux

Max 4°C
Min 2°C


Nuageux
  • Vent : 6 km/h
  • Risque de precip. : 20%
<<  Prévisions  >>

Prévisions du 21 décembre
par weather.com®

Nuageux

Max 5°C
Min 3°C


Nuageux
  • Vent : 9 km/h
  • Risque de precip. : 10%
<< Prévisions


Brèves

25 février 2011 - Scilab : Application GUI

Application GUI dans Scilab : Étude des systèmes automatiques. Systèmes Linéaires

9 janvier 2011 - Modèle 3D dans Scilab

Afficher des patchs dans Scilab à partir de Modèle 3D blender. Modèle 3D dans (...)

2 octobre 2010 - Plugins LDraw pour Blender 2.49

Importez vos modèles LEGO (MLCad et autres) dans blender grâce au plugin d’importation (...)