How to set-up a multi-seat system on a debian lenny system:
Hardware:
* One computer (see [[Patagonia|Patagonia]]) with two mice, two keyboard, two graphic cards and at least two monitors.
In this example:
* First seat: nVidia 9600GT / Asus 24" LCD monitor / Dell USB keyboard / Microsoft USB mouse
* Second seat: nVidia 7300GT / Hyunday 17" LCD + Iiyama 19" CRT / keytronic PS2 keyboard / logitech PS2 trackball
Software:
* The system is installed with a Debian Lenny GNU/Linux on a AMD64 architecture with proprietary nVidia drivers.
Configure the /etc/X11/xorg.conf file with all hardware descrives in it. To do this I had to add some udev rules like this
* in /etc/udev/rules/50-udev-rules:
# input devices
KERNEL=="mice", NAME="input/%k"
KERNEL=="mouse[0-9]*", NAME="input/%k"
KERNEL=="event[0-9]*", NAME="input/%k"
KERNEL=="js[0-9]*", NAME="input/%k"
KERNEL=="ts[0-9]*", NAME="input/%k"
KERNEL=="uinput", NAME="input/%k"
+KERNEL=="kbd", NAME="input/%k"
* in 60-persistent-input.rules
# by-id links, generic and for the event devices
-KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
+KERNEL=="mouse*|js*|kbd", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
Finaly I added those two lines in /etc/gdm/gdm.conf:
[servers]
+0=/usr/bin/Xorg -br -audit 0 -novtswitch -sharevts -layout "PS2 Layout"
+1=/usr/bin/Xorg -br -audit 0 -novtswitch -sharevts -layout "USB Layout"
For example here is my xorg configuration file with everything described before:
Section "ServerLayout"
Identifier "USB Layout"
Screen "Screen 24p" 0 0
InputDevice "USB Keyboard"
InputDevice "USB Mouse"
EndSection
Section "ServerLayout"
Identifier "PS2 Layout"
Screen "Screen 19p" RightOf "Screen 17p"
Option "Xinerama" "on"
Screen "Screen 17p" 0 0
InputDevice "PS2 Keyboard"
InputDevice "PS2 Mouse"
EndSection
Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection
Section "InputDevice"
Driver "evdev"
Identifier "PS2 Keyboard"
Option "CoreKeyboard"
Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "jk"
EndSection
Section "InputDevice"
Identifier "PS2 Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/by-path/platform-i8042-serio-1-mouse"
Option "Protocol" "IMPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "InputDevice"
Identifier "USB Keyboard"
Driver "evdev"
Option "CoreKeyboard"
Option "Device" "/dev/input/by-id/usb-Dell_Dell_USB_Keyboard-event-kbd"
Option "XkbRules" "xorg"
Option "XkbLayout" "us"
Option "evBits" "+1"
Option "keyBits" "~1-255 ~352-511"
Option "Pass" "3"
EndSection
Section "InputDevice"
Identifier "USB Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/by-id/usb-Microsoft_Basic_Optical_Mouse-mouse"
Option "Protocol" "IMPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Monitor"
Identifier "Asus 24p"
HorizSync 28.0 - 115.0
VertRefresh 43.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Hyundai 17p"
HorizSync 48.0 - 82.0
VertRefresh 50.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Iiyama 19p"
HorizSync 48.0 - 85.0
VertRefresh 50.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Option "NoLogo" "true"
Identifier "nVidia 9600"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Option "NoLogo" "true"
Identifier "nVidia 7300-1"
Driver "nvidia"
BusID "PCI:2:0:0"
Screen 0
EndSection
Section "Device"
Option "NoLogo" "true"
Identifier "nVidia 7300-2"
Driver "nvidia"
BusID "PCI:2:0:0"
Screen 1
EndSection
Section "Screen"
SubSection "Display"
Depth 24
Modes "1920x1080" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
Identifier "Screen 24p"
Device "nVidia 9600"
Monitor "Asus 24p"
DefaultDepth 24
EndSection
Section "Screen"
Identifier "Screen 17p"
Device "nVidia 7300-2"
Monitor "Hyundai 17p"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024" "800x600" "640x480"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen 19p"
Device "nVidia 7300-1"
Monitor "Iiyama 19p"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024" "800x600" "640x480"
EndSubSection
EndSection