| HOME | AUTOMATION PRODUCTION | DEVELOPMENT | FORUM |
Attention! You can download the files for new version Debian GNU/Linux 5.0 "Lenny" >here<Multiseat - a system with one case and several graphics cards, monitors, keyboards and mouses. Allows multiple users to work simultaneously with one computer. In the configuration described 2 user can play 3D games DirectX9 using wine-1.0, for example, Heroes of Might and Magic 5 (HMM5), WarHammer 40k (WH40k), Serious Sam 2 and others are not impeding each other. The system easily expands to 4 seats.
The operating system Linux has found a worthy use not only on powerful servers and productive, not only in embedded systems, not only in phones and comunicators, etc., but also to many users of home computers.
I will try to make it the most accessible and understandable, but as always in such cases you must understand that operate at their own risk. No responsibility for the fact that someone is something wrong or did not understand my recommendations, if something is out of order or were lost important data, I do not bear. Of particular note only that the instructions are not reflected in terms of basic computer technology things. For example, if you set that we need to install the graphics card to the system unit, then you must first shutdown the computer and only after that installing graphics card. Also not considered installation of debian, if this task force under you do not, try to appeal to the relevant information, which can be found on the installation disk or on the Internet. 1.System installation.The first step is to install and configure normal configuration with one card.Set only one graphics card, a mouse and a keyboard. Place in the installation disc DVD with debian. Install and configure a system with opensource driver nv. ATTENTION! The current version of nv driver in debian Etch does not support GeForce 8600 graphics card. Therefore, when the system install use vesa (in the xorg.conf file in the section describing the card instead of Driver "nv" specify Driver "vesa") and avoid resolutions more than 1024x768 with initial setup system. Download the proprietary driver from NVidia (from the official site nvidia.com). I used NVIDIA-Linux-x86-173.14.05-pkg1.run, but perhaps the time when you're reading this article already appear newer versions. To install reboot the system in single user. Install the driver (required root priveleged) following the instructions given on the official nvidia site: sh ./NVIDIA-Linux-x86-173.14.05-pkg1.run. Do not forget to include users who will work with the accelerator and a sound card settings add to the groups audio and video. Restart the computer in multiuser mode. Check that everything is successful: darion@darion-debian:~$ lsmod | grep nvidia nvidia 7096260 70 agpgart 30216 2 nvidia i2c_core 20096 5 nvidia,it87,i2c_isa,i2c_nforce2,i2c_piix4Make sure that the accelerator works: darion@darion-debian:~$ glxinfo | grep direct direct rendering: YesCheck that really uses proprietary driver from NVidia: darion@darion-debian:~$ glxinfo | grep vendor server glx vendor string: NVIDIA Corporation client glx vendor string: NVIDIA Corporation OpenGL vendor string: NVIDIA Corporation 2.Equipment definitionAfter that, install a second graphics card, connect the second monitor, a second keyboard, a second mouse.Turn on your computer, boot system. Start the terminal. At this stage, should establish a list of equipment as determined as his system. 1. Identification cards: darion@darion-debian:~$ lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0402 (rev a 1) 03:00.0 VGA compatible controller: nVidia Corporation NV44 [GeForce 6200 TurboCa che(TM)] (rev a1)Of the resulting list shows that the 2 graphics card installed. The first GeForce 8600, the second - GeForce 6200. 2. Determine mouse and keyboard: darion@darion-debian:~$ cat /proc/bus/input/devices I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 N: Name="AT Translated Set 2 keyboard" P: Phys=isa0060/serio0/input0 S: Sysfs=/class/input/input0 H: Handlers=kbd event0 B: EV=120013 B: KEY=4 2000000 3802078 f840d001 feffffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=7 I: Bus=0003 Vendor=09da Product=000a Version=0002 N: Name="A4Tech PS/2+USB Mouse" P: Phys=usb-0000:00:13.1-2/input0 S: Sysfs=/class/input/input3 H: Handlers=mouse0 event2 ts0 B: EV=7 B: KEY=ff0000 0 0 0 0 0 0 0 0 B: REL=303 I: Bus=0010 Vendor=001f Product=0001 Version=0100 N: Name="PC Speaker" P: Phys=isa0061/input0 S: Sysfs=/class/input/input4 H: Handlers=kbd event3 B: EV=40001 B: SND=6 I: Bus=0011 Vendor=0002 Product=0006 Version=0000 N: Name="ImExPS/2 Generic Explorer Mouse" P: Phys=isa0060/serio1/input0 S: Sysfs=/class/input/input5 H: Handlers=mouse1 event4 ts1 B: EV=7 B: KEY=1f0000 0 0 0 0 0 0 0 0 B: REL=143 I: Bus=0003 Vendor=046d Product=c312 Version=0100 N: Name="LITEON Technology USB Multimedia Keyboard" P: Phys=usb-0000:00:13.4-1/input0 S: Sysfs=/class/input/input6 H: Handlers=kbd event1 B: EV=120003 B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe B: LED=7 3. Setting X serverUsing data from the previous section configures the server (important values highlighted in red). Please note that you need to customize the keyboard using evdev. For the mouse is optional. While their 2 and the same one PS / 2, could be left as is. In my case, took the following settings (the real working configuration):
darion@darion-debian:~$ cat /etc/X11/xorg.conf
Section "ServerLayout"
Identifier "Seat0"
Screen "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "ServerLayout"
Identifier "Seat1"
Screen "Screen1"
Screen "TV" RightOf "Screen1"
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
EndSection
Section "Files"
# path to defoma fonts
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 "vbe"
EndSection
Section "InputDevice"
Driver "evdev"
Option "Phys" "isa0060/serio0/input0"
Identifier "Keyboard1"
Option "XkbModel" "evdev"
Option "XkbLayout" "us,ru(winkeys)"
Option "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Device" "/dev/input/mouse1"
Option "Protocol" "ExplorerPS/2"
EndSection
Section "InputDevice"
Driver "evdev"
Option "Phys" "usb-0000:00:13.4-1/input0"
Identifier "Keyboard0"
Option "XkbModel" "evdev"
Option "XkbLayout" "us,ru(winkeys)"
Option "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "ExplorerPS/2"
EndSection
Section "Monitor"
Identifier "S/T 77/76DFX"
# 800x600 @ 75.00 Hz (GTF) hsync: 47.02 kHz; pclk: 48.91 MHz
Modeline "800x600_75.00" 48.91 800 840 920 1040 600 601 604 627 -HSync +Vsync
Option "DPMS"
EndSection
Section "Monitor"
Identifier "LG L1953S"
Option "DPMS"
EndSection
Section "Monitor"
Identifier "TV-Out"
VendorName "Samsung"
ModelName "Plano"
HorizSync 30.0 - 50.0
VertRefresh 50.0 - 50.0
EndSection
Section "Device"
Identifier "nVidia 8600GT"
Driver "nvidia"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "nVidia 6200TC"
Driver "nvidia"
BusID "PCI:3:0:0"
Screen 0
EndSection
Section "Device"
Identifier "nvidia-TVOut0"
Driver "nvidia"
VendorName "nVidia Corp."
BoardName "NVIDIA GeForce 6200"
Option "DPMS"
BusID "PCI:3:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "nVidia 8600GT"
Monitor "S/T 77/76DFX"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "nVidia 6200TC"
Monitor "LG L1953S"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "832x624" "800x600" "720x400" "640x480"
EndSubSection
EndSection
Section "Screen"
Identifier "TV"
Device "nvidia-TVOut0"
Monitor "TV-Out"
DefaultDepth 24
Option "TVStandard" "HD576i"
Option "TVOutFormat" "COMPOSITE"
Option "ConnectedMonitor" "TV,CRT"
SubSection "Display"
Modes "800x600" "640x480"
Depth 16
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 32
Modes "800x600" "640x480"
EndSubSection
EndSection
4. Setting gdmTo log in, I used gdm. His need to reconfigure for a several seats. Initialize several cards requires some tweaks since the driver from NVidia closed and decompile/modify it does not allow the license agreement. But I managed to circumvent the initialization problem through experiments.Drag the file /usr/share/gdm/defaults.conf in /usr/share/gdm/defaults.conf.orig: darion-debian:~# cd /usr/share/gdm darion-debian:/usr/share/gdm# mv defaults.conf defaults.conf.orig create a symbolic link to this file: darion-debian:/usr/share/gdm# ln -s defaults.conf.orig defaults.confAttention! defaults.conf.orig not just a backup file, it is required for initialization script and therefore should be present in /usr/share/gdm. Creating a configuration file for gdm multiseat. To do this, copy the original file: darion-debian:/usr/share/gdm# cp defaults.conf.orig defaults.conf.multiseatNow defaults.conf.multiseat must be edited to run multiple X sessions: The file defaults.conf.multiseat in the section [servers] need to add another server: [servers] # These are the standard servers. You can add as many you want here and they # will always be started. Each line must start with a unique number and that # will be the display number of that server. Usually just the 0 server is # used. 0=Standard0 1=Standard1 [server-Standard0] name=Standard server command=/usr/bin/X -sharevts -isolateDevice PCI:3:0:0 -layout seat1 :0 flexible=false [server-Standard1] name=Standard server command=/usr/bin/X -sharevts -isolateDevice PCI:1:0:0 -layout seat0 :1 flexible=falseThe remaining sections will leave unchanged. 5. The initialization and launch gdm scriptIt has, I wrote the following script. It must be put in as gdm-multiseat in the directory /etc/init.d.darion-debian:/etc/init.d# cat ./gdm-multiseat #! /bin/sh ### BEGIN INIT INFO # Provides: fake Xorg initialization # Should-Start: console-screen acpid # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: S 0 1 6 # Short-Description: fake Xorg preinit script for multiseat system # Description: Debian preinit script for the multiseat system ### END INIT INFO # # Author: Andrey ZhornyakThen we must remove the symbolic link to the script gdm from Level 2 (on the other levels can be left gdm): darion-debian:~# cd /etc/rc2.d darion-debian:/etc/rc2.d# rm /etc/rc2.d/*gdm darion-debian:/etc/rc2.d# ln -s ../init.d/gdm-multiseat S21gdm-multiseat After restarting, if everything is successful, you get 3D Multiseat system. If you want to add a couple of seats, it is necessary to repeat steps from 2 to 5. It may have to edit initialization script. And do not forget simple rule: 1 user - 1 core. If after some time you decide to replace one or more of graphics cards on a more productive, such as 6200 at 8800GT, nothing changed in the settings will not have to, the driver will not have to change (it already has the support series 8xxx, 9xxx). Just replace graphics card in the case and enjoy higher productivity. If you can improve translate quality please contact me at darion76@gmail.com |