OpenSuSE 11.2 nVidia Multiseat

I know that there is very little about multiseat any longer. An the fact that OS11.2 thru 4 removed X11 doesnt make it much easier. I am running a 11.2 32 bit box as can still make use of X11 an the xorg file. An auto build it with Sax2. Which I have used to create the initial xorg.conf file.

I have looked an googled the web on this, an even looked on this site, there seems to be mixed results an paths. So I am posting my own question for me to persue.

If your going to recommend LTSP, please dont. I am not interested in picking up more machines. I am only looking for 2 seats, an picking up an extra machine would solve the second seat issue rather than waste it on a terminal server setup.

I have 1 machine, with a dual head nVidia video (GForce 6200) card, 2 Key Boards (ps2 & usb), an 2 USB mice. 1 flat screen, an 1 CRT. What I have done so far is got the nVidia drivers installed an activated both monitors with Seperate X Screens. At this time I have 1 functional screen, an when I move my mouse to the right, i get a “X” curser on the second monitor.

When I goto console 1 (ctrl+alt+F1), both screens display the same.

Some of the items I need help with is learning to start seperate X Servers an dedicating them to a monitor. I suspect that I should probably set the machine to end at init3 an see if I can get that too work first. Then continue forward with setting up my X server.

Any thought on this?
John

Hi
I’m running an xorg.conf (twinview) for my twin monitors, no biggy, just
created it with nvidia-settings starting it with gnomesu…

You just need to keep a copy of your existing 11.2 version and use that.


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 11.4 (x86_64) Kernel 2.6.37.6-0.7-desktop
up 2 days 7:58, 3 users, load average: 0.16, 0.15, 0.14
GPU GeForce 8600 GTS Silent - Driver Version: 280.13

All Twinview does is give me extended display. I am looking for seperate X servers running on seperate displays.

I am doing all my testing from OpenSuSE 11.2. Usefull has software, but it doesnt support OS11.2, nothing newer than OS11 32bit.

Success on OpenSuSE 11.2 32 bit. MultiSeat setup with seperate X Server’s running for each Keyboard/Mouse/Monitor. When moved to OpenSuSE 11.4, the keyboard dies on the same machine (dual boot). Looking into why that happens. I have keyboard an mouse plugged into a external usb hub. May be cause of issue.

I have not messed with sound. Thinking of using USB head phones, may be easier to manage.

I cheated an use the nVidia config tool to help build the xorg.conf (which I called xorg.conf.nvidia) file an enable second video card an monitor by choosing seperate X. Then just tweeked it a bit by adding a second server layout to the setup. I helped that I had purchased 2 matching video cards (1 AGP & 1 PCI ~ EVGA 6200 w/512MB ram).

The part I fought for a while was the KDM. But now that I see what changes need to be made, its pretty simple.

I will be posting my results soon.

John

So the reason for the delayed reply was redoing this setup to understand whats needed from a clean install.

So I used 11.2 mainly for the purpose of using SaX2 to create a xorg.conf file which I called xorg.conf.SaX2. This gave me the starting of my xorg configuration file for the following sections…

Section “Files”
Section “ServerFlags”
Section “Module”
Section “Extensions”

…an then made minor changes. I will post completed config an edit what was done next post.

Afterwards, I loaded 11.4 an installed nVidia drivers an ran the nVidia configuration tool to bring both video cards online (running a PCI an AGP nVidia 6200 w/512MB Ram) along with both monitors. I saved that config as xorg.conf.nvidia. The sections I pulled from that were as follows…

Section “InputDevice”
Section “Monitor”
Section “Device”
Section “Screen”

At this time I copied the inputdevice sections an pasted them then went in search of the event# for all the keyboards an mice an used {Option “Device” “/dev/input/event#”} in each inputdevice section. Also changed each device driver to evdev.

I then used the ServerLayout from the SaX2 file an created 2 ServerLayout sections titled Layout0 an Layout1 an made sure only 1 Mouse/Keyboard/Screen were in it. Key thing to remember is that your using the correct driver in the Device Section defining the video card. I made that mistake of using the wrong one an wandering why the gui wasnt coming online.

After that the only thing left was the configuration change to KDMRC file. Again, I will post the configuration files in my upcoming post.

My satisfaction of the end result is high. In my opinion this has proven to be very valuable an has worked very well. I am kind of curious how far I can push this configuration with a stronger computer. Time will tell on that after some usage.

John

#/etc/X11/xorg.conf file

PLEASE DO NOT EDIT THIS FILE!

Section “Files”
FontPath “/usr/share/fonts/misc:unscaled”
FontPath “/usr/share/fonts/local”
FontPath “/usr/share/fonts/75dpi:unscaled”
FontPath “/usr/share/fonts/100dpi:unscaled”
FontPath “/usr/share/fonts/Type1”
FontPath “/usr/share/fonts/URW”
FontPath “/usr/share/fonts/Speedo”
FontPath “/usr/share/fonts/PEX”
FontPath “/usr/share/fonts/cyrillic”
FontPath “/usr/share/fonts/latin2/misc:unscaled”
FontPath “/usr/share/fonts/latin2/75dpi:unscaled”
FontPath “/usr/share/fonts/latin2/100dpi:unscaled”
FontPath “/usr/share/fonts/latin2/Type1”
FontPath “/usr/share/fonts/latin7/75dpi:unscaled”
FontPath “/usr/share/fonts/baekmuk:unscaled”
FontPath “/usr/share/fonts/japanese:unscaled”
FontPath “/usr/share/fonts/kwintv”
FontPath “/usr/share/fonts/truetype”
FontPath “/usr/share/fonts/uni:unscaled”
FontPath “/usr/share/fonts/CID”
FontPath “/usr/share/fonts/ucs/misc:unscaled”
FontPath “/usr/share/fonts/ucs/75dpi:unscaled”
FontPath “/usr/share/fonts/ucs/100dpi:unscaled”
FontPath “/usr/share/fonts/hellas/misc:unscaled”
FontPath “/usr/share/fonts/hellas/75dpi:unscaled”
FontPath “/usr/share/fonts/hellas/100dpi:unscaled”
FontPath “/usr/share/fonts/hellas/Type1”
FontPath “/usr/share/fonts/misc/sgi:unscaled”
FontPath “/usr/share/fonts/xtest”
FontPath “/opt/kde3/share/fonts”
InputDevices “/dev/gpmdata”
InputDevices “/dev/input/mice”
EndSection

Section “ServerFlags”
Option “AllowMouseOpenFail” “on”
Option “AutoAddDevices” “off”
Option “ZapWarning” “on”
Option “Xinerama” “0”
EndSection

Section “Module”
Load “dbe”

SubSection  "extmod"
	Option    "omit xfree86-dga"
EndSubSection

Load	"type1"
Load	"speedo"
Load	"freetype"
Load	"glx"

EndSection

Section “Extensions”
Option “Composite” “off”
EndSection

Section “InputDevice”

Driver “evdev” will be disabled unless ‘Option “AutoAddDevices” “off”’

is set in “ServerFlags” section.

Driver “evdev”
Identifier “Keyboard0”
Option “Device” “/dev/input/event2”
Option “Protocol” “Standard”
Option “XkbLayout” “us”
Option “XkbModel” “microsoftpro”
Option “XkbRules” “xfree86”
EndSection

Section “InputDevice”

Driver “evdev” will be disabled unless ‘Option “AutoAddDevices” “off”’

is set in “ServerFlags” section.

Driver “evdev”
Identifier “Mouse0”
Option “Buttons” “5”
Option “Device” “/dev/input/mouse0”
Option “Name” “USB Optical Mouse”
Option “Protocol” “explorerps/2”
Option “Vendor” “Sysp”
Option “ZAxisMapping” “4 5”
EndSection

Section “InputDevice”

Driver “evdev” will be disabled unless ‘Option “AutoAddDevices” “off”’

is set in “ServerFlags” section.

Driver “evdev”
Identifier “Keyboard1”
Option “Device” “/dev/input/event0”
Option “Protocol” “Standard”
Option “XkbLayout” “us”
Option “XkbModel” “microsoftpro”
Option “XkbRules” “xfree86”
EndSection

Section “InputDevice”

Driver “evdev” will be disabled unless ‘Option “AutoAddDevices” “off”’

is set in “ServerFlags” section.

Driver “evdev”
Identifier “Mouse1”
Option “Buttons” “5”
Option “Device” “/dev/input/mouse1”
Option “Name” “USB Optical Mouse”
Option “Protocol” “explorerps/2”
Option “Vendor” “Sysp”
Option “ZAxisMapping” “4 5”
EndSection

Section “Monitor”
# HorizSync source: edid, VertRefresh source: edid
Identifier “Monitor0”
VendorName “Unknown”
ModelName “HP 2159”
HorizSync 24.0 - 94.0
VertRefresh 48.0 - 76.0
Option “DPMS”
EndSection

Section “Monitor”
# HorizSync source: edid, VertRefresh source: edid
Identifier “Monitor1”
VendorName “Unknown”
ModelName “Korea Data Systems emachines Inc. eView17”
HorizSync 30.0 - 70.0
VertRefresh 50.0 - 160.0
Option “DPMS”
EndSection

Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce 6200”
BusID “PCI:1:0:0”
EndSection

Section “Device”
Identifier “Device1”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce 6200”
BusID “PCI:0:9:0”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
Option “TwinView” “0”
Option “TwinViewXineramaInfoOrder” “CRT-0”
Option “metamodes” “1920x1080 +0+0”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Section “Screen”
Identifier “Screen1”
Device “Device1”
Monitor “Monitor1”
DefaultDepth 24
Option “TwinView” “0”
Option “metamodes” “1280x1024 +0+0”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Section “ServerLayout”
Identifier “Layout0”
Screen “Screen0” 0 0
InputDevice “Keyboard0” “CoreKeyboard”
InputDevice “Mouse0” “CorePointer”
Option “Xinerama” “0”
Option “Clone” “off”
Option “AutoAddDevices” “off”
EndSection

Section “ServerLayout”
Identifier “Layout1”
Screen “Screen1” 0 0
InputDevice “Keyboard1” “CoreKeyboard”
InputDevice “Mouse1” “CorePointer”
Option “Xinerama” “0”
Option “Clone” “off”
Option “AutoAddDevices” “off”
EndSection

#/usr/share/kde4/config/kdm/kdmrc
[General]
ConfigVersion=2.4
SUSEConfigVersion=2
StaticServers=:0,:1
ReserveServers=:2,:3
ServerVTs=-7
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6

[Xdmcp]

[Shutdown]

[X-*-Core]
ClientLogFile=.xsession-errors-%d

[X-*-Greeter]
LogoPixmap=/usr/share/kde4/apps/kdm/pics/kdelogo.png
MinShowUID=500
MaxShowUID=65000
ForgingSeed=1268675635
UseTheme=true

[X-:*-Core]

[X-:*-Greeter]
PreselectUser=Previous
FocusPasswd=true
LoginMode=DefaultLocal
AllowClose=false

[X-:0-Core]
TerminateServer=true
ClientLogFile=.xsession-errors
ServerArgsLocal=-nolisten tcp -layout Layout0 -sharevts -novtswitch

[X-:1-Core]
TerminateServer=true
ClientLogFile=.xsession-errors
ServerArgsLocal=-nolisten tcp -layout Layout1 -sharevts -novtswitch

[X-:93-Core]
TerminateServer=true

[X-:0-Greeter]

to minimize the amount of output from the kdmrc file, parsed only the lines that had no # in them. The file is much longer has lots of notes in it.

Hope it helps someone else
John

Very interesting. I’ve always toyed with the idea of doing this but never got to it, mostly due to physical layout issues, i.e., how far apart both seats can be (not much).

Hello John. Thanks for your files and information and sharing. I tried to do such an experiment and was successful to do so!

I also got a lot of help from this.
here is what I did:

  1. configure a usable xorg.conf with the nvidia tool. back it up.
  2. Then we have to manually edit the /etc/X11/xorg.conf file ( see next file for my contents ) .

please note that in my setup, unlike John’s , I have added “0” and “1” after screen setup. dunno why it it needed!

  1. setup kdmrc according to John, or even my file ( they are exactly the same ).

NOTE 1: when you have edited the xorg.conf file, a good solution to test it is to login remotely to the computer ( via ssh ) and then issuing:


X -novtswitch -sharevts -nolisten tcp -layout seat5 :5 & 
xterm -display :5 &

this will bring an X terminal on the OTHER head, ( substitute 5 with proper number ) .

or even further:


X -novtswitch -sharevts -nolisten tcp -layout seat2 :2 & 
export DISPLAY=:2
startkde &

will try to bring up kde on the second head.

I am very short on time here. So , I hope other people would find this useful. Please proceed to next 2 posts for my configuration files.



# Xorg.conf by Anoosh 
#/etc/X11/xorg.conf file
# PLEASE DO NOT EDIT THIS FILE!

Section "Files"
FontPath "/usr/share/fonts/misc:unscaled"
FontPath "/usr/share/fonts/local"
FontPath "/usr/share/fonts/75dpi:unscaled"
FontPath "/usr/share/fonts/100dpi:unscaled"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/URW"
FontPath "/usr/share/fonts/Speedo"
FontPath "/usr/share/fonts/PEX"
FontPath "/usr/share/fonts/cyrillic"
FontPath "/usr/share/fonts/latin2/misc:unscaled"
FontPath "/usr/share/fonts/latin2/75dpi:unscaled"
FontPath "/usr/share/fonts/latin2/100dpi:unscaled"
FontPath "/usr/share/fonts/latin2/Type1"
FontPath "/usr/share/fonts/latin7/75dpi:unscaled"
FontPath "/usr/share/fonts/baekmuk:unscaled"
FontPath "/usr/share/fonts/japanese:unscaled"
FontPath "/usr/share/fonts/kwintv"
FontPath "/usr/share/fonts/truetype"
FontPath "/usr/share/fonts/uni:unscaled"
FontPath "/usr/share/fonts/CID"
FontPath "/usr/share/fonts/ucs/misc:unscaled"
FontPath "/usr/share/fonts/ucs/75dpi:unscaled"
FontPath "/usr/share/fonts/ucs/100dpi:unscaled"
FontPath "/usr/share/fonts/hellas/misc:unscaled"
FontPath "/usr/share/fonts/hellas/75dpi:unscaled"
FontPath "/usr/share/fonts/hellas/100dpi:unscaled"
FontPath "/usr/share/fonts/hellas/Type1"
FontPath "/usr/share/fonts/misc/sgi:unscaled"
FontPath "/usr/share/fonts/xtest"
FontPath "/opt/kde3/share/fonts"
# InputDevices "/dev/gpmdata"
# InputDevices "/dev/input/mice"
EndSection

# Driver "evdev" will be disabled unless 'Option "AutoAddDevices" "off"'
# is set in "ServerFlags" section.
Section "ServerFlags"
Option "AllowMouseOpenFail" "on"
Option "AutoAddDevices" "off"
Option "ZapWarning" "on"
Option "Xinerama" "0"
EndSection

Section "Module"
Load "dbe"

SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection

Load "type1"
Load "speedo"
Load "freetype"
# Load "glx"
EndSection

Section "Extensions"
Option "Composite" "off"
EndSection

########################################################### 
# Seat 0 --------------------------------- Master SEAT !!
########################################################### 

Section "ServerLayout"
    Identifier     "Layout0"
    Screen       0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
    Option 	   "Clone" "off"
    Option 	   "AutoAddDevices" "off"
EndSection

Section "InputDevice"
      Driver "evdev"
      Identifier "Keyboard0"
      Option "Device" "/dev/input/event2"
      Option "Protocol" "Standard"
      Option "XkbLayout" "us"
      Option "XkbModel" "microsoftpro"
      Option "XkbRules" "xfree86"
EndSection


Section "InputDevice"
#      Driver "mouse"
      Driver "evdev"
      Identifier "Mouse0"
      Option "Buttons" "5"
#      Option "Device" "/dev/input/mouse0"
      Option "Device" "/dev/input/event0"
      Option "Name" "USB Optical Mouse"
      Option "Protocol" "explorerps/2"
      Option "Vendor" "Sysp"
      Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400 GS"
    BusID          "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

########################################################### 
# Seat 1 --------------------------------- Secondary SEAT !!
########################################################### 


Section "ServerLayout"
    Identifier 	   "Layout1"
    Screen 	 1  "Screen1" 0 0
    InputDevice    "Keyboard1" "CoreKeyboard"
    InputDevice    "Mouse1" "CorePointer"
    Option 	   "Xinerama" "0"
    Option 	   "Clone" "off"
    Option 	   "AutoAddDevices" "off"
EndSection 

Section "InputDevice"
      Driver 	 "evdev"
      Identifier "Keyboard1"
      Option 	 "Device" "/dev/input/event4"
      Option 	 "Protocol" "Standard"
      Option 	 "XkbLayout" "us"
      Option 	 "XkbModel" "microsoftpro"
      Option 	 "XkbRules" "xfree86"
      Option 	 "XkbOptions" "compose:rwin"
EndSection

Section "InputDevice"
#      Driver "mouse"
      Driver "evdev"
      Identifier "Mouse1"
      Option "Buttons" "5"
#      Option "Device" "/dev/input/mouse1"
      Option "Device" "/dev/input/event1"
      Option "Name" "USB Optical Mouse"
      Option "Protocol" "explorerps/2"
      Option "Vendor" "Sysp"
      Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 7300 LE"
    BusID          "PCI:3:0:0"
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection




# KDMRC by Anoosh

[General]
ConfigVersion=2.4
SUSEConfigVersion=2
StaticServers=:0,:1
ReserveServers=:2,:3
ServerVTs=-7
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
#PidFile=
#LockPidFile=false
#AuthDir=
#AutoRescan=false
#ExportList=LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR
#RandomDevice=/dev/altrandom
#FifoDir=/tmp
#FifoGroup=xdmctl
#GreeterUID=kdm
#DataDir=
#DmrcDir=/nfs-shared/var/dmrcs

[Xdmcp]
#Enable=false
#Port=177
#KeyFile=/usr/share/kde4/config/kdm/kdmkeys
#Xaccess=/etc/X11/xdm/Xaccess
#ChoiceTimeout=10
#RemoveDomainname=false
#SourceAddress=true
#Willing=/etc/X11/xdm/Xwilling

[Shutdown]
#HaltCmd=
#RebootCmd=
#AllowFifo=true
#AllowFifoNow=false
#BootManager=Grub


[X-*-Core]
#OpenDelay=15
#OpenTimeout=120
#OpenRepeat=5
#StartAttempts=4
#PingInterval=5
#PingTimeout=5
#AuthFile=
#Resources=
#Xrdb=
#Setup=
#Startup=
#Reset=
#Session=
#FailsafeClient=
#UserPath=
#SystemPath=
#SystemShell=/bin/bash
#UserAuthDir=
#ForceUserAuthDir=true
#AutoReLogin=true
#AllowRootLogin=false
#AllowNullPasswd=false
#AllowShutdown=Root
#AllowSdForceNow=Root
#DefaultSdMode=ForceNow
#ScheduledSd=Optional
#SessionsDirs=/usr/share/kde4/config/kdm/sessions,/usr/share/kde4/apps/kdm/sessions
ClientLogFile=.xsession-errors-%d
#ClientLogFallback=/var/log/xsession-errors/%u-%d%-r
#UseSessReg=true

[X-*-Greeter]
#GUIStyle=Plastique
#ColorScheme=MidnightMeadow
#LogoArea=Clock
LogoPixmap=/usr/share/kde4/apps/kdm/pics/kdelogo.png
#GreeterPos=30,40
#GreeterScreen=-1
#GreetString=K Desktop Environment (%n)
#AntiAliasing=true
#GreetFont=Serif,20,5,0,50,0
#StdFont=Sans Serif,10,5,0,50,0
#FailFont=Sans Serif,10,5,0,75,0
#NumLock=Off
#Language=de_DE
#UserCompletion=true
#UserList=false
#ShowUsers=Selected
#SelectedUsers=root,johndoe
#HiddenUsers=root
MinShowUID=500
MaxShowUID=65000
#SortUsers=false
#FaceSource=PreferUser
#FaceDir=/usr/share/faces
#PreselectUser=Previous
#FocusPasswd=true
#EchoPasswd=false
#UseBackground=true
#BackgroundCfg=
#GrabInput=Always
#GrabServer=true
#GrabTimeout=3
#AuthComplain=false
ForgingSeed=1299066954
#PluginsLogin=sign
#PluginsShutdown=modern
#PluginOptions=SomeKey=randomvalue,Foo=bar
#AllowConsole=false
#Preloader=/usr/bin/preloadkde
UseTheme=true
#Theme=
#AllowThemeDebug=true

[X-:*-Core]
#ServerAttempts=1
#ServerTimeout=60
#ServerCmd=/usr/bin/X
#ServerArgsLocal=-nolisten tcp
#ServerArgsRemote=
#ServerUID=_x11
#TerminateServer=true
#Authorize=false
#AuthNames=
#ResetForAuth=true
#AllowNullPasswd=true
#AllowShutdown=All
#NoPassEnable=true
#NoPassUsers=fred,ethel

[X-:*-Greeter]
PreselectUser=Previous
FocusPasswd=true
LoginMode=DefaultLocal
#ChooserHosts=*,host1,host2,host3.local,login.domain.com
AllowClose=false

[X-:0-Core]
#ServerVT=7
TerminateServer=true
#AllowSuspend=All
#NoPassAllUsers=true
#AutoLoginEnable=true
#AutoLoginAgain=true
#AutoLoginDelay=10
#AutoLoginUser=
#AutoLoginPass=secret!
#AutoLoginLocked=true
ClientLogFile=.xsession-errors
ServerArgsLocal=-nolisten tcp -layout Layout0 -sharevts -novtswitch


[X-:1-Core]
TerminateServer=true
ClientLogFile=.xsession-errors
ServerArgsLocal=-nolisten tcp -layout Layout1 -sharevts -novtswitch


[X-:93-Core]
TerminateServer=true

[X-:0-Greeter]
#PreselectUser=Default
#DefaultUser=johndoe