Configurer une machine multipostes sous Linux (Fedora 8)

J'ai fini par me lancer... avec une ATI Radeon 7500 AGP et une Matrox G200 PCI !
Précision : ce n'est pas possible d'utiliser les 2 ports de la 7500 car il n'y a qu'un seul "framebuffer". Avec ce type de carte, on peut facilement faire du "multihead" ; mais pour faire du "multiseat", il faudrait faire appel à un programme du type "Xephyr" modifié en suivant cette procédure.
Ma config :
- Seat 0 : Ecran 1280x1024 sur Radeon 7500 AGP 64M, clavier et souris sur ports PS2
- Seat 1 : Ecran 800x600 sur G200 PCI 16M, clavier et souris sur ports USB

Le fichier xorg.conf :

Section "ServerLayout"
       Identifier     "Seat 0"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerLayout"
       Identifier     "Seat 1"
       Screen      0  "Screen1" 0 0
       InputDevice    "Mouse1" "CorePointer"
       InputDevice    "Keyboard1" "CoreKeyboard"
EndSection

Section "InputDevice"
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol"  "IMPS/2"
       Option      "Device"    "/dev/input/mouse1"
EndSection

Section "InputDevice"
       Identifier  "Mouse1"
       Driver      "mouse"
       Option      "Protocol"  "IMPS/2"
       Option      "Device"    "/dev/input/mouse2"
EndSection

Section "InputDevice"
       Identifier  "Keyboard0"
       Driver      "evdev"
       Option      "Device" "/dev/input/event1"
       Option      "XkbModel" "evdev"
       Option      "XkbLayout" "fr"
EndSection

Section "InputDevice"
       Identifier  "Keyboard1"
       Driver      "evdev"
       Option      "Device" "/dev/input/event3"
       Option      "XkbModel" "evdev"
       Option      "XkbLayout" "fr"
EndSection

Section "Monitor"
       Identifier   "Monitor0"
       Option       "dpms"
#      Option       "Position"  "0 0"
EndSection

Section "Monitor"
       Identifier   "Monitor1"
       Option       "dpms"
#      HorizSync    31.4-37.9
#      VertRefresh  50.0-90.0
#      DisplaySize  250 187
#      Option       "Position"  "1248 424"
#      Option       "Ignore" "True"
EndSection

Section "Monitor"
       Identifier   "Monitor2"
       Option       "dpms"
       HorizSync    31.4-37.9
       VertRefresh  50.0-90.0
       DisplaySize  250 187
EndSection

Section "Device"
       Identifier  "Videocard0"
       Driver      "ati"
       BusID       "PCI:3:0:0"
       Option      "AGPMode" "4"
       Option      "Monitor-VGA-0" "Monitor0"
#      Option      "Monitor-DVI-0" "Monitor1"
       Option      "VGAAccess" "off"
EndSection

Section "Device"
       Identifier  "Videocard1"
       Driver      "mga"
       BusID       "PCI:1:1:0"
       VideoRam    16384
       Option      "HWCursor" "off"
       Option      "MGASDRAM" "on"
EndSection
 
Section "Screen"
       Identifier "Screen0"
       Device     "Videocard0"
       Monitor    "Monitor0"
       DefaultDepth     24
       SubSection "Display"
               Viewport   0 0
               Depth     24
               Modes    "1280x1024"
               Virtual  1280 1024
       EndSubSection
EndSection

Section "Screen"
       Identifier "Screen1"
       Device     "Videocard1"
       Monitor    "Monitor2"
       DefaultDepth     24
       SubSection "Display"
               Viewport   0 0
               Depth     24
               Modes    "800x600"
               Virtual  800 600
       EndSubSection
EndSection

Section "DRI"
       Mode 0666
EndSection

Le fichier /etc/gdm/custom.conf :

...
[servers]

0=Standard0
1=Standard1

[server-Standard0]
name=Standard server
command=/usr/bin/Xorg -br -audit 0 -layout "Seat 0" -novtswitch -sharevts vt7 -isolateDevice PCI:3:0:0

[server-Standard1]
name=Standard server
command=/usr/bin/Xorg -br -audit 0 -layout "Seat 1" -novtswitch -sharevts vt8 -isolateDevice PCI:1:1:0

Les problèmes réglés :

  • Disfonctionnement de la carte G200 PCI : ajout de Option "MGASDRAM" "on"
  • Mémoire de la carte G200 PCI mal détectée : VideoRam 16384
  • Ecran 800x600 non DDC (D2804A) : ajout des lignes HorizSync, VertRefresh, DisplaySize, dpms au niveau de Monitor1
  • Reset du "Seat 1" lors par la session du "Seat 0" : ajout de Option "VGAAccess" "off" au niveau du Device ati
  • Disparition du curseur du "Seat 1" sous childsplay : ajout de Option "HWCursor" "off" au niveau du Device mga
  • Permissions sous /dev/dri allouées au premier utilisateur connecté : ajout de la section DRI

Les problèmes restants :

  • Configuration du son (PulseAudio)
  • Permissions des périphériques partagés (DVD...)