text:
Multiseat X Under X11R6.9/7.0 Mon, Dec 5. 2005
Here is a temporary mini-Howto document that I've put together. I'll write a better one when X11R6.9/7.0 is finalized (and time permits ) ... and there will be a chapter on the topic in one of my upcoming books. In the meantime, have fun! -- please let me know what experiences you have trying this out (positive or negative) -- in particular, it would be great to have reports on which video card combinations work or do not work.
(For those new the term "Multiseat X", it means creating a system with mulitple video monitors, keyboards, and mice for simultaneous use by multiple users -- like my home system).
Quick Guide/Mini-HOWTO on Creating a Multiseat X System using X.Org 6.9
Chris Tyler
For updates see http://blog.chris.tylers.info
Warning! This isn't a project for the faint-of-heart!
It requires good sysadmin expertise and lots of
patience. If you want a simple[r] solution, please
contact me in the Spring of 2007 to inquire about
configuration scripts to automate some of this setup.
Hardware requirements
- Compatible AGP/PCI/PCIE video cards. The definition
of "Compatible" is very much up in the air at this
time. Chipsets from the same manufacturer often work
well. If you're using nVidia cards, use the non-GPL
"nvidia" driver instead of the GPL "nv" driver.
- Zero or one PS/2 keyboard and mouse sets, and one
or more USB keyboard and mouse sets.
- Zero or more sound cards. Directing the sound output
from each application to the correct speaker set is
left as an exercise for the reader.
1. Install your favorite Linux distro.
2. Upgrade the X server to X.Org 6.9 or 7.0 if necessary (pre-release versions at
http://x.org) - FC5 test releases include X.org 7.0.
(Note that 6.9 and 7.0 are the same software, but 6.9 is a monolithic build and 7.0 is modular).
3. Configure and test a Xinerama configuration using "X -configure".
(Refer to http://www.tldp.org/HOWTO/Xinerama-HOWTO/ if needed)
4. Plug in your additional USB keyboards and mice.
5. Find all of the keyboards and mice in /proc/bus/input/devices. Note
the Handlers line for each device; find the 'eventX' value for each
keyboard and the 'mouseX' value for each mouse.
6. Construct an InputDevice section for each keyboard, and place it in
the /etc/X11/xorg.conf file:
Section "InputDevice"
Identifier "keyboardN"
Driver "evdev"
Option "Device" "/dev/input/eventX"
Replace N with a sequential keyboard number, and X with the event
handler identified in step 5.
7. Construct an InputDevice section for each mouse, and place it in
the /etc/X11/xorg.conf file:
Section "InputDevice"
Identifier "mouseN"
Driver "mouse"
Option "ZAxisMapping" "4 5"
Option "Device" "/dev/input/mouseX"
Replace N with the a sequential mouse number, and X with the mouse
handler identified in step 5.
8. Create a ServerLayout section for each seat, and add it to the
xorg.conf file:
Section "ServerLayout"
Identifier "seatN"
Screen 0 "ScreenN" 0 0
InputDevice "mouseN" "CorePointer"
InputDevice "keybaordN" "CoreKeyboard"
Where screenN matches the Identifier lines in the appropriate Screen sections.
9. Test the displays using the -novtswitch and -sharevts options:
X -novtswitch -sharevts -layout seatN :0
Replace N with each seat number in turn. You probably won't be able to
zap (Ctrl-Alt-Backspace) the server nor switch VTs, so you'll need
another system with ssh access to terminate the X servers (or run
something like 'while sleep 60 ; do killall X ; done' in the
10. Although you can start each X server using the X (or Xorg) binary, it's easier to track and kill individual servers if you link separate names (X0, X1) for each server:
ln -s /usr/X11R6/bin/X /usr/X11R6/bin/X0
ln -s /usr/X11R6/bin/X /usr/X11R6/bin/X1
Note that the X server may be relocated - when I installed 6.9 from the X.org CVS onto FC4, the server went into /usr/X11R6/bin, but in FC5 (7.0) it's in /usr/bin. This command will work in any case:
ln -s $(which X) $(which X)0
ln -s $(which X) $(which X)1
11. Add the new X servers to the display manager configuration. If
you're using Fedora Core 4, for example, modify /etc/X11/gdm/gdm.conf:
- Comment out this line by prepening the #:
- Add these lines, one for each seat:
- Add these sections:
name=Standard server
command=/usr/X11R6/bin/X0 -novtswitch -sharevts -layout seat0
name=Standard server
command=/usr/X11R6/bin/X1 -novtswitch -sharevts -layout seat1
12. Restart the display manager and enjoy!
O cómo configurar un sistema X11R6 para que varios usuarios con múltiples monitores, teclados y ratones puedan compartir recursos de una misma CPU. Ideal para ciber cafés y centros de enseñanza.
Tracked: Dec 08, 16:56
Several people have reported that their attempt to create a multiseat configuration has resulted in a situation where: The displays initialize in sequence, but Only the last display is active (the mouse pointer moves, the cursor blinks, and so forth)
Tracked: Dec 17, 14:31
#1 - vadim 2005-12-07 06:56 - (Reply)
Driver "evdev" and switch -sharevts is new in X11R6.9?
command=/usr/X11R6/bin/X0 ...
command=/usr/X11R6/bin/X1 ...
now in /usr/X11R6/bin/ only (X => Xorg)
ps for R6.8.2 I uses patch
#1.1 - Chris Tyler said:
2005-12-07 08:53 - (Reply)
Yes, 'evdev' and '-sharevts' are new in 6.9/7.0. Together, they let you start an X server without having a VT attached to it.
I modified the mini-Howto to explain what X0, X1 are (symlinks to X).
#1.1.1 - wilson 2007-12-14 13:03 - (Reply)
Am impressed by the work you are doing.
I find the above configuration difficult to setup you had talked about a software that will automate some of the configuration.
Please how can I get that software
Thanks in advance
#1.1.2 - Marc said:
2007-12-26 10:37 - (Reply)
Just want to THANK Chris and everyone that gave good advice! Yesterday I had that WOW feeling, after much fiddling with kdm and X, and proceding only slowly. Until Christmas... Now IT WORKS!
I like to tell you which problems I encountered and how I overcame them.
First, my computer is rather new, has an onboard Nvidia graphic chip (6150) and it runs OpenSuse 10.3 with KDE. I added a Nvidia 8500GT graphics card for the second monitor.
After plugging in an extra USB mouse and keyboard , Linux just operated them all at the same time, as might be expected.
In XORG.CONF I added entries for the new mouse and keyboard, added a monitor section and made two ServerLayout sections in which I summed up the screen, mouse and keyboard that I wanted to operate together.
Problem 1.
This produced a login screen a usual,but I could not login, because the keyboard generated unusual keys.
Solution 1.
I replaced Driver "kbd" with Driver "evdev" in the Section "InputDevice" for the keyboards in xorg.conf.
Problem 2.
Now I could login, but as many other people have reported, the cursor keys produced unexpected behaviour, i.e. the up-arrow started KSnapshot.
Solution 2.
In Section "InputDevice" for the keyboards, I replaced
Option "XkbModel" "microsoftpro"
Option "XkbModel" "evdev"
Problem 3.
Now I could use my keyboard as usual, even the EURo symbol worked again: .
But, as from the beginning, the second monitor stayed black. I think it had ablinking cursor in the left upper corner, but I am not sure.
Solution 3.
As many people have mentioned, IsolateDevice is an essential additionfor KDE. In the Section "ServerLayout" for my monitor I added:
Option "IsolateDevice" "PCI:0:5:0"
which is the onboard graphic chip.
(It is also possible to add it in the commandline for starting X in kdmrc)
Problem 4.
After adding IsolateDevice I got this famous WOW, YES, SUPER feeling. Both monitors now got a login screen, and I could login as two separate users. But tiny little squares were scattered over my display, and even the whole upper half now and than got black or showed boot messages. In this link http://wiki.archlinux.org/index.php/Xorg_multiseat#For_KDM_.28KDE.27s_Desktop_Manager.29 , I found
"This seems to be caused by the linux kernel framebuffer. Disable the framebuffer and they should be gone."
Well, disabling the framebuffer was not that easy, plus it did not help.
Solution 4.
Chris Tyles wrote somewhere: just remove "-sharevts -novtswitch" from the commandline for the main display in kdmrc
Now all is well. FANTASTIC
I hope someone kan benefit from these recommendations as well.
In the end I only had to change xorg.conf and kdmrc, and nothing else. Of course, next step is sound and udev. Never a dull moment with Linux.
Good luck,
#2 - anonymous_coward 2005-12-07 13:18 - (Reply)
FC5 test 1 provides X.org X11R7 release, not R9. It's a modular version which uses GNU Autotools, hence X server is not available in /usr/X11R6 anymore. Directory /usr/X11R6 will be dead in a few years because IIRC development of monolithic version will be stoped after one year.
#2.2 - Chris Tyler said:
2005-12-07 15:38 - (Reply)
You're right that FC5 has 7.0 (modular build) instead of 6.9 (monolitic build of the same code base) ... corrected the wording in the HOWTO. Thanks!
#3 - maciek 2005-12-07 16:07 - (Reply)
Not a new thing. One could do exactly the same using old version of X. I did it on slackware9 using only layouts and layout name in command. The result was that I could zap it.
Enumeration is easy when you know how USB works. The exact numer is a result of the usb tree counting always from one (on tree) and from zero (in /dev). Example:
have 5 4-port usb hubs, 4 keybs, 4 mices, 4 usbaudio
connect 4 hubs to the remaining one ("node"), locate numbers on the "node". Keyboard connected to hub ("leaf") that is connected to "main"-1 will have event0, keyboard connected to "leaf" that is connected to "main"-2 will have event1. That's always true, so you can rely on that.
Providing that you want to connect 7 sets, you do it like this:
a "node" hub, 4hubs connected to it. Connect another "node1" to "node1"-1, three "leaves" to "node"-(2-4). connect 4 "leaves" to "node1"-(1-4). Have each "leaf" filled with keyb, mouse, usbaudio.
#3.1 - Chris Tyler said:
2005-12-07 16:48 - (Reply)
What's new is that you can finally do this with an unmodified kernel and unmodified X server. In the past, you had to patch the kernel to support VTs on multiple video cards (the Ruby/Backstreet-Ruby patches - great software, but a huge chore to set up) or patch X to support direct input from USB keyboards rather than from a VT interface (using one of the evdev patches, e.g., the ones in Debian). I was running a Backstreet-Ruby system with a patched X server for nearly 2 years.
But with an improved evdev driver and the -sharevts option built into the X.org server, the only thing you need to modify is the xorg.conf file.
#3.1.1 - maciek 2005-12-07 17:36 - (Reply)
I did it on vanilla kernel with binaries compiled straight from X.org.
#4 - Christoffer Gurell 2005-12-11 06:43 - (Reply)
Has anyone gotten this to work on one graphics card with multiple outputs?. Like running two displays on an nvidia card with two dvi outputs?
#4.1 - Chris Tyler said:
2005-12-11 09:32 - (Reply)
Getting it to work on one card with two outputs is tricky. There are three approaches:
(1) Use a video card that has two complete, separate video systems on one card, with each one addressable separately on the PCI bus. As far as I know, only a few Matrox cards fall into this category.
(2) Use cards where each output can be separately driven by the kernel framebuffer drivers, then layer the X servers on top of that. Usually used with (1).
(3) Run one X server that covers both screens, then use a nested X server (Xnest or the k-drive based equivalent) on each screen. This is inefficient, because there's two layers of X server between the clients and the hardware.
It would be great to see direct support for multiple X servers on one card, but that's a ton of work, so it's unlikely to happen anytime soon. Perhaps as work on X11R7.x progresses we can move towards this (?) -- but I think the starting point is to get more people using multiseat (via multiple cards at first) to create interest and demand, and that will focus attention on these issues.
#4.1.1 - Maarten van Berkel 2006-09-26 09:27 - (Reply)
I have a dualhead (2x VGA) GeForce MX 4000 card. I've tried to get both screens to work, but failed. Tried months ago with FC5 en now with FC6 Test 3 (5.92).
Still bad luck
This is the only feature which keeps me from switching from Windows to Linux.
Like your blog though
PS. If anybody has any tips?
#22.214.171.124 - Anonymous 2006-11-20 22:28 - (Reply)
GeForce is Nvidia, right? Are you using the GPL (included) driver or have you obtained the binary Nvidia driver?
#5 - Christoffer Gurell 2005-12-11 12:15 - (Reply)
How about using the method descibed in Appendix P of the nvidia readme called "Configuring Multiple X Screens on One Card" ? Cant this be used somehow?
#5.1 - Chris Tyler said:
2005-12-11 14:30 - (Reply)
In X terminology, a 'screen' is one component of a 'display'. There's one monitor per screen, but one user per display. The Appendix P method is designed for traditional multihead support - one user, several screens. Since there's only one mouse, one focused window, one set of selections (clipboard), and so forth, this doesn't work well for multiuser support -- unless you run a second (nested) X server on each of those screens, but then your app is talking to the nested X server which is then talking to the main X server which is talking to the display. There are reports that it can be done, but it's not very efficient.
Here's some info from someone who has done multiseat using Xnest (or you could use Xephyr, which would let you use RENDER and other modern goodies):
Notes on the framebuffer solution with a multihead Matrox card are here:
#6 - Steve C 2005-12-12 09:22 - (Reply)
Is there any way to get two separate X displays under Xorg 6.8.2 without patching X or the kernel - assuming multiple keyboards and mice aren't an issue?
For example, say I had an NVidia card hooked up via TV-Out which I wanted to display a MythTV interface on (controlled by remote control independently of X), and I wanted to have a monitor/keyboard/mouse setup next to it on a different video card for browsing the web.
I've tried various experiements, but every time I start the second X session it blanks the screen of the other session until I kill the second session (doesn't matter which starts first, I've even tried with a third video card).
#6.1 - Chris Tyler said:
2005-12-12 18:29 - (Reply)
That's exactly the kind of thing this HOWTO is for (though the assumption is that the first display includes a keyboard and pointer too).
The options that you need to prevent the blanking are -novtswitch and -sharevts
#6.1.1 - Steve C 2005-12-12 22:32 - (Reply)
Don't get me wrong, the HOWTO is great and makes life quite simple, I was just hoping there was a way to produce the effect with Xorg 6.8.2, without having to rely on development packages.
Pre-6.9 doesn't seem to support the "-novtswitch" and "-sharevts" options!
#184.108.40.206 - Chris Tyler said:
2005-12-12 22:45 - (Reply)
Aye, there's the rub. Those two options are key to what you're trying to do (though there are patched 6.8.2's that have similar switches).
The good news is that 6.9 is due to be released in a couple of weeks and is already in Mandravia and FC5.
#7 - oscar said:
2005-12-15 16:09 - (Reply)
make all the steps (in MANDRIVA 2006) but when executing gdm screen 1 is congealed layout 2 nevertheless works without problem with all its elements (mouse, keyboard, screen) please if somebody can send gdm.conf email@example.com
in my page they are my configuration files
#7.1 - Chris Tyler said:
2005-12-15 16:18 - (Reply)
This can sometimes happen -- usually it's a sign that the video initialization code for the 2nd card is fighting with the first card. I've seen this with an ATI Rage128+DVD vs. Nvidia+Matrox, and a Matrox vs. 3 Nvidia.
What hardware do you have?
#7.1.1 - oscar said:
2005-12-15 19:01 - (Reply)
my haedware:
1) Nvidia FX5500 AGP
2)Nvidia PCI MX400
both with keyboard and mouse USB
#18.104.22.168 - Chris Tyler said:
2005-12-15 21:24 - (Reply)
You could try fidling with the board initialization options. See 'NoInit10' and related options in 'man xorg.conf'.
A trick that works with some board combinations is to start both boards under the control of a single server -- in a Xinerama or traditional dual-screen, single-display configuration -- just to get them initialized, killing that server a moment later, then continuing with the multiseat startup (yes, it's a bit of a raindance, but it works for some hardware combinations). If you have a second xorg.conf file that has such a dual-head/single-seat configuration, you can do something like this during the boot sequence:
X -config /etc/X11/xorg.conf-singleseat & sleep 5 ; killall X
#8.1 - Chris Tyler said:
2005-12-16 23:27 - (Reply)
I'm using FC4 on my home system, which is multiseat. I grabbed the 6.9 pre-release from x.org (via cvs), compiled it, and then installed it with 'make install'. For FC4, 6.9 is probably an easier install because the monolithic build is most similar to the 6.8.2 that FC4 originally shipped with.
If you do this, be sure to exclude "xorg*" from your yum updates so you don't get downgraded (at least until the FC4 repos have 6.9, which might happen after the official release -- (?) -- anyone know if that's planned?)
#8.1.1 - andres 2005-12-19 15:44 - (Reply)
how installing the file xorg-x11-188.8.131.524.tar.bz2 that download of http://xorg.freedesktop.org/releases/X11R6.9-RC4/
#188.8.131.52 - Chris Tyler said:
2005-12-22 09:09 - (Reply)
The X.org source distributions contain build and installation instructions in the tarball. But now that 6.9/7.0 are out, another option would be to wait until your distro/OS picks it up and then just update...
#9 - rotaliator 2005-12-19 18:03 - (Reply)
How to change language layout for keybord controlled with evdev? Option "XkbLayout" don't operates...
#9.1 - Chris Tyler said:
2005-12-22 09:05 - (Reply)
Some early versions of the [x.org version of the] evdev driver don't support xkb. I thought that the current one was supposed to support it, but I haven't tried it myself (which reminds me that I should).
#9.1.1 - rotaliator 2005-12-22 17:24 - (Reply)
I found the solution. My keyboard controlled with evdev returns different scancodes of several keys. For example Alt_R is 0x71 for "keyboard" driver, and 0x6c for "evdev" driver. xmodmap helps to fix it.
#18.104.22.168 - SomeOne 2006-01-04 02:37 - (Reply)
i had the same problem with evdev keyboards and kmap . in KDE some bottons not working and some doing funky stuff like "Up" Opens ksnapshot . in gnome everything is fine. i'm not sure it's X related problem or KDE problem ? i think it's more like KDE is overriding the keymap .. what do u think ? and how did u fix it with xmodmap ?
#18.104.22.168.1 - Michel G 2007-01-28 12:05 - (Reply)
I've the same problem too...
You can see this Debian bug :
#10 - Anonymous 2005-12-22 02:10 - (Reply)
Bonjour !
I am using backstreet Ruby patch on my home PC ; my configuration :
- Nvdia FX5200 AGP 8x
- Matrox G450 PCI
- kernel 184.108.40.206
#10.1 - Merlum 2005-12-22 02:16 - (Reply)
oops sorry, I saw that using < followed by - cuts the message...
Here is the last part of my message :
kernel 18.104.22.168 I did not succeed in patching more recent kernels...
- Nvidia's accelerated driver
- slackware 10.2 with gnome 2.12 and gdm as login screens
I noticed as you that there were lockups when I initialized Nvidia card before Mga card.
If I tell gdm to start X server on Mga first and then start X server on Nvidia, it works fine !
I noticed too that colors on Mga card are corrupted with this system ; just restarting the Mga X server corrects the problem.
My wife can do her homework as I play a game
#11 - Aivils 2005-12-26 12:28 - (Reply)
You can set up sound card for each user-seat (DISPLAY)
Solution is done by Ludovic Pollet and runs flawless
on my box few months. my box have 3 seats, with 3
Of course solution isn't for sound only. May be You can
set up even /dev/mice for each seat, if You want do that.
It runs under 2.4.XX and 2.6.XX.
#11.1 - RayDar 2007-03-20 22:32 - (Reply)
I've managed to get the sessiond to compile, but I cannot figure out how to configure it. Can you (Aivils) list step-by-step instructions?
#13 - SomeOne 2006-01-04 02:51 - (Reply)
Another thing what do u mean by
Screen 0 "Screen0" 0 0
in layout section ? do u mean Screen N "ScreenN" 0 0 for each seat ? or u mean all the layouts should have Screen 0 "Screen0" 0 0 ?
#13.1 - Chris Tyler said:
2006-01-04 08:36 - (Reply)
You're right, I wasn't very clear with that line. It should be:
Screen 0 "ScreenN" 0 0
The first zero indicates that this is the first screen for each seat, and the "ScreenN" has to match the Identifier line in the appropriate Screen section.
Thanks for the feedback! -- I've updated the HOWTO.
#14 - sergio 2006-01-13 15:08 - (Reply)
I am trying to have to users in the same box using Fedora 4.
I need to upgrade XORG, could you give me some pointers as how
to do this.
#14.1 - Chris Tyler 2006-01-13 17:34 - (Reply)
You can download and compile X.org from the X.org website (not too difficult), but an easier option might be to wait for Fedora Core 5, which will be out in mid-March.
If you do update FC4, then use X.org 6.9 not 7.0 because the paths are more compatible.
#15 - Moe 2006-01-15 07:21 - (Reply)
I've tried your config with my GeForce 6600 PCIe and I got the problem mentioned at "Multiseat Issues with Nvidia Cards".
I've tried to solve it by adding
Option "NoInt10" "true"
to the Screen section, start and stop X and then start it again without NoInt10. No success.
Anyone got further ideas?
It would be great if this works!
#15.1 - Chris Tyler 2006-01-15 09:02 - (Reply)
One card is your GeForce 6600 PCIe, what other cards are you using? Do they work in a Xinerama configuration?
#15.1.1 - Moe 2006-01-15 11:20 - (Reply)
I currently just try to use two settings for mouse, keyboard and server, but run only one x-server. (Point 9 of your how to, but only started seat0, not seat1)
So second card (Geforce 6800 PCIe) is not used yet. I've tried it with and without both cards plugged in. Same result.
#15.2 - Merlum 2006-01-31 14:16 - (Reply)
I suceeded in making work the nvidia proprietary drivers, with Matrox+Nvidia cards.
Basic principle :
1 - I do a probeonly launch of X servers to enable BIOSes to be initialized
2 - I launch X servers without any call on Int10 module.
Step 1 :
I copied my current xorg.conf in xorg.conf.probeonly
I added to xorg.conf.probeonly a Section "ServerLayout"
Identifier "probe"
Screen 0 "Screen 1"
Screen 1 "Screen 2" rightOf "Screen 1"
where "Screen 1" and "Screen 2" corresponding to nvidia and matrox screens.
I added in init scripts (for me on slackware /etc/rc.d/rc.local) :
/usr/X11R6/bin/X -config xorg.conf.probeonly 2>/dev/null
Step 2 : editing xorg.conf to disable Int10 module
Added in Section "Device" for nvidia card, driver "nvidia" :
Option "UseInt10Module" "True"
Option "NoInt10" "True"
Added for Section "Device" of matrox card, driver "mga" :
Option "NoInt10" "True"
No freeze with my nvidia card, more color issue on my MGA card
P.S. : I had trouble with evdev keyboard driver with my logitech kbd, solved with a patch and "little" recompilation see https://bugs.freedesktop.org/show_bug.cgi?id=3912
#15.3 - Jakub Sadowski 2007-01-16 14:04 - (Reply)
Maybe try the following options (from the xorg.conf man page) in your serverlayout section:
Option "IsolateDevice" "bus-id"
Restrict device resets to the specified bus-id. See the BusID option (described in DEVICE SECTION, above) for the format of the bus-id parameter. This option overrides SingleCard, if specified. At present, only PCI devices can be isolated in this manner.
Option "SingleCard" "boolean"
As IsolateDevice, except that the bus ID of the first device in the layout is used.
#16 - Tobias Bauer 2006-01-19 12:12 - (Reply)
hello, i need some help
my config:
GeforceFX 5200 AGP busid:1:0:0
GeforceFX 5200 PCI busid:2:10:0
Xorg 6.9 Sarge-Backport
a setup with Xinerama an two attached displays works fine. now i tried to setup multiseat.
"seat0" works at stage 9 of the howto, but "seat1" (the PCI-card) produces an error:
(WW) NVIDIA: No matching Device section for instance (BusID PCI:2:10:0) found
the busid is correct, so what can be wrong?
greetz, tobias
#16.1.1 - Tobias Bauer 2006-01-21 04:26 - (Reply)
i found the mistake! doh
i tried to link my pci card to a specific screen in xorg. this doesn't work. of course, it has only one monitor attached.
so i got two server-layouts working, but one is something like shifted. the gdm-buttons are on the wrong postition.
i will test this next week, due to it's my job's place.
can somebody tell me how the single monitors / displays are called? :0.0 / :1.0 / :2.0 etc. or :0.0 / :0.1 / :0.2 ??
#126.96.36.199 - Tobias Bauer 2006-01-25 09:44 - (Reply)
I have now 2 seats working, but third won't do what i whant
log and config files are here:
click on the orange downloadbutton and then "download the file"
my actual config:
X0 (ps2-keyboard0,ps2-mouse0, monitor0, Geforce5200 AGP) working
X1 (usb-keyboard1,usb-mouse1, monitor1, Geforce5200 PCI) working
X2 (usb-keyboard2,usb-mouse2, monitor2, PCI) not working
the PCI for X2 is an S3-virge, uses driver "vesa" and works in single-mode.
hope you can help me
#126.96.36.199 - Chris Tyler 2006-01-25 12:12 - (Reply)
In a displayspec, such as A:B.C ...
'A' is the hostname, or blank for local host via fast local connection (Unix domain socket)
'B' is the display number. There's one user per display.
'C' is the screen number. There is at least one screen per display.
So if you have one local user with two screens, they are :0.0 and :0.1. If you have two local users with one screen each, they are :0.0 and :1.0. But if you have a local Xinerama screen with two monitors (Xinerama=multiple monitors that act as a single large screen, and windows can span screens and be moved between them) then you have only :0.0
#17 - Alexs said:
2006-01-25 05:21 - (Reply)
How about FreeBSD?
FreeBSD st 6.0-STABLE FreeBSD 6.0-STABLE
Xorg X Window System Version 6.9.0
#>X -novtswitch -sharevts -layout seat0 :0
Unrecognized option: -novtswitch
#17.1 - Chris Tyler 2006-01-25 08:21 - (Reply)
I haven't tested this, but as far as I have heard, the Multiseat code in 6.9.0 works only with Linux at this point.
#19 - ouasse 2006-01-29 07:24 - (Reply)
Can this trick be used on a dual-head single video card ? Eg. plugging a mouse/keyboard/monitor on a laptop PC for user 2, while user 1 still being able to use the internal touchpad/keyboard/lcd screen ?
My laptop's graphics setup :
0000:00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
0000:00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
#20 - Marcelo Estanislau said:
2006-01-30 19:47 - (Reply)
I'm problem with FC4 and KDE. The evdev don't working with keycode 111, keysym is Up. The output for xev is only KeyPressRelease, but KeyPressEvent is don't working.
I'm trying setxkbmap -model abnt2 -rules evdev, keymap for keyboard ABNT2_BR is ok, but keysym UP don't work.
#20.1 - Marcelo Estanislau said:
2006-01-31 07:23 - (Reply)
This is output xev for KDE (Don`t work keysym UP):
KeymapNotify event, serial 30, synthetic NO, window 0x0,
keys: 25 0 0 0 0 0 0 0 0 0 0 0 0 4294967168 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyRelease event, serial 30, synthetic NO, window 0x2600001,
root 0x119, subw 0x0, time 3488711, (723,197), root:(727,735),
state 0x10, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
And this is output xev for GNOME (Work):
KeyPress event, serial 29, synthetic NO, window 0x2a00001,
root 0x119, subw 0x0, time 3648714, (73,254), root:(78,303),
state 0x10, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 29, synthetic NO, window 0x2a00001,
root 0x119, subw 0x0, time 3648795, (73,254), root:(78,303),
state 0x10, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
Any idea?
#20.1.1 - Ezequiel said:
2006-10-10 03:28 - (Reply)
I have the exact same problem... did you find any solution?
#21 - Don Pedro 2006-02-02 05:15 - (Reply)
Here is some usefull patches for evdev driver, helping to split input (keyboard/mice) devices. Much powerfull than it was a couple mounth ago.
#22 - Richard Unger 2006-02-03 04:16 - (Reply)
Working wonderfully...
Found a 6.9.0 ebuild in the Gentoo Forums which seems to work very well.
Your HOWTO made the Dual Head setup a breeze.
#23 - Don Pedro 2006-02-06 04:41 - (Reply)
Hello Guys! Glad to hear some one could realize dualhead. Because I'm not! My hardware - radeon 9200 + 16Mb PCI 3dFx VooDoo3 3000. Several weeks ago i tested dual head with the hardware in Xorg 6.8 patched for dualhead, and that was working. But i don't like 6.8 because they doesn't have evdev driver and 6.9 does. And it helps to split keyboard enough stable, even after usb reeject. Using dualhead with X6.9 I having huge troubles. Please help me to adjust my configs. Well as I understood both X servers may start if I start from starting level 3 (multi user console). Lets assume I logined in two consoles first (tty1) as user1 second (tty2) as user2. Now I'm checking if I have right xorg.conf.
user1> X0 -novtswitch -sharevts -layout Seat0 :0 & xterm
this starts my radeon video card (having some artefacts like black short lines in top of the screen).
Now killing X0 and continue testing
user2> X1 -novtswitch -sharevts -layout Seat1 :1 & xterm
this force working second display connected with 3dfx (w/o artefacts).
OK test passed. Now starts them alltogether.
user1>while sleep 40; do X0 -novtswitch -sharevts -layout Seat0 :0 & xterm; done
user2> X1 -novtswitch -sharevts -layout Seat1 :1 & xterm
And 3dfx starts for a 40 seconds (time when second x server starts) And halts after 2-nd X server starts. What am I doing wrong? Maybe I should use fglrx driver? Or maybe I compilied kernel with wrong paramiters? Does anyone realized dualhead with one radeon and one pci video card? Any advace are wellcome. Thx.
#23.1 - Richard Unger 2006-02-07 06:00 - (Reply)
I have it working using X6.9 and one NVidia MX440 AGP Card, one Radeon 7000 QY PCI card.
It works well.
If the two setups are working well seperately, but not together at the same time, one thing you could try might be to add the option:
IsolateDevice "1:0:0"
to the ServerLayout section of the PCI card X config, and
IsolateDevice "0:2:6" # replace with PCI id of your PCI gfx card
to the ServerLayout section of the AGP card X config.
I read some hints somewhere that included this tip, it wasn't needed for me, but might help you.
Good luck!
Richard Unger
#24 - Anonymous said:
2006-02-08 02:38 - (Reply)
There is a very easy and free (as in beer) way to get 2 users working on linux:
There is also some good patches available on their sourceforge site http://openuserful.sourceforge.net/ for multi-user device configuration. The install and setup scripts can easily be patched for any 2.6 based distro and it auto configures GDM/KDM etc..
#25 - Tiberius Kuczera 2006-02-08 05:24 - (Reply)
Hello !
I configured a multiseat with one Nvidia FX5200 AGP and two Nvidia MX4000 PCI cards. It works, but after view minutes seat 2 and seat 3 are freezing, I can move the mouse, but the gui is dead and both x-servers run with 100% cpu usage, the main seat (AGP-card) works properly... ? what could it be ?
#25.1 - Cferron 2006-03-17 21:51 - (Reply)
Same issue here when I try to start a screen with the -sharevts option CPU climb up to 100%.... I have the following in the system:
Kernel 220.127.116.11
6 x nVidia Corporation NV5M64 RIVA TNT2
Xorg version 6.9 on slackware 10.2
WTF??? seem too easy for a moment...
#25.1.1 - Ravn 2006-11-06 05:04 - (Reply)
I have the exactly the same problem on FC6.
Three cards (one pcie two pci, all nvidia driven).
The pcie card works great, the trippelseating works but takes all cpu.
Starting X on eather of the pci cards works fine until I apply the -sharevts option. Then it takes 100% cpu.
#220.127.116.11 - Chris Tyler said:
2006-11-06 06:50 - (Reply)
I don't have a PCI-E+PCI system with multiple cards at the moment, though I will have one coming in soon.
If you use 'strace' to monitor the X server processes, can you find out why they are taking 100% CPU?
#188.8.131.52.1 - Ravn 2006-11-06 08:05 - (Reply)
To be honest, I have no idea what Im looking for
#188.8.131.52.1.1 - Ravn 2006-11-07 04:49 - (Reply)
I tried the same config file, on the same computer on Ubuntu. All works flawlessly!
It seems to be a bug in Xorg, that ubuntu has patched. I found this on a ubuntu website, but I cannot manage to find it again
#188.8.131.52.1.1.1 - ramiro 2006-11-07 10:48 - (Reply)
have you tried to disable the first server on gdm?
#18.104.22.168.1.1.2 - Jakub Sadowski 2007-02-05 12:52 - (Reply)
I have the exact same problem on Ubuntu Edgy (6.10), so I'm not sure if it's an X bug "that ubuntu has patched".
How did you guys determine that it's the "-sharedvts" flag that causes this? Without that flag you wouldn't have a standard X multiseat at all...
#18.104.22.168.2 - edmund ochieng 2007-11-24 07:29 - (Reply)
This might be the wrong forum to ask and i apologize for it if so. Can i use the on-board video card in addition to an AGP graphics card to set up a multiseat system
#25.2 - Jakub Sadowski 2007-02-05 18:58 - (Reply)
I've noticed that some people have mentioned only using "IsolateDevice" on the first card but not the second. What's the rationale for this? What will happen if I isolate the 2nd card as well?
Also I've noticed that some setups do an initialization run for X before launching the DM. What's the logic behind this?
#26 - Don Pedro 2006-02-08 05:37 - (Reply)
Thx in advance but,
I believe there is no paramiter IsolateDevice "1:0:0" for ServerLayout section, but it could be starting parameter for Xorg (X - isolateDevice 1:0:0).
And tell me please are you using special driver for nvidia and ATI cards downloaded form original ati and nvidia web pages?
I was trying fglrx driver at the moment but the same thing - first server runs and the second halts, urrrrrrr.
#26.1 - Richard Unger 2006-02-08 09:10 - (Reply)
You may be right - I did not need the IsolateDevice option, I was just reading about it, so I did not try it out.
I am using the standard radeon drivers, that come with xorg-x11 6.9 as well as the binary nvidia drivers from Nvidia.
(drivers "radeon" and "nvidia" respectivly).
GL Setup is for nvidia, with the result that GLX is available on the main screen (AGP, Nvidia) and not available on the secondary (PCI, Radeon).
#26.1.1 - Don Pedro 2006-02-09 04:46 - (Reply)
Uh, maybe the problem is I using kdm start manager, so maybe I do wrong configuration. Could some one give me an exaple of kdmrc file wich commonly placed at /opt/kde/share/config/kdm.
#26.1.2 - Don Pedro 2006-02-10 06:55 - (Reply)
It looks like I have a problem with adjusting kdmrc. Here is my example for patched Xorg 6.8.2 wich running with command : >X0 :0 -audit 0 vt7 -nopciaccessdisable -auth var/log/:0.Xauth -layout Seat0
>X1 :1 -audit 0 vt7 -nopciaccessdisable -novtswitches -auth var/log/:1.Xauth -layout Seat1
So starting both servers manually works but starting kdm halts video devices, so I think I have to adjast kdm for Xorg6.8.2 and then continue with Xorg 6.9/7
Below is my kdmrc (hope someone find a mistake):
>cat kdmrc
# Core config for 2st local display
Does anybody know what am I doing wrong?
#184.108.40.206 - Richard Unger 2006-02-10 07:11 - (Reply)
I'm using Xorg 6.9, no patches. I use the option '-sharevts' as described in the HowTo above. The 2 X Servers have to share the same VT, or the setup will not work.
I use gdm, and this is working fine for me, again following the setup described by Chris above. I see no reason why you should not be able to start a KDE Session using gdm, so why not try using gdm instead of kdm?
#126.96.36.199.1 - Don Pedro 2006-02-13 06:25 - (Reply)
Thx, with gdm it works for PATCHED Xorg 6.8.2, will see what happens with 6.9
#126.96.36.199 - Chris Tyler 2006-02-10 11:28 - (Reply)
Unfortunately, this is not an uncommon problem - it's caused by a conflict in the driver initialization routines between cards. I experienced it last night when my system reverted from the nvidia (closed-source) to nv (open-source) drivers.
The X.org project is making some progress on this with some of the cards. In your case, I'd recommend (a) trying the other ATI driver (from ATI) or (b) using two cards from the same manufacturer if you can lay hands on them.
#22.214.171.124.1 - Don Pedro 2006-02-13 07:14 - (Reply)
That is strange because as I said the PATCHED Xorg 6.8.2 works with my hardware.
#27 - Marcelo Estanislau 2006-02-09 05:56 - (Reply)
Friends, I have some models of mouses that they do not working with driver "mouse" in the converting doors usb to PS2 using, as I make to configure one mouse using driver evdev? Which are the options in xorg.conf?
#28 - Bob Smith said:
2006-02-12 00:52 - (Reply)
I've gotten a six-head, six-user system up and running. It worked pretty much the first time I tried it (ok, well, after getting all the numbers right in xorg.conf).
There is an article describing the system at http://www.linuxtoys.org/multiseat/multiseat.html.
The system is VERY unstable. I get a kernel oops fairly often when a user logs out. Has anyone seen this problem before? Any ideas on how to fix it? Also, any suggestions to improve my article?
Bob Smith
#28.1 - Aivils 2006-02-12 14:39 - (Reply)
Unforutnately pair kernel version - nvidia driver version is magic. Step forward/back one of them and You may got stable.
#28.2 - Claudio Cuqui said:
2006-02-14 10:40 - (Reply)
Hi Bob,
We have the same problems using the latest nvidia (proprietary) drivers. But they were drastically minimized when we downgrade to 7676 release. Kernel ooops now are VERY rare when users logout.
Hope this helps !
Regards !
#29 - vadim 2006-02-14 09:29 - (Reply)
Another problem with evdev - don't work switch language:
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:ctrl_shift_toggle"
under X - only "us"
#29.1 - Don Pedro 2006-02-15 04:51 - (Reply)
That is not the real trouble. See https://bugs.freedesktop.org/show_bug.cgi?id=5696
#30 - Claude Ferron 2006-02-15 17:13 - (Reply)
Do you think the solution would work with 4Xdualhead in a system for a total of 8 screens?
If so, how do write your configuration in XF86config in the screen section?
Section "ServerLayout"
Identifier "seatN"
Screen 0 "ScreenN" 0 0
InputDevice "mouseN" "CorePointer"
InputDevice "keybaordN" "CoreKeyboard"
Section "ServerLayout"
Identifier "seatN"
Screen 1 "ScreenN" 0 1
InputDevice "mouseN" "CorePointer"
InputDevice "keybaordN" "CoreKeyboard"
I don't need keyboard support and neither GDM since I start X with OPERA running in kioskmode...
#30.1 - Richard Unger 2006-02-20 04:41 - (Reply)
Hi! (also replying to your email)
1) X usually complains if you try to start it without any keyboard, but perhaps there is a -nokb or similar option you can pass to prevent X from quitting if it doesn't find the keyboard.
2) You can set up your main X Server to support multiple screens:
Section "ServerLayout"
Identifier "main"
Screen "Screen0" 0 0
Screen "Screen1" RightOf "Screen0"
Screen "Screen2" RightOf "Screen1"
Screen "Screen3" RightOf "Screen2"
InputDevice "mouse0" "CorePointer"
InputDevice "keybaord0" "CoreKeyboard"
That sets up one X Server with 4 Screens.
Now theoretically you could start OPERA (in Kiosk mode) on any screen using:
% DISPLAY=":0.2" opera
(assuming the command for Opera is simply 'opera')
However this will not be what you want, because:
All the screens will share only one cursor, and all operas will be running under the same user.
So now what you do to get around this is use the Xephyr or Xnest programs. These 'simulate' an XServer within a window of another XServer. Basically this lets you open a window on each screen, where each such window then has its own mouse and can contain its own subwindows.
See the HOWTO at http://www.c3sl.ufpr.br/multiterminal/howtos/howto-xephyr-en.htm for how to install the modified version Xephyr needed for this.
Good luck!
Richard Unger
#31 - Don Pedro 2006-02-19 06:48 - (Reply)
This is some kind of continue of issue #26.
First of all I'd like to say that finally it seems that I did configured multiseat in my system.
My special thank to Richard Unger for the brilliant advice of using -isolateDevice option.
I'd like to show in this tip how I did configured my system, because I spend a lot of time in adjusting multiseat and maybe my info will help someone.
My hardware is rather old - kt333 chipset with Athlon 1800 XP and Radeon 9200 + Voodoo3 3dfx videeocard onboard. To make two separate seats I'll need two kbd and 2 mice. I have ps/2 + usb kbd and 1 ps/2 + 1 usb mice. This way I got 4 event devices in /dev/input .
The problem I had is freezing one of videocards while other X server starts. It's well solved now with using -isolateDevice paramiter. Here is part of /etc/X11/gdm/gdm.conf
>cat /etc/X11/gdm/gdm.conf
name=Standard server
command=/usr/X11/bin/X0 -novtswitch -sharevts -isolateDevice PCI:1:00:0 -layout Seat0 :0
name=Second server
command=/usr/X11/bin/X1 -novtswitch -sharevts -config xorg.conf.tdfx -isolateDevice PCI:0:09:0 -layout Seat1 :1
OK now discussion about above. Seat0 is a server with Radeon 9200 video card and it's bus pci is 1:0:0 - So paramiter -isolateDevice used to isolate the device of the current server.
The same story with 3dfx - it's bus pci 0:09:0. For "Second server" I'm using 3dfx with no GL and Radeon's server use GL (glxinfo shows: direct rendering: Yes) so I wasn't thinking a much and made to separate xorg.conf for Radeon with Section "dri" on and the second (xorg.conf.tdfx placed in the same place where original xorg.conf is located) with Section "dri" off (commited).
I am also using fglrx driver for Radeon card, but it's looks like you are able to use standart radeon driver.
I also was trying to adjust kdmrc session manager, but I meet some problems (kind of wierd artefacts).
>cat /opt/kde/share/config/kdm/kdmrc
ServerCmd=/usr/X11/bin/X0 -novtswitch -sharevts -isolateDevice PCI:1:00:0 -layout Seat0 :0
ServerCmd=/usr/X11/bin/X1 -novtswitch -sharevts -config xorg.conf.tdfx -isolateDevice PCI:
Also I meet the problem of blank screen signal from console. It;s adjust from command
>setterm -blank 0
And it means to turn of blank screen.
In start script /etc/rc.d/rc.m I did modified the string devoted to setterm by this
/bin/setterm -blank 0 -powersave off -powerdown 0
Thats all for a moment.
p.s. I'd like to conclude that the Quick Guide/Mini-HOWTO by Chris is not a perfect Guide till it not describe the -isolateDevice start X server paramiter. It appears that developer of multiseat functionallity of Xorg manipulated not 2 but 3 start paramiters which are:
But using -isolateDevaice you should be carefull because some time it halts the system, maybe . I think you should use it if only your device need it.
#32 - Mohd Azhar said:
2006-02-19 20:31 - (Reply)
I've tried to build multiseat system using Ati9250AGP and 2 nos Ati7000PCI but it seem only one display works. Configuration for Xinerama also caused blank screen on all monitor.
I'm using Debian unstable on Asus mobo with BIOS ver 1006
#33 - Beren Walters 2006-02-22 01:52 - (Reply)
I got mine up and working on an AGP ATI 9200SE and a PCI Stealth 3D 2000 Pro.
I was unable to get simultaneous Xservers running (singly and xinerama were fine) until I found the -isolateDevice parameter in the comments (thank you Don Pedro).
I have one remaining issue where power saving and/or screensaver activation blanks the Stealth 3D screen and it cannot then be woken up again without restarting gdm.
#33.1 - Don Pedro 2006-02-22 07:17 - (Reply)
I was saying about blank screen. You have to point out which process blanking the screen. And I thing you should kill xscreensaver and blank screen options of the console. The last by command setterm -blank 0.
Now I'm using kde's screensaver - descktop options - screensaver(after 10minuts) + power management options (blank screen after 15 minuts)
#33.1.1 - Beren Walters 2006-03-09 19:49 - (Reply)
Don, I saw the post but it took me a while to determine the Debian way of fixing the setterm issue.
So for Debian users you need to edit /etc/console-tools/config as follows:
This has fixed my blanking issues.
#34 - Samrat Patel 2006-02-23 15:00 - (Reply)
hi guys ,
i need some help , well i plan to have a three head linux and i plan to use sound card i mean there will be three pairs od video cards and sound cards well i wana know whether this can work if yes then how it is possible what are the changes to be made in linux? in which version of linux this will be possible? secondly i am also intrested in running windows applications such as IE6, Office XP , Yahoo Messenger /MSN messenger can anyone tell me how this can be done , please care to mail me at
#35 - Chuck Sites said:
2006-02-23 16:07 - (Reply)
've been successfull in setting up a multiseat configuration with KDE on a 4CPU (two dual-core 280s) AMD box with two Nvidia Geforce 7800GT OCs with each card running twinview on Mandriva 2006.0
The problem though is that it's not stable and I was wondering if anyone else has seen this.
First; if I `cat /proc/drivers/nvidia/cards/* ` it shows
Model: GeForce 7800 GT
Video BIOS: 05.70.02.13.07
Card Type: PCI-E
for card 0 and
Model: GeForce 7800 GT
Video BIOS: ??.??.??.??.??
Card Type: PCI-E
Two things are bothering me. Should the IRQ be the same for both cards, and second, should the BIOS be enabled for the second card.
These cards are NOT bridged with a SLI adapter, and if they where would it make a difference? Also I'm getting some kernel panics that point to Nvidia's driver (8178)
Feb 22 20:16:00 casablanca kernel: Unable to handle kernel NULL pointer dereference at 000000
Feb 22 20:16:00 casablanca kernel: {:nvidia:_nv008142rm+80}
Feb 22 20:16:00 casablanca kernel: PGD 236818067 PUD 2556bf067 PMD 0
Feb 22 20:16:00 casablanca kernel: Oops: 0000 [1] SMP
Feb 22 20:16:00 casablanca kernel: CPU 3
I've seen several references to patch X11 for evdev handling. Using the mandriva source 6.9.0 RPMs I installed the patch from https://bugs.freedesktop.org/show_bug.cgi?id=5696. But I'm
not sure that's the only one needed. Does anyone have recommendations on recommended pathches?
My current xorg.conf looks like this;
# **********************************************************************
# Module section -- this section is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
Section "Module"
Load "extmod"
SubSection "extmod"
Option "omit xfree86-dga"
Load "dbe"
Load "record"
Load "type1"
Load "speedo"
Load "freetype"
Load "bitmap"
Load "glx"
#Section "Extensions"
# Option "Composite" "Enable"
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "unix/:-1"
FontPath "/usr/X11R6/lib/X11/fonts/local/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/share/fonts/ttf"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
# The module search path. The default path is shown here.
# ModulePath "/usr/X11R6/lib/modules"
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
# Option "Xinerama" "True"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
# Option "NoTrapSignals"
# Uncomment this to disable the VT switch sequence
# (where n is 1 through 12). This allows clients to receive these key
# events.
# Option "DontVTSwitch"
# Uncomment this to disable the server abort sequence
# This allows clients to receive this key event.
# Option "DontZap"
# Uncomment this to disable the / mode switching
# sequences. This allows clients to receive these key events.
# Option "Dont Zoom"
# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.
# Option "DisableVidModeExtension"
# Uncomment this to enable the use of a non-local xvidtune client.
# Option "AllowNonLocalXvidtune"
# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.
# Option "DisableModInDev"
# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).
# Option "AllowNonLocalModInDev"
# **********************************************************************
# Input devices
# **********************************************************************
Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "Device" "/dev/input/event2"
Option "AutoRepeat" "500 30"
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
# Option "Xleds" "1 2 3"
# Option "LeftAlt" "Meta"
# Option "RightAlt" "ModeShift"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "grp:switch,lv3:menu_switch"
Section "InputDevice"
Identifier "Keyboard1"
Driver "evdev"
Option "Device" "/dev/input/event0"
Option "AutoRepeat" "500 30"
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
# Option "Xleds" "1 2 3"
# Option "LeftAlt" "Meta"
# Option "RightAlt" "ModeShift"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "grp:switch,lv3:menu_switch"
# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mouse1"
Option "CorePointer"
Option "ZAxisMapping" "4 5"
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
# Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mouse0"
Option "CorePointer"
Option "ZAxisMapping" "4 5"
# **********************************************************************
# Monitor section
# **********************************************************************
# Goto http://xtiming.sourceforge.net/cgi-bin/xtiming.pl for timing
Section "Monitor"
Identifier "9XLCD"
HorizSync 31.5 - 81.0
VertRefresh 50-75
# **********************************************************************
# Graphics device section
# **********************************************************************
# Standard VGA Device:
Section "Device"
Identifier "Standard VGA"
VendorName "Unknown"
BoardName "Unknown"
Driver "vga"
# BusID "PCI:0:10:0"
# VideoRam 256
# Clocks 25.2 28.3
# ********************************************
# Dual head configuration for multi-seat
# ********************************************
Section "Device"
Identifier "Nvidia0"
Driver "nvidia"
# Edit the BusID with the location of your graphics card
BusID "PCI:02:0:0"
# Option "UseInt10Module" "True"
Option "NoInt10" "True"
Option "SLI" "no"
Option "RenderAccel" "on"
Option "HWcursor"
Option "CursorShadow"
Option "CursorShadowAlpha" "32"
Option "CursorShadowXOffset" "3"
Option "CursorShadowYOffset" "3"
Option "AllowDFPStereo" "true"
Option "Stereo" "3"
Option "TwinView"
Option "SecondMonitorHorizSync" "31.5-96"
Option "SecondMonitorVertRefresh" "50-120"
Option "TwinViewOrientation" "DFP-0 RightOf DFP-1"
Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"
Option "ConnectedMonitor" "DFP-0,DFP-1"
Section "Device"
Identifier "Nvidia1"
Driver "nvidia"
# Edit the BusID with the location of your graphics card
BusId "PCI:129:0:0"
# Option "UseInt10Module" "True"
Option "NoInt10" "True"
Option "SLI" "no"
Option "RenderAccel" "on"
Option "HWcursor"
Option "CursorShadow"
Option "CursorShadowAlpha" "32"
Option "CursorShadowXOffset" "3"
Option "CursorShadowYOffset" "3"
Option "AllowDFPStereo" "true"
Option "Stereo" "3"
Option "TwinView"
Option "SecondMonitorHorizSync" "31.5-96"
Option "SecondMonitorVertRefresh" "50-120"
Option "TwinViewOrientation" "DFP-0 Leftof DFP-1"
Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"
Option "ConnectedMonitor" "DFP-0,DFP-1"
# **********************************************************************
# Screen sections
# **********************************************************************
Section "Screen"
Identifier "Screen0"
Device "Nvidia0"
Monitor "9XLCD"
DefaultDepth 24
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
Subsection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
Section "Screen"
Identifier "Screen1"
Device "Nvidia1"
Monitor "9XLCD"
DefaultDepth 24
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
Subsection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
# **********************************************************************
# ServerLayout sections.
# **********************************************************************
# Any number of ServerLayout sections may be present. Each describes
# the way multiple screens are organised. A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option. In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.
Section "ServerLayout"
Identifier "Seat0"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Section "ServerLayout"
Identifier "Seat1"
Screen 0 "Screen1" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
#35.1 - Chuck Sites said:
2006-02-28 17:32 - (Reply)
Hurray! Finally I have a STABLE Multiseat configuration after a lot of head scratching, reading, lockups and reboots. For those that read the above message, I finally found a trick that works with this system.
Hardware Description; Tyan K8WE Dual Core Opterons (4CPUs),
16 GB RAM, 1TB SATA Disks, Two Nvidia 7800 GT OC's. Two Logitech Wireless Keyboards and mice, 4 Viewsonic VP19b Flat screen LCDs (configured "Twinview" Xinerama for each seat).
The question I had about needing the SLI adapter bridge is moot since I have the configuration without SLI now working. The
secret is the -isolateDevice argument for X. With this configuration,
(and perhaps others) only the first device should be isolated. The
second should not. To initialize the the Display manager (in Mandriva 2006) I modified /etc/init.d/dm to contain these lines;
case $1 in
gprintf "Starting display manager: "
# Scan the 7800 cards
/usr/X11R6/bin/X0 :0 -layout Seat0 -probeonly -novtswitch -sharevts -isolateDevice PCI:2:00:0
/usr/X11R6/bin/X1 :1 -layout Seat1 -probeonly -novtswitch -sharevts
sleep 3
/etc/X11/prefdm &
success "Display manager startup"
if [ $ret = 0 ]; then
touch /var/lock/subsys/dm
Then in /usr/share/config/kdm/kdmrc I put the following changes in;
In section [General] change;
Further down, add the ServerCmd line for [X-:0-Core]
# Enable automatic login on this display. USE WITH EXTREME CARE!
# Default is false
# The user to log in automatically. NEVER specify root! Default is ""
# The password for the user to log in automatically. This is NOT required
# unless the user is to be logged into a NIS or Kerberos domain. If you use
# it, you should "chmod 600 kdmrc" for obvious reasons. Default is ""
# See above
ServerCmd=/usr/X11R6/bin/X0 :0 -audit 0 -novtswitch -sharevts -isolateDevice PCI:2:00:0 -auth /var/log/:0.Xauth -layout Seat0
Create or modify [X-:1-Core] an add the ServerCmd line for the
second card.
ServerCmd=/usr/X11R6/bin/X1 :1 -audit 0 -novtswitch -sharevts -auth /var/log/:1.Xauth -layout Seat1
Anyway, It looks KDE looks good and that multiseat mystery is now solved. (Obviously of you are using gdm or Xdm, modify their configurations too). Now the only problem I'm seeing that is left to solve is the Up arrow key being misinterpreted and launch ksnapshot.
#35.1.1 - Chuck Sites said:
2006-03-01 19:27 - (Reply)
I've finally solved the keyboard "up-arrow" problem with the two patches for xorg 6..9 found at https://bugs.freedesktop.org/show_bug.cgi?id=5696
mentioned earlier. If your a mandriva 2006 user, I've placed the patched Xorg source files at ftp://ftp.cvip.uofl.edu/pub/linux/multiseat. Once done, you need to run 'drakkeyboard' and set the brand of the keyboard to "Evdev". And that's it. Cool stuff.
#22.214.171.124 - Chuck Sites 2007-03-15 20:51 - (Reply)
Just to update the up-arrow issue with KDE; that anoying evdev bug has been fixed in KDE 3.5.6.
#188.8.131.52.1 - Mithnae 2007-03-21 09:19 - (Reply)
Unfortunatelly, not in kde-redhat builds.
I'm running the FC6 with kde from kde-redhat version 3.5.6-4.fc6 and up arrow proble persists, giving the same output though xev as before with stock KDE 3.5.5 from FC6 :-(((. ANy ideas?
#36 - Louis Zeun 2006-03-01 02:37 - (Reply)
Thank you for this guide. It has been pretty helpful so far in getting my multi seat setup working. I just about have a 2 seat setup working, but I am having a couple of issues.
This setup consists of one seat being an agp and pci video card setup (radeon and s3virge) and the second seat being the TVOut on my PVR 350. This is running on FC4 + xorg6.9
Everything about my setup appears to be working until I actually get into xorg. It appears that it is still drawing the console onto the desktop. But it is not readable, but it is accepting my keystrokes. So everything I type in X is also typed at the console. Like I said it is not readable. All of these artifacts look like 3 horizontal lines, but it is obvious that is going along with what I type. I also get mouse artifacts drawn there. The weird thing is that it only happens on my primary card (agp), but I also see mouse movement and keystrokes appear that were done from the other seat.
What I did to stop this was remove -sharevts from the line that starts my dual video setup in my gdm.conf file. It was fixed, but in exchange I received another issue. Whenever I press control+c from either seat it kills X on the dual video setup and drops to the login (gui). Everything looks great without the console artifacts, but it is completely unusable because I can not copy text with the keyboard. Kind of sucks.
After reading through this guide several time I also tried to use the -isolateDevice switch, but I recieved similar results (w/ and w/out -sharevts). The only difference with -isolateDevice was that my dual video setup was only a single (the agp).
Here are the lines in my gdm.conf that pertain to this:
# Custom Start
name=dualvideo server
command=/usr/X11R6/bin/X -novtswitch -layout dualvideo :1
name=TVOut server
command=/usr/X11R6/bin/X -novtswitch -sharevts -layout TVOut :0
# Custom End
I have the TVOut initializing first because the dual video setup was freezing when it was started first. Not sure why switching them around doesnt cause it to freeze anymore.
Here is my xorg.conf (stripped down to remove comments):
Section "ServerLayout"
Identifier "dualvideo"
Screen "Screen0" 0 0
Screen "Screen1" LeftOf "Screen0"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Section "ServerLayout"
Identifier "TVOut"
Screen "Screen2" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
Section "Module"
Load "dbe"
Load "extmod"
Load "fbdevhw"
Load "glx"
Load "record"
Load "freetype"
Load "type1"
Load "dri"
Section "ServerFlags"
Option "Xinerama" "true"
Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "Device" "/dev/input/event0"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
Section "InputDevice"
Identifier "Keyboard1"
Driver "evdev"
Option "Device" "/dev/input/event2"
Option "XkbLayout" "us"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mouse1"
Option "Buttons" "12"
Option "ZAxisMapping" "11 12"
Option "Resolution" "800"
Option "Emulate3Buttons" "no"
Option "Name" "Logitech MX1000 USB PS/2 Mouse"
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mouse0"
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Samsung SyncMaster 955df"
DisplaySize 360 270
HorizSync 30.0 - 85.0
VertRefresh 50.0 - 160.0
Option "dpms"
Section "Monitor"
Identifier "Monitor1"
HorizSync 30.0 - 85.0
VertRefresh 50.0 - 100.0
Section "Monitor"
# Identifier "NTSC Monitor"
Identifier "Monitor2"
HorizSync 30.0 - 68.0
VertRefresh 50.0 - 120.0
ModeLine "720x480" 34.6 720 752 840 928 480 484 488 504 -hsync -vsync
Section "Device"
# Identifier "Hauppauge PVR 350 iTVC15 Framebuffer"
### change fb1 to whatever your card grabbed
### converted from hex to decimal
# lspci says 00:08.0
### More examples
#BusID "PCI:0:10:0" # lspci says 00:0a.0
#BusID "PCI:1:14:0" # lspci says 01:0e.0
#BusID "PCI:0:5:1" # lspci says 00:05.1
Identifier "TVOUT0"
Driver "ivtvdev"
Option "fbdev" "/dev/fb1"
Option "ivtv" "/dev/fb1"
### change the BusID to whatever is reported by lspci,
BusID "PCI:0:15:0"
Section "Device"
Identifier "Videocard0"
Driver "radeon"
VendorName "Videocard vendor"
BoardName "ATI Radeon 7200"
BusID "PCI:1:0:0"
Section "Device"
Identifier "Videocard1"
Driver "trident"
VendorName "Videocard vendor"
BoardName "Trident 9660"
BusID "PCI:0:11:0"
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
# Modes "1280x960" "1280x800" "1280x1024" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
Viewport 0 0
Depth 24
Modes "1280x800"
Section "Screen"
Identifier "Screen1"
Device "Videocard1"
Monitor "Monitor1"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768"
Section "Screen"
Identifier "Screen2"
Device "TVOUT0"
Monitor "Monitor2"
DefaultDepth 24
DefaultFbBPP 32
SubSection "Display"
Depth 24
FbBPP 32
Modes "720x480"
Section "DRI"
Group 0
Mode 0666
I think I am very close to getting this working. I can taste it in fact. I am a bit of n00b, so I may have made some obvious mistakes in my config or my terminology that I am just not catching. Any help is very much appreciated.
#37 - James Alday said:
2006-03-02 18:00 - (Reply)
This tutorial is a great help. Kudos to Christ for posting it.
I'm having some trouble getting a multihead system up and running. I was using the backstreet ruby/faketty method until I bumped into this tutorial. It seems I'm having the same type of problems though. I've read through this and other tutorials, but something is still missing...
My setup:
Mandriva 2006.0
1 AGP eVGA nVidia GeForce MX 4000, 128MB
3 PCI eVGA nVidia GeForce MX 4000, 64MB
1 PS/2 Mouse
1 PS/2 Keyboard
3 PS/2 -> USB Converters with PS/2 Mouse/Keyboard attached
4 random monitors
The PS/2 -> USB Converters don't seem to be giving me too much trouble, although I'll probably have to fiddle with it a bit more once I can get this running...
I've installed the nVidia drivers (version 1.0-8178), tweaked my gdm.conf and xorg.conf files (which I can post if so desired), and set up aliases for X0-X3. When I do a plain old startx, I get one screen up (which is what I'm on now) and working fine. startx -- -layout xinerama works fine as well. i get all four screens as one desktop and it's beautiful. any attempt at running seperate servers always fails...
I've been getting the problem where the last screen in the list (x3) will run and the others lock up. i thought it was a driver issue, as the other note by chris says), but i tried reinstalling the nvidia driver and that didn't seem to work. is there something else i need to do once it is installed to get it working correctly with this setup?
i'm almost there, but not quite yet... thanks for any advice.
#37.1 - Chuck Sites said:
2006-03-04 12:25 - (Reply)
Jim, Can you ssh into your machine after X crashes? If so, can
you do a 'dmesg' or 'cat /var/log/messages' to see what is crashing? I believe there is a bug in the Nvidia drivers that deals with the way they manage interupts. I'm having a problem too when the person on X :1 (of a two seat config) logs out it crashs the nvidia drivers. Seat X :0 works fine. For me, at least, everything works fine as long as the user on X :1 never logs out.
This is what is happening on my system as reported by dmesg;
Unable to handle kernel NULL pointer dereference at 0000000000000218
PGD 24cab2067 PUD 2016e6067 PMD 0
Oops: 0000 [1] SMP
Modules linked in: faketty nvidia sg sr_mod nfsd autofs4 raw md5 ipv6
nfs lockd nfs_acl sunrpc vmnet parport_pc parport vmmon snd_seq_dummy
snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss
snd_mixer_oss snd_intel8x0 snd_ac97_codec snd_pcm snd_timer
snd_page_alloc snd soundcore af_packet forcedeth floppy eth1394 video
thermal tc1100_wmi processor fan container button battery ac ide_cd
ohci1394 ieee1394 loop supermount bt878 bttv video_buf firmware_class
i2c_algo_bit v4l2_common btcx_risc tveeprom i2c_core videodev joydev
usbmouse usbhid usbkbd tsdev ehci_hcd ohci_hcd usbcore evdev xfs
exportfs sd_mod sata_nv libata scsi_mod
Pid: 23922, comm: X1 Tainted: P 2.6.12-12mdksmp
RSP: 0018:ffff810144433c78 EFLAGS: 00010292
RAX: 0000000000000000 RBX: ffff8101ff2ea6c0 RCX: 0000000000000000
RDX: 0000000000000002 RSI: 0000000000000000 RDI: ffff810152f92800
RBP: ffff810152f92800 R08: 0000000000000000 R09: 80000000d0005063
R10: 8000000000000073 R11: ffffffff80302510 R12: 0000000000000000
R13: 0000000000000000 R14: ffff8102051db000 R15: 0000000000000000
FS: 00002aaaab3756e0(0000) GS:ffffffff804d5d00(0000)
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000218 CR3: 00000001fd76a000 CR4: 00000000000006e0
Process X1 (pid: 23922, threadinfo ffff810144432000, task
Stack: ffff8101ff2ea6c0 ffff8101ff2ea6c0 ffff8102051db000
ffff810005fe7800 ffff810005fe7800 0000000000000000
ffff8102051db000 ffff8102051db000
Call Trace:{:nvidia:_nv007683rm+54}
Code: 48 83 b8 18 02 00 00 00 74 0c 83 b8 04 02 00 00 00 74 03 49
RIP {:nvidia:_nv008142rm+80} RSP
Best Regards,
#38 - Bruce 2006-03-07 11:13 - (Reply)
Would it be possible to run wmware for one or more of the seats, so to allow some users to use MS Windows?
I unerstand this would require a bit more memory and horsepower.
#38.1 - Chris Tyler 2006-03-07 11:18 - (Reply)
Pretty much any application that will work with single-seat X will work with multi-seat X. That should include VMware, though I don't have it installed here so I can't confirm it.
#38.2 - James Alday said:
2006-03-07 14:59 - (Reply)
I happen to know a developer who is using multiseat systems to connect to windows terminal services. they primarily run linux (mandriva), but connect to a terminal service server when a windows connection is needed. i haven't tried it yet myself, but i know it does work.
#39 - Chris Tyler 2006-03-08 09:41 - (Reply)
We need to get to the bottom of why, in some configurations, starting screen N+1 causes screen N to become frozen. Typically, killing screen N+1 unfreezes screen N. I know there's been some traffic on the X.org mailing list about this, but since we (all you fine folks reading this!) have a wide range of hardware configs perhaps we can help zero in on the cause of the problem.
What I suggest as a starting point is this: if you are experiencing this situations, please:
- Run 'strace' against each X server you start.
- Post the tail part of the strace log for the servers that have frozen at the time that they are frozen (i.e., what the server is doing when it is unresponsive).
- Note what effect, if any, the IsolateDevice directive had on the symptoms.
I have experienced this issue with 3xNvidia + 1xMGA card, but don't have that hardware configuration available at the moment. I'll try and build it again soon and see if I can recreate the issue. Meantime, any reports from others would be appreciated. It would be nice if we could hand the X.org developers a nice tidy report saying "this is exactly where things freeze".
#39.1 - James Alday said:
2006-03-08 09:47 - (Reply)
I was having this trouble, as well as the trouble you documented with the nVidia cards and the last X server being the only one working. I have 4 nVidia GeForce MX 4000 cards (1 AGP, 3 PCI). I'd send you a log, but it's working now and I don't intend to break it again If I do, I'll be sure to log it though. I've just been messing around with my xorg.conf file and eventually the settings worked... I'm still having trouble with some of the keys on my keyboards, but the video seems to be fine. I did try putting the "IsolateDevice" option, and that's how it's set up now. Don't know if that has anything to do with it, more testing is necessary.
#39.2 - Chuck Sites 2006-03-08 18:51 - (Reply)
I'll see what I can do. My symptoms sound very much like the N+1 problem. When the last user (in my case X :1) logs out it crashes X server N (X :0), and panics the kernel deep inside Nvidia's drivers and specifically dealing with interupts. On the PCI-E cards, the nvidia drivers are sharing the same IRQ, which could be part of the problem if they handle interupts as a generic PCI device.
See: /usr/src/linux/Documentation/PCIEBUS-HOWTO.txt. I've reported the problem to Nvidia but have yet hear back from them.
Unfortunately I can't seem to force interupts to be on separate IRQs.
Anyway, One thing I did find that other Multiseat users might find useful is another way to setup the ServerCmd options. My new kdmrc server commands (/usr/share/config/kdm/kdmrc) look as follows:
ServerCmd=/usr/X11R6/bin/X0 :0 vt7 -audit 0 -sharevts -isolateDevice PCI:2:00:0 -auth /var/log/:0.Xauth -layout Seat0
and for seat X:1
ServerCmd=/usr/X11R6/bin/X1 :1 vt8 -audit 0 -sharevts -auth /var/log/:1.Xauth -layout Seat1
Using the vt7 -sharevts and vt8 with the evdev keyboards allows the special server short-cut keys to work. Like CTRL-ALT-BACKSPACE and CTRL-ALT-F1 for terminal session. But only on Seat 0. Still that is usefull to have. I've not had any problem with that interfering with seat 1. Seat 1, of course, because of the N+1 bug just can't log out.
#39.3 - Chuck Sites said:
2006-03-15 15:46 - (Reply)
I did the strace Chris was asking for, but it doesn't look like that is going to be helpful. To install strace, I modified my kdmrc to the following;
ServerCmd=/usr/bin/strace -x -f -ff -o/tmp/Seat0 /usr/X11R6/bin/X0 :0 vt7 -audit 0 -sharevts -isolateDevice PCI:2:00:0 -auth /var/log/:0.Xauth -layout Seat0
ServerCmd=/usr/bin/strace -x -f -ff -o/tmp/Seat1 /usr/X11R6/bin/X1 :1 vt8 -audit 0 -sharevts -auth /var/log/:1.Xauth -layout Seat1
Unfortunately, while X-windows does start, kdm is never launched and so the screens just show up blank only showing the mouse cursor. If anybody has advise on getting a strace to continue beyond the startup please post it.
On another front, I was looking at the kernel crash of the fellow who created the 6 seat hydra monster using Nvidia PCI cards; see; ( http://linuxgazette.net/124/smith.html ) and for the crash-dump; ( http://www.linuxtoys.org/multiseat/hydra_hang.txt ).
Interesting enough, his crash follows the same sequence of calls to the nvidia kernel driver as mine even with different hardware. (1 AGP and 5 PCI cards vs. 2 PCI-E).
I'm now starting to shape a theory on what is happening. I believe, the nvidia kernel driver were not designed to be operated independently, and when a user other than the one on the primary video card logs out, it starts the process of re-initializing the adapters, and since the primary adapter is in use, it corrupts some tables and causes a kernel panic. I've been putting in some debug code into the nvidia drivers to see how the cards initialize and re-initialize. What I'm seeing is that the kernel driver initializes the primary video adapter last. In my case; Seat1 is initialized first, and then Seat 0. I don't think this has to do with Xorg at all. Perhaps a stable multiseat configuration would be one with one Nvidia and one ATI adapter where the two device drivers remain separated and isolated, each handling thier own cards.
I think we need to talk to Nvidia and report the problem and perhaps they will make a change to thier drivers. Post a report on Nvidia's linux
discussion board.
#39.3.1 - Chris Tyler 2006-03-15 16:05 - (Reply)
Chuck Sites wrote:
Perhaps a stable multiseat configuration would be one with one Nvidia and one ATI adapter where the two device drivers remain separated and isolated, each handling thier own cards.
Except .... that my current configuration is only stable when using nVidia cards exclusively. When I add an ATI card, it causes problems (under backstreet-ruby and X11R6.9) -- likewise, an MGA (Matrox) adapter gives problems with X11R6.9 but worked with backstreet-ruby. The (admitedly older) ATI and Matrox cards are somehow fighting between themselves.
There are definitely some ghosts in the card init code, but it's a nightmare trying to figure out where the problems in when you've got the kernel and X.org PCI code, video card driver code, and the card BIOSes all in play.
#184.108.40.206 - Chuck Sites said:
2006-03-15 17:29 - (Reply)
Humm... Well scratch that idea. Then it must be how X is calling for the reinitialization of the video adapter. It sounds to me like any adapter that is not the primary video will cause the problem. I've not had any problem with seat 0 (my primary vga device) on my rig and reseting it with a CTRL-ATL-BACKSPACE work 100%. Doing the same on Seat 1 will consistenly kernel opps. To add more to the mystery, in mandriva you can start and stop the display manager using /etc/init.d/dm {start | stop}. Doing an `/etc/init.d/dm stop; /etc/init.d/dm start' has no problem shutting down and starting up kdm (or gdm). It might be the order that X is stopped and started. I would be interested if X0 (or who ever is the primary VGA) is disabled in kdmrc (or gdm.conf), and X1 is run, will logging out of X1 still crash?
For the strace files; i've placed these in our ftp site at;
They are an interesting read but I didn't see anything out of the ordinary.
#22.214.171.124.1 - Richard Unger 2006-03-16 04:05 - (Reply)
I have a more or less stable setup with mixed ATI and NVIDIA cards:
Tyan 7505 board, Nvidia GF4MX AGP + ATI Radeon 7000
Kernel 2.6.15
It works well, both seats can log in and out, you can run 3D stuff on the Nvidia seat, play videos, etc, etc...
HOWEVER: To get it working wasn't that simple:
1) Even though the Radeon card should be well supported, radeonfb was not initializing it, it was detecting 0 memory. I added a hack to make it detect 64MB regardless, and then radeonfb started. I never really got it to display a working framebuffer though...
2) X would not start multihead with radeonfb loaded - that's not surprising, but what IS weird is that X also would not start unless radeonfb HAD BEEN loaded. I had to load the radeonfb module and rmmod it in order to get X to start...
Given all this weirdness I think it has to do with the initialization of the video cards regardless of whether it is X, the framebuffer or the bios doing the initializing...
The problem (In my completely unqualified opinion) is something to do with the fact that video initialization is pretty low level... The PCI bus only permits one graphics device, for example, and AFAIK the BIOS also only knows about one. Initialization can require access to INT10 or real mode or something like that, so it might not be easily possible for a second device that was not thus configured by the BIOS.
I'm not sure, I'm just starting to read up on all this, but it is looking like the x86/PCI/BIOS Architecture was not really designed with multiple video boards in mind, and that is the main problem.
#188.8.131.52.2 - Aivils 2006-04-12 02:52 - (Reply)
I have workaround against video initialization. This patch disable SIGHUP .
User can logout from windows manager without video restart.
Ctrl-Alt-Backspace kills server anyway.
Bugs: After 10-50 login users can type username / password, but X server
refuses login until reboot.
diff -Nurp xc/programs/Xserver/dix/dispatch.c xc.new/programs/Xserver/dix/dispatch.c
--- xc/programs/Xserver/dix/dispatch.c 2004-12-13 03:23:05.000000000 +0200
+++ xc.new/programs/Xserver/dix/dispatch.c 2005-12-28 10:40:02.000000000 +0200
@@ -483,7 +483,6 @@ Dispatch(void)
- dispatchException &= ~DE_RESET;
#undef MAJOROP
diff -Nurp xc/programs/Xserver/dix/main.c xc.new/programs/Xserver/dix/main.c
--- xc/programs/Xserver/dix/main.c 2004-12-08 08:02:34.000000000 +0200
+++ xc.new/programs/Xserver/dix/main.c 2005-12-28 10:45:00.000000000 +0200
@@ -439,7 +439,11 @@ main(int argc, char *argv[], char envp[
FatalError("could not create connection block info");
- Dispatch();
+ do {
+ dispatchException &= ~DE_RESET;
+ Dispatch();
+ ResetWellKnownSockets();
+ } while (dispatchException & DE_RESET);
/ Now free up whatever must be freed */
if (screenIsSaved == SCREEN_SAVER_ON)
#220.127.116.11.3 - Aivils 2006-04-12 02:59 - (Reply)
I have workaround against video initialization. This patch disable SIGHUP .
User can logout from windows manager without video restart.
Ctrl-Alt-Backspace kills server anyway.
Bugs: After 10-50 login users can type username / password, but X server
refuses login until reboot.
diff -Nurp xc/programs/Xserver/dix/dispatch.c
--- xc/programs/Xserver/dix/dispatch.c 2004-12-13
03:23:05.000000000 +0200
+++ xc.new/programs/Xserver/dix/dispatch.c 2005-12-28
10:40:02.000000000 +0200
@@ -483,7 +483,6 @@ Dispatch(void)
- dispatchException &= ~DE_RESET;
#undef MAJOROP
diff -Nurp xc/programs/Xserver/dix/main.c
--- xc/programs/Xserver/dix/main.c 2004-12-08
08:02:34.000000000 +0200
+++ xc.new/programs/Xserver/dix/main.c 2005-12-28
10:45:00.000000000 +0200
@@ -439,7 +439,11 @@ main(int argc, char *argv[], char envp[
FatalError("could not create connection block info");
- Dispatch();
+ do {
+ dispatchException &=
+ Dispatch();
+ ResetWellKnownSockets();
+ } while (dispatchException & DE_RESET);
/ Now free up whatever must be freed */
if (screenIsSaved == SCREEN_SAVER_ON)
#22.214.171.124.3.1 - Chris Tyler 2006-04-12 07:57 - (Reply)
That's an interesting patch. Have you sent it to X.org?
(Some systems don't have any problem being restarted, though. I wish we could figure out why some do and some don't, that will give us a big clue).
#184.108.40.206.3.1.1 - AIvils 2006-04-14 01:34 - (Reply)
No. This patch is suspicious. It touch X security. Who knows is X server
secure enough or not after patch applay? We got no 1 replay from Xorg mailing list - video adapter is reinited on SIGHUP for security reason.
Of course die-on-X-restart bug is not wide spreaded, but pop up only
sometimes with specific hardware, mostly Nvidia.
Michael Pardee at DEC-2005 send to Nvidia 3 user system, which
log in/out every 14 sec. According Michael Pardee Nvidia 8756 fixed
crashes of multiuser system even it is not notified in the changelog.
We must hope so!
#18.104.22.168.184.108.40.206 - Aivils 2006-04-19 04:49 - (Reply)
This patch is not necessary for Nvidia closed source driver version 8756.
At least my multi user system became rock stable
#40 - James Alday said:
2006-03-16 13:48 - (Reply)
Well, I haven't worked out all of the kinks yet, but I have my system up and running on 4 heads (thanks to Chuck Sites for the Xorg code). I'm sure I'll have more questions on working out these problems, but for now I figured I'd open up a whole 'nother can of worms...
Has anyone played around with audio or other peripherals? I tried plugging all of my keyboards/mice into a USB hub, which worked fine until reboot when all the ports got reassigned to different physical addresses. I'm wondering if I had four seperate hubs to plug mice and keyboards into if it would solve that problem. Then I could possibly point to the right hub instead of the right port on the right hub. This would allow me to plug a usb audio device into the hub for use with that particular seat. It would also allow people to plug in usb hard drives or flash memory devices. But from what i've read that would also allow anyone on the system to read such devices. This might not be a problem in some settings, but not everyone will want to share their hard drive with three other people, especially in a lab setting.
Is it possible to mount a drive that is only accessible by certain users? I'm not sure what the mount procedure is for a usb device, but maybe it could be mounted under the user's home directory or something similar so that it is inaccessible to those without the proper permissions (the user or admin). Some users may also need to have access to a burner to backup certain data or whatnot. It'd be nice to have some way to give certain users what they need without opening their hardware to other users.
Has anyone started playing around with this stuff, or are we all still working on getting our up arrows to work, and keeping our video cards form exploding?
#40.1 - Chuck Sites said:
2006-03-16 16:57 - (Reply)
I don't know about everyone else but I'm still playing around with exploding video cards . I haven't got that far, but I think it's easier than you might think. Do a 'man udev' for a quick briefing on hotplug devices. You can do some really interesting tricks to assign a specific device to user based on the device attributes. Then check /etc/udev and look at the current devices supported. It's worth starting there with a few test scripts.
#40.1.1 - Chuck Sites said:
2006-05-22 11:52 - (Reply)
I just wanted to bring everyone up-to-date on my system now that some time has passed. This past Friday, I was finally able to install the new Nvidia drivers version 1.0-8756 after an uptime of nearly two months with the broken logout problem. I just told the student on that terminal just to never log-out, and he was OK with that. The good news is the new driver seems to have fixed the last logout problem for me. After all that work, I have got to say that I am very pleased.
Best Regards. And thanks Chris for the GREAT blog.
#40.2 - Aivils 2006-04-12 02:24 - (Reply)
Device files for each X :
Multiple sound cards runs stable.
#40.2.1 - heli 2006-09-13 17:04 - (Reply)
I am trying to get multiple sound cards working with my multi seat on FC5. But not quite sure on how can i do that. Any help will be appreciated.
#41 - Marek Kroemeke 2006-03-28 12:26 - (Reply)
What about having only one card ? - e.g that from laptops - most of them have external monitor connector.
I'm fighting with such configuration at the moment and the problem is that i must run 2 X servers yes ? but when i'm using only one card then first xserver will use the same card as second one - is it even possible ??
#41.1 - Chris Tyler 2006-04-06 09:29 - (Reply)
Dual-output video cards don't work well with multiseat because it would require one device to be accessed by two X servers. This can be done with the Xnest approach, though (see above).
#41.1.1 - Aivils 2006-04-12 02:19 - (Reply)
Dual-output video cards already have commercial modified X server, which
support keyboard / mouse attached to each screen.
#42 - robin 2006-04-16 06:09 - (Reply)
anny news or liks or help on how to do a single card multi seat install?
i have 2 pcie nvidia 6600's in one pc wich i would like to use as 4 diferent seats
i'm not seeing how to have diferent mouse/keyboard for a Xnest session and I'm having trouble installing Xephyr
I'm installing it on ubuntu (I wanted to try Ubuntu, but I'm more familiar with gentoo, fedora and some other distro's)
anny help would be greatly apreciated!
btw having no problem running dual seat with 4 monitors etc.
#42.1 - robin 2006-04-17 04:31 - (Reply)
now checking out http://www.c3sl.ufpr.br/multiterminal/howtos/howto-xephyr-en.htm but it's not working corectly, perhaps precompiled binaries won't work with amd64 etc.. i get a command not found, but everything is were it should be!
#43 - Don Pedro 2006-04-27 04:36 - (Reply)
I got new issue while working upon kernel 2.6.16. First of all there is a problem to force fglrx ati driver working under 2.6.16 but that solved by several ways. The point is dualhead not works under these conditions (fglrx driver for ATI radeon card) and kernel 2.6.16. Both X-server starting and after the server with ATI video card have been started the second one halts - blank screen only. Does anyone meet the same problem?
#44 - Soewono Effendi said:
2006-05-20 16:54 - (Reply)
Hi all,
please have a look at MoreUbuntu: Multiseat Xorg powered by Linux-VServer. (https://wiki.ubuntu.com/MoreUbuntu).
You can reboot/restart/shutdown your Xorg session without any problem.
I'm looking forward to see more users of multiseat-Xorg, so that Xorg will hopefully provide feature to "utilize" each head on multihead graphic card independently. (Any hint regarding this is realy appreciated).
BTW: Why is it called MoreUbuntu?
Since Ubuntu allows me to test and set this up easily, and also to show my support to Ubuntu, I called the project MoreUbuntu.
It is also a wish to see all Ubuntu derivatives to be able to run side by side on one computer.
I have Ubuntu and Kubuntu setup on one machine, which was showed on LinuxTag2006. Enjoy our picture gallery at http://gallery.linux-vserver.org/
Linux-VServer is worth to try, and you have no performance lost at all.
best regards.
#44.1 - Ramiro Blanco said:
2006-06-07 19:39 - (Reply)
How did you manage to start the vserver machines on each seat? Did you set it on gdm.conf?
#44.2 - flinx said:
2007-11-23 10:09 - (Reply)
Hi Soewono, can you, please, contact with me (email@example.com). We really need your help. We want to use vserver multiseat in school. Thank you!
#45 - H3ndrik 2006-05-24 09:25 - (Reply)
There is a mistake in the keyboard configuration!
In /etc/X11/xorg.conf
It has to be:
Option "InputDevice" "/dev/input/eventX"
instead of Option "Device" "/dev/input/eventX"
Otherwise it will not run (on debian based systems?) !
#45.1 - Chris Tyler 2006-05-24 15:46 - (Reply)
There's apparently a few versions of that driver going around. In the one I have, the correct line is 'Option "Device" "/dev/input/eventX" ' ... I just looked at my running xorg.conf to be sure.
#46 - Zhang Weiwu 2006-06-04 09:22 - (Reply)
I worked two day on trying to make a multi-seat system work, it shows that this is not a simple job and may not be worthy if you have the option to buy some X terminals, which is the weakend and usual way of sharing computation power / memory.
I started from trying to get two cards work together. First two PCI cards (Voodoo Banshee cand and SiS 300. ) can work togher quite stable. I tried one whole day to make it happen, one PCI card must be launched with -isolateDevice parameter and anohter one MUST NOT use -isolateDevice.
Later I added an Nvidia card (using nvidia drive rather then nv) on the AGP slot wishing to make a 3 heads machine. This time I am not lucky, in the best case only two of them work. The usual problem is some seats works ok and hangs after a few seconds when another one begin to work.
I am not sure if it is dangerous to mix AGP/PCI cards. I took a hard experiment today. I am very curious that if I start the X servers one-by-one, they all work fine, if I start them all with GDM usually one or two of them hangs. Which seats hangs is always related to the use of -isolateDevice. I tested all possibilities:
Seat0 = Nvidia
Seat1 = SiS
Seat2 = Voodoo
isolateDevice used for seat0
seat2 works, seat1 hangs, seat0 hangs
isolateDevice used for seat1
seat2 works, seat1 hangs, seat0 hangs
isolateDevice used for seat2
seat2 works, seat1 works, seat0 hangs
isolateDevice used for all
seat2 hangs, seat1 hangs, seat0 keyok
isolateDevice used for seat1 & seat2
seat2 works, seat1 works, seat0 works with screen wrapped up
isolateDevice used for seat0 & seat1
seat2 hangs, seat1 hangs, seat0 works
isolateDevice used for seat0 & seat2
seat2 works, seat1 works, seat0 hangs
isolate not used
seat2 works, seat1 hangs, seat0 hangs
To make it simple: no way to make 3 cards work together.
I am not sure if I use one single brand for all video cards I can save myself from more trouble or not., need to ask the real professionals.
#47 - Kai Schmidt said:
2006-06-06 09:17 - (Reply)
I have a 2-seat setup running with out-of-the box kubuntu dapper 6.06, including xserver-xorg-input-evdev packet for the non-standard evdev driver. The rest was putting up xorg.conf and kdmrc.
Here is my working config:
I mainly followed this howto (thanks a lot) but have some different parts too:
- I used only evdev for both mouse and keyboard
- I used "Phys" option to describe mice|keyboards (Use Name if you can, worked also) [see man evdev]
- I have a PS/2-USB-converter. A direct (USB-) connect allows lspci better readable "Name"s
Two user can log in with kdm, bring up KDE 3.5.3 and work a whole day! So that behaves stable.
That is: [boot PC to console mode; start kdm; both users log in and work; shutdown PC] works fine.
Could be better:
1. I have to manually start "/etc/init.d/kdm start", otherwise seat0's kdm falls down after some 10 seconds
2. UserX can not log out without bringing the other down. (kdm crashes, Xorg is still up)
3. my text-consoles 'are gone' when I bring down "kdm stop". X[0|1] is no more running
4. REstarting does not work (have to reboot). Behaves as item 1.
Good luck and hints are welcome
#48 - Hank Barta 2006-06-15 13:22 - (Reply)
Any suggestions on running a second server without a keyboard? I've searched for xorg.conf and X comand line options to tell the server there is no keyboard without any luck. I have used the " -novtswitch -sharevts " X options to keep the secondary server from shutting off the primary server. (Thanks!) But now when I run the secondary server, the keyboard for the primary server gets wonky. It misses keystrokes and then latches on to one that it autorepeats until the server is restarted. (At that point, stopping the secondary server doesn't even solve he problem.) It shares the mouse, but that seems not to be too big a problem.
Is there a keyboard equivalent of /dev/null that I could configure that would keep the second server happy (and leave the primary server alone?)
BTW, the use of this is to use a second video card to drive an HDTV to play videos and such, so I really prefer that it be completely independent of the primary server and multi-user gets me pretty close to that.)
#49 - Hank Barta 2006-06-17 10:10 - (Reply)
Section "InputDevice"
Identifier "NoKeyboard"
Option "CoreKeyboard"
Driver "void"
Section "InputDevice"
Identifier "NoMouse"
Option "CorePointer"
Driver "void"
I posted earlier (still not approved) that I was looking for a way to not use a keyboard/mouse or specify a null keyboard/mouse. I'm running the server strictly for the display. The key is to use the driver "void" as below and the server hapily starts up without a mouse and keyboard.
Section "ServerLayout"
Identifier "Default Layout"
Screen "HDTV Screen" 0 0
Option "AllowMouseOpenFail" "yes"
Option "SingleCard" "true"
Option "IsolateDevice" "PCI:0:10:0"
InputDevice "NoKeyboard"
InputDevice "NoMouse"
#49.1 - Chris Tyler 2006-06-17 11:19 - (Reply)
Hank -- sorry that your earlier message was not approved, I've been under massive comment spam lately (despite the captcha) and somehow I missed your messasge. My apologies.
Thanks for the tip on the "void" driver -- useful to know!
#49.1.1 - Hank Barta 2006-06-22 11:44 - (Reply)
No worries. Thanks for providing this resource. It provided some of the information that I needed. And I was glad to be able to contribute some additional information.
#50 - The Famous Brett Watson said:
2006-06-22 06:12 - (Reply)
I've succeeded in producing a quite functional and stable multiseat system under Ubuntu 6.06 using information provided here, plus a little inventiveness of my own. The extra configuration steps I take may assist those who are having problems with X resetting when the first user logs out. Full documentation of this successful experiment has been posted on the Ubuntu wiki at http://help.ubuntu.com/community/MultiseatX
My thanks to Chris and others for providing the groundwork here.
#51 - xaviero 2006-06-28 10:30 - (Reply)
i'm using ubuntu 6.06 Desktop LTS,
what else should i need to build a linux multi terminal with this distro , beside Xorg ? is it work ?
planning to use PCI VGA ATI R128 32mb on it... plz give some enlitghment, i am a newbie to build a linux multi terminal...
#52 - Lucas Teske 2006-07-10 16:48 - (Reply)
Hi, i tryed to run MultiSeat with a Radeon X550, but i cant get sucess:
Its works with one card? The xinerama runs perfectly, i have one card with 2 Outputs (One DVI and other VGA)
The First X starts, but the second no..
I am using one Radeon X550, One Keyboard (later 2), 2 Mouses (1 PS/2 other Serial) 2 Monitors (IBM G40, and a Samsung SyncMaster 550v)
My Configs:
Section "ServerLayout"
Identifier "seat0"
Screen 0 "screen0" 0 0
InputDevice "mouse0" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Section "ServerLayout"
Identifier "seat1"
Screen "screen1"
InputDevice "mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Section "Files"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/75dpi"
FontPath "/usr/share/fonts/100dpi"
FontPath "/usr/share/fonts/Type1"
Section "Module"
Load "dbe"
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
Load "dri"
Load "glx"
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "abnt2"
Option "XkbLayout" "br"
Section "InputDevice"
Identifier "mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2" # IntelliMouse PS/2
Option "Device" "/dev/psaux"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons"
Section "InputDevice"
Identifier "mouse1"
Driver "mouse"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons"
Section "Monitor"
Identifier "monitor0"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Section "Monitor"
Identifier "monitor1"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Section "Device"
Identifier "video0"
Driver "fglrx"
BusID "PCI:1:0:0"
Section "Device"
Identifier "video1"
Driver "fglrx"
BusID "PCI:1:0:1"
Screen 1
Section "Screen"
Identifier "screen0"
Device "video0"
Monitor "monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
Section "Screen"
Identifier "screen1"
Device "video1"
Monitor "monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "800x600"
#52.1 - Richard Unger 2006-07-11 09:44 - (Reply)
That won't work using this Setup.
Each X Server grabs a whole video card. AFAIK there is no way to make an XServer handle just one port of a video card, leaving the other port to another XServer.
The XServer grabs the whole card, and then supports multiple screens or xinerama across the displays offered by that card. However, all screens are owned by the same XServer process, and thus by the same user in this case.
If you really want to use one card you have two options:
Some cards (Matrox) offer linux framebuffer drivers that can separate the different outputs of the card into seperate framebuffer (/dev/fbN) interfaces. You could then theoretically run the framebuffer based XServer twice, once on each framebuffer, and use evdev for the Input (mouse, keybaord) support. This only works if you can manage to get seperate framebuffers for the two displays operating on the same time (Matrox G450, I think).
You can use the Xephyr / XNest method, also described somewhere above, I think.
In this method you first run a standard X-Server in Xinerama mode across both screens. (it should even be ok to run this one without mouse/keyboard input - eg input none, but I'm not sure)
Within this XServer you run two further XServers, instances of XNest or Xephyr. XNest/Xephyr are "nested" XServers, ie XServers that can run within an X-Window of another XServer. These you each set up to occupy the whole area of one of the screens, and draw their input from evdev.
#52.1.1 - Zhang Weiwu said:
2006-08-12 12:14 - (Reply)
There might be another way!
I recently obtained an old Cirrus Logic GD 5480 card, dual head. Linux tell it as two separate device with two different PCI Bus ID. The first head is PCI:02:1:0 and second head is PCI:02:2:0.
I guess X runs in the way that it take control of all devices on one Bus ID, but this special card may allow runing two X servers on one card.
I cannot manage to make this card work yet, the second card never works, even when used in xinerama or configure X to only use the second head. This looks like a problem not related to multiseat. If I can make it work, then further I'll try configure multiseat.
#53 - Mathias Tausig 2006-07-13 08:18 - (Reply)
So far everything works great.
My only probelm is, that I'm not able to autologin two (preferably differnet) users via gdm.
Has anyone acomplished that?
#54 - Zhang Weiwu said:
2006-08-01 09:36 - (Reply)
A guide on how to make g450 dual-head card handle multiseat is available here. This article uses the most recent OS, Xorg and kernel, thus may be more helpful if you need g450 mutli-seat system now.
#55 - Mike Tinsay 2006-08-09 04:39 - (Reply)
I'm trying to run a 3-seat box using a builti-in AGP video (Via/S3) and 2 PCI Nvidia GeForce4 X 440B. I can get the AGP and one of the PCI cards to work, but when I start the 2nd PCI card, the system reboots.
I'm using Ubuntu 6.06 LTS.
#56 - josean said:
2006-08-28 13:32 - (Reply)
I am trying to get a multiseat system using only one card.
My environment:
Ubuntu 6.06
nVidia FX5200 Dual head (VGA + DVI) AGP
nVidia binary drivers (1.0.8762)
I am trying to use the VGA and DVI outputs of the same card to get the two heads. I achieve getting the two sessions individually. When I run the two X sessions simultaneously I get ugly errors:
(EE) NVIDIA(0): Failed to allocate video overlay
(EE) NVIDIA(0): ** Aborting **
(EE) Keyboard0-isa0060/serio0/input0: Don't know how to use device.
(EE) PreInit failed for input device "Keyboard0"
** glibc detected ** double free or corruption (!prev): 0x08246238 ***
Has anyone achieved to run a multihead system using dual-head cards? I know that is possible, since dual head cards are recommended in the closed source solution from http://userful.com/
#56.1 - Chris Tyler 2006-08-28 14:45 - (Reply)
There are two types of dual-head cards: ones that present each head as a separate PCI (/AGP/PCIe) device despite the fact that they are on one card, and ones that are a single PCI device with two outputs. Yours falls into the second category.
Since an X server must have exclusive control of a PCI device, you can't directly run two X servers on that type of card. However, you can run one X server that handles both cards, and then use two instances of the Xephyr server (http://www.freedesktop.org/wiki/Software_2fXephyr) as "nested" servers that display their output on the main (2-screen) X server.
#56.1.1 - josean said:
2006-09-08 19:11 - (Reply)
Hi again!
Good news: I finally achieved to have a dualseat system up and running using the Xephyr server
For all those interested in running such a system using only a dual-head AGP card , I have written a step by step tutorial. I hope it can save you lots of hours of looking for information and performing unsuccessful tests.
You can find the tutorial here:
Feel free to use the comment section for suggestions, ideas, and unexpected problems.
#56.1.2 - Xavier Vello 2007-01-01 09:40 - (Reply)
A lot of dual-head ATI cards expose two PCI addresses :
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (rev 01)
0000:01:00.1 Display controller: ATI Technologies Inc RV280 [Radeon 9200 SE] (Secondary) (rev 01)
Is there any hope to run two separate X servers and get two seat per card ? I plan to use two dual-head PCIe radeons to get 4 seats.
#18.104.22.168 - Chris Tyler said:
2007-01-02 11:29 - (Reply)
From the PCI IDs it looks like those are two functions of the same PCI addresses.
You could use the Xephyr approach on a card like that: run one X server that spans all of the video outputs, then run a Xephyr server on each screen.
(There's info on this approach on the web, and watch for info on this and other approaches on this site in a couple of months).
#57 - dan f said:
2006-09-11 09:36 - (Reply)
I have followed these directions and they appear to be perfectly accurate. Thanks, you made this easy.
I have a problem though. my onboard i810 always locks ps with
"EE) I810(0): Cannot read V_BIOS " errors
when the offscreen display turns on. I had it working in xinerama-style side-by-side configuration... any suggestions from anyone would be quite welcome. It looks like this might be an ongoing Xorg problem with dual-display and dual-seat i810 setups.
#58 - Heli 2006-09-13 13:48 - (Reply)
I have got multiseat working without any problem under FC5. I want to get audio working on this system. I have 2 audio cards but on whichever seat the login is done both the audio cards are recognized, and the second seat is not able to find any device. Can any one help me on this?
#58.1 - Chris Tyler 2006-09-13 17:48 - (Reply)
The way that Fedora (and most other current distros) handle console devices -- sound, CD rom, floppy, and so forth -- is really simplistic.
The problem on Fedora is that the ownership of the sound devices is changed when you login. I've added this line to /etc/profile to open up the permissions:
chmod a+rwx /dev/au* /dev/mix* /dev/dsp* /dev/snd/ /dev/vid
This permits any user to read/write from/to any sound or video-input device. This works OK for applications where you can direct the sound output to a device of your choosing -- such as XMMS -- but for other applications you may need to set environment variables to direct sound to the right speakers. Unfortunately, I haven't found a really good solution to this problem, and some apps -- Adobe Flash especially -- pretty much go to random speakers.
(I keep promising myself that someday I'll sit down and figure it out so that all of the sound apps go only to the right speakers -- but I haven't found the time yet).
#58.1.1 - heli 2006-09-13 18:08 - (Reply)
Thanks for the reply. So I am using Mplayer where i can it which speakers to use, by specifying -ao:alsa:device=hw=0.0 or -ao:alsa:device=hw=1.0, but now the problem is after putting the above line in /etc/profile it does not play sound on any of the login. on login1 it says device not found for 1.0 but plays fine with 0.0 - i still don't hear any sound and on login2 it still says device not found. Any idea what am i doing wrong. I really appreciate your help.
#59 - Fabian Steiner 2006-09-16 08:59 - (Reply)
We are running several multiseat systems (OS: Ubuntu Dapper) at school. So far almost everything works well and we are quite content with that setup.
In order to simplify some steps of the configuration we have written a set of python scripts.We parse /proc/bus/input/devices for a list of all the event devices we are interested in and poll them all until we receive key press / mouse events. Then the user is asked to press some keys on the first (second, third, etc.) keyboard/mouse. That's how we can find out a proper association of keyboard/mouse and display. This is quite helpful because you don't have to work out this manually any more.
If you are interested in it, you can download it from http://fabis-site.net/code/Multiseat.tar.gz.
#59.1 - Fabian Steiner 2006-10-08 08:43 - (Reply)
Now it is also possible to select the appropriate video card and editing the templates is also much easier than before. Perhaps you may give give it a try and feel free to report me any problems you encounter.
#60 - LAj 2006-09-29 10:34 - (Reply)
Hi Chris,
I'm configuring a Dual-seat pc due to an ATI XFire system, but this tecnology is no longer available with Linux, so I decide to use it in this way;-)
Before reading this howto I had problem starting X with 2 vga in PCI-E. Then I removed one card and gone to setup Multi-seat with the VGA-DVI ATI X850 XT with 2 different PCI bus ID.
My system is based on Gentoo Linux and originally was not ready to run Xinerama 'cause I didn't beleave I need it!
So I given a try at your configuration with this conditions( no Xinerama )
The system was able to run X :1 but DVI output was simple cloned on VGA secondary device and Xorg.1.log tail these lines:
(II) Primary Device is: PCI 02:00:0
(II) ATI Proprietary Linux Driver Version Identifier:8.28.8
(II) ATI Proprietary Linux Driver Release Identifier: LGDr8.28g1
(II) ATI Proprietary Linux Driver Build Date: Aug 17 2006 09:34:48
(II) ATI Proprietary Linux Driver Build Information: autobuild-rel-r6-188.8.131.52.2
(WW) fglrx: No matching Device section for instance (BusID PCI:2:0:0) found
(EE) No devices detected.
Fatal server error:
no screens found
Where BusID PCI:2:0:0 is the primary device.
Can I ask you, why X1 want configure the primary device?
Is the Xinerama support usefull here?
Furthermore, the Xinerama support in gdm make the login manager work on an extended X server or make the LM to fork itself?
Sorry, I only want understand what's the role of Xinerama in this job. It's really needed!?
Thank you.
#60.1 - LAj 2006-10-02 12:42 - (Reply)
A little problem but, as first,
I have a multi-seat system!!!
Thank you all.
Take apart the TwinCard solution, the secondary pci-e slot has its X850XT. So I've NOT dri enabled since ATI fix this(: http://forums.gentoo.org/viewtopic-t-503635.html )CrossFire bug( I have to report it at ATI bugzilla!!! ).
I've configured multi-seat with radeon driver module.
I've not understand where Xinerama is needed but I built in its and never worked. Furthermore I've experienced the same proble after all.
The HOW-TO config give me a system with second seat working fine but CPU 100% load 'cause of first seat crashed at GDM login screen.
Then, I given a look at "Multiseat Issues with Nvidia Cards" and tryed out the "SingleCard" Option. This solve the CPU load problem while the xconfig with different( fglrx ) at second device give me a flash "PreInitInt10" error( thanks to ATI:-( ).
Now I have to find a solution to reset local keybords layout but I saw them in above comments.
And now my request for help:
my problem is well described in this image
look at the artefact in the upper side of the image.
I really need ideas to solve it!
#61 - ELAN 2006-10-13 19:46 - (Reply)
HI Everyone
i ve beentrying for more than a week to setup a multi user system & i was about to give up when ifound this how to Chris Blog. andnowi have hopes that one of u will guide me to reach the desired target .
lets go to work
my system :
2.66 Ghz intel p-4 cpu
Asus Motherboard
512 ddr 400
80 gb H.D
[a1@login ~]$ lspci| grep VGA
00:0e.0 VGA compatible controller: ATI Technologies I
00:13.0 VGA compatible controller: ATI Technologies I
01:00.0 VGA compatible controller: Silicon Integrated PCI/AGP VGA Display Adapter
[a1@login ~]$
ls /dev/input/mouse*
/dev/input/mouse0 /dev/input/mouse1 /dev/input/mouse2
more /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
H: Handlers=kbd event0
B: KEY=4 2000000 2b803878 f840d001 f2ffffdf ffefffff ffffffff f
I: Bus=0011 Vendor=0002 Product=0006 Version=0000
N: Name="ImExPS/2 Generic Explorer Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=mouse0 event1 ts0
B: KEY=1f0000 0 0 0 0 0 0 0 0
I: Bus=0003 Vendor=04d9 Product=1400 Version=0142
N: Name="USB HIDBP Keyboard 04d9:1400"
P: Phys=usb-0000:00:03.1-1/input0
H: Handlers=kbd event2
B: KEY=7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=1f
I: Bus=0003 Vendor=04d9 Product=1400 Version=0142
N: Name="USB HIDBP Keyboard 04d9:1400"
P: Phys=usb-0000:00:03.0-1/input0
H: Handlers=kbd event3
B: KEY=7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=1f
I: Bus=0003 Vendor=04d9 Product=1400 Version=0142
N: Name="04d9:1400"
P: Phys=usb-0000:00:03.1-1/input1
H: Handlers=kbd mouse1 event4 ts1
B: KEY=1f0007 0 0 39fa d801d101 1e0000 0 0 0
I: Bus=0003 Vendor=04d9 Product=1400 Version=0142
N: Name="04d9:1400"
P: Phys=usb-0000:00:03.0-1/input1
H: Handlers=kbd mouse2 event5 ts2
B: KEY=1f0007 0 0 39fa d801d101 1e0000 0 0 0
[a1@login ~]$
and my xorg.conf file :
# File generated by XFdrake.
# **********************************************************************
# Refer to the XF86Config man page for details about the format of
# this file.
# **********************************************************************
Section "Files"
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Mandrake 6.0 and later now use a font server independent of
# the X server to render fonts.
FontPath "unix/:-1"
Section "ServerFlags"
#DontZap # disable (server abort)
AllowMouseOpenFail # allows the server to start up even if the mouse does not work
#DontZoom # disable / (resolution switching)
Section "Module"
Load "dbe" # Double-Buffering Extension
Load "v4l" # Video for Linux
Load "extmod"
Load "type1"
Load "freetype"
Load "glx" # 3D layer
Section "InputDevice"
Identifier "Keyboard1"
Driver "keyboard"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,il"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll,compose:rwin"
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "6 7"
Section "Monitor"
Identifier "monitor1"
VendorName "Plug'n Play"
HorizSync 30-80
VertRefresh 60-75
# Monitor preferred modeline (59.9 Hz vsync, 55.5 kHz hsync, ratio 16/10)
ModeLine "1440x900" 88.75 1440 1488 1520 1600 900 903 909 926 -hsync +vsync
# TV fullscreen mode or DVD fullscreen output.
# 768x576 @ 79 Hz, 50 kHz hsync
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
# 768x576 @ 100 Hz, 61.6 kHz hsync
ModeLine "768x576" 63.07 768 800 960 1024 576 578 590 616
Section "Monitor"
Identifier "monitor2"
VendorName "Plug'n Play"
HorizSync 30-80
VertRefresh 60-75
# Monitor preferred modeline (59.9 Hz vsync, 55.5 kHz hsync, ratio 16/10)
ModeLine "1440x900" 88.75 1440 1488 1520 1600 900 903 909 926 -hsync +vsync
# TV fullscreen mode or DVD fullscreen output.
# 768x576 @ 79 Hz, 50 kHz hsync
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
# 768x576 @ 100 Hz, 61.6 kHz hsync
ModeLine "768x576" 63.07 768 800 960 1024 576 578 590 616
Section "Monitor"
Identifier "monitor3"
VendorName "Plug'n Play"
HorizSync 30-80
VertRefresh 60-75
# Monitor preferred modeline (59.9 Hz vsync, 55.5 kHz hsync, ratio 16/10)
ModeLine "1440x900" 88.75 1440 1488 1520 1600 900 903 909 926 -hsync +vsync
# TV fullscreen mode or DVD fullscreen output.
# 768x576 @ 79 Hz, 50 kHz hsync
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
# 768x576 @ 100 Hz, 61.6 kHz hsync
ModeLine "768x576" 63.07 768 800 960 1024 576 578 590 616
Section "Device"
Identifier "device1"
VendorName "ATI"
BoardName "ATI Rage 128"
Driver "ati"
Screen 0
BusID "PCI:0:14:0"
Option "DPMS"
Section "Device"
Identifier "device2"
VendorName "ATI"
BoardName "ATI Rage 128"
Driver "ati"
Screen 0
BusID "PCI:0:19:0"
Option "DPMS"
Section "Device"
Identifier "device3"
VendorName "Silicon Integrated System"
BoardName "SiS 650"
Driver "sis"
Screen 0
BusID "PCI:1:0:0"
Option "DPMS"
Section "Screen"
Identifier "screen1"
Device "device1"
Monitor "monitor1"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Virtual 1024 768
Subsection "Display"
Depth 15
Virtual 1024 768
Subsection "Display"
Depth 16
Virtual 1024 768
Subsection "Display"
Depth 24
Virtual 1024 768
Section "Screen"
Identifier "screen2"
Device "device2"
Monitor "monitor2"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Virtual 1024 768
Subsection "Display"
Depth 15
Virtual 1024 768
Subsection "Display"
Depth 16
Virtual 1024 768
Subsection "Display"
Depth 24
Virtual 1024 768
Section "Screen"
Identifier "screen3"
Device "device3"
Monitor "monitor3"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Virtual 1024 768
Subsection "Display"
Depth 15
Virtual 1024 768
Subsection "Display"
Depth 16
Virtual 1024 768
Subsection "Display"
Depth 24
Virtual 1024 768
Section "ServerLayout"
Identifier "layout1"
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
Screen "screen1"
Screen "screen2" RightOf "screen1"
Screen "screen3" RightOf "screen2"
Option "Xinerama"
i believe i gave u all the information
i tried for days and hours all kind of configurations but i always get an error after restarting
badly need ur help
thanks a lot
#62 - joseph kihiuhia 2006-10-18 04:57 - (Reply)
First thanx alot for this website. I ve istalled fedora 5 on a Intel 3.0 processor, one radeon 9250 AGP card and one PCI ATI rage card. It works fine, I can log in and out without affecting other servers. Also the AGP card has to be in seat1 and the seat2 (the one with PCI card) has the 'isolateDevice' option; otherwise it doesn't work.
#63 - Christ Schlacta said:
2006-11-01 18:42 - (Reply)
do the different seats get referred to as :0 :1 etc, or as :0.0, :0.1 and so on?
#63.1 - Chris Tyler said:
2006-11-06 06:47 - (Reply)
They are referred to as :0, :1, :2.
#64 - Mec 2006-11-02 07:14 - (Reply)
I am trying to set up a multiseat with Slackware 10, please anyone can help me configuring the display manager xdm like with gdm.conf?
The following command is not working too X -novtswitch -sharevts -layout seatN :0
#65 - vichika_khmer 2006-11-10 02:30 - (Reply)
Hi Tyler,
It's really great to make multiseat and cost me less money to share it with my sister with 2 seats. I'm trying 2weeks agos, but unfortunatly, I could not make it work for me by following your mini-howto.
Here my selected distrob:
OS: OpenSuSe 10.2 (kernel 18.104.22.168-8-default, X.org 7.2)
my hardware:
CPU PIII 800Mhz, RAM 521MB
VGA: Matrox DualHead G450 16MB AGP.
- Seat 1: Monitor1 15inch, PS/2 Keyboard & Mouse(built-in)
- Seat 2: Monitor2 15inch, USB Keybord & mouse.
#66 - Johannes Gajdosik 2006-11-12 03:30 - (Reply)
Hello Chris,
Thanks for all the info. I have a working 2-seat system with 2 PS2 keyboards, 2 NVIDIA, 2 USB mice, bruby patch (thanks to Paul Daniel Pauget) and 2.4.31 kernel. Now I want to upgrade to 2.6 kernel. What are my options? I cannot find (b)ruby patches for recent 2.6, I fear that dummy console is not working any more, and your method of using evdev for keyboard input does not work with PS2 keyboards.
Any help is greatly appreciated.
#66.1 - Richard Unger 2006-11-15 06:47 - (Reply)
With kernel 2.6, your options are fewer.
AFAIK the bruby patch has more or less died out. It was a really big patch, and not enough of it made it into the core system.
Avilis Stolz had a "faketty" module which can be used in some pretty tricky configurations to enable multiple consoles.
Other than that, AFAIK multiple consoles are dead.
The good news is that multiple independant X Servers are better supported than ever, so even though you will only have one real console, you can run multiple independant X Servers on your different screens.
That's what most of the posts on this forum are about...
#66.2 - Chris Tyler said:
2006-11-15 07:57 - (Reply)
Richard's right that bruby is not really needed anymore.
If you want to use PS/2 keyboards with X-server-based multiseat, you can get an inexpensive PS/2-to-USB converter. Here's a $2 example: http://www.pcsforeveryone.com/product_info.php?products_id=145058 (I know nothing about that company so I'm not necessarily endorsing them). I've seen other adapters that cost up to $20, and at that price I think it would seem to make more sense to get a USB keyboard.
In any case, the new approaches to this problem are so very much easier to maintain than bruby that it's worth spending a few bucks on the hardware.
#66.2.1 - Johannes Gajdosik 2007-01-02 15:19 - (Reply)
Thanks for the hint using an USB-to-PS2 converter. But the big news is: I do not need it! Your above procedure works fine for me with 2 PS2 keyboards. Anyway the sencond keyboard shows up as /dev/input/eventX, the same place where the USB keyboard would be. So I use
Driver "evdev"
Option "Device" "/dev/input/event4"
for my other PS2 keyboard and it works fine.
So if anybody has questions about this setup with 2 PS2 keyboards, do not hesitate to ask:
johannes dot gajdosik at gmx dot at
Thanks again,
#67 - Richard Wu 2006-11-20 05:20 - (Reply)
I have successfully made my multiseat PC work according to your article. There is a following problem. How do I make two or more keyboard work together in one seat? I have tried to define two keyboard in the "InputDevice" section but failed.
#67.1 - Damien 2007-01-04 23:09 - (Reply)
If you get multiple keyboards per seat going, please let me know. I have a USB remote (Logitech) that shows up as two evdev devices. However, I can only use one at a time! This nullifies the usefulness of the remote
Anybody else know why evdev can only handle one keyboard per terminal?
#68 - Marcus Rickert said:
2006-12-07 15:59 - (Reply)
Hi Chris,
thank you for this great page. It helped me a lot on my way to a multiseat setup. Since I wanted to have a VMWare installation running on one X server I had to do some extra work which I described on my homepage (http://www.the-rickerts.de/mr/multiseat.html). It may be useful to others.
#69 - Georg Michel 2007-01-03 08:58 - (Reply)
the last week I struggled with multiseat X and finally I succeeded, partly with the help of this blog. So I want to give something back. Here's my story:
I have a Intel P-IV with a Matrox G550 Dualhead AGP (first seat) and an ATI Radeon 9200 Dualhead PCI (second seat). I wanted to make a dual seat system with a dual head xinerama sceen each. First I got stuck in the N+1 problem mentioned above. Although I have no Nvidia card, the SingleCard Option for the second seat helped not to freeze the screen of the first seat. But then both screens of the second seat where scrambled like not being correctly initialized or interferring with the int10 calls from the first seat. There are solutions on the net with the NoInt10 option or a dummy xorg.conf.probe File just for the initalization of the cards. Nothing helped. I was close to trying the more complicated vserver variant from above.
The solution was as simple as it was hard to find: After each try of another configuration I had to really shut down the computer (pulling the plug out of the mains socket). A reset or soft switch off of the computer was not enough. Obviously the video cards keep some information from previous configurations as long as there is power somewhere in the computer. So, if you do experiments, do really switch off you computer (as "off" as possible). The NoInt10 trick and xorg.conf.probe for initialization are not necessary. By the way, the input devices where configured with evdev as "usual". I have an individual xorg.conf.X file for each X server, so the server won't know about the other card (at least not from the xorg.conf file). The second server has the marvellous SingleCard or IsolateDevice Option. Thats it. Happy new year to everyone.
#70 - Tekkno Genius 2007-01-14 20:50 - (Reply)
Any clue why my setup, using same wireless usb keyboard/mouse seem to collide? Each mouse/keyboard works in the correct screen, but interfere with each other, when one moves the other stops. I am using evdev on both.
#70.1 - Chris Tyler said:
2007-01-14 21:15 - (Reply)
Could be that the wireless keyboards are on the same channel/ID. See if the keyboard docs have instructions on ensuring that they are on different channels -- I know the Logitech wireless mouse I use with my laptop can interfere with my wife's desktop wireless after a battery change until I fix the channel/ID.
#71 - Vijay 2007-01-22 09:50 - (Reply)
I have a ATI-Radeon based card which supports dual head displays. Do you have any inputs on how to make it work in framebuffer mode without using X. Since my application is on QT-embedded and I would like to have it as /dev/fb0 and /dev/fb1 for display1 and display2 respectively. I searched the web and found that only X related dual support is widely discussed.
#72 - Eric 2007-01-28 13:56 - (Reply)
I'm following a similar process that I found in
and I'm arrived to the point when remotely via ssh I put the command "X -novtswitch -sharevts -nolisten tcp -layout seat2 :1 & ( seat2 is the name I've chose for my new screen)
and it runs but I can only see my mouse pointer as an "x" not the arrow and some king of blizzard behind ..like a television not sintonized if you understand what I mean..
is that what I should see? or there is something wrong
I can give more details if you want...by the way my card is a s3 virge dx...
thanks in advance
#72.1 - Chris Tyler said:
2007-01-28 14:37 - (Reply)
Eric: Yes, the cursor should be an "X" by default. The background will be either a solid black background or a stippled "weave" pattern. If it seems to be snowy or buzz, it may just be a monitor issue. Try starting X using the command as listed with an additional "-ac" option, and then issue a command such as "xsetroot -solid blue -cursor_name left_ptr -display :1" to set the background color (to solid blue in this case) and the cursor shape (to an arrow pointing at 11 o'clock).
#72.1.1 - Eric 2007-01-28 15:31 - (Reply)
thanks for answering me so fast..
tomorrow I will try ( I'm not at home right now) but I would like to ask you something else..
If I configure .xinit for startx on the second monitor should run the very same kde I have on my display:0 ( whitch is xgl with beryl manager not kwin...) or I have to set up a different configuration file?
sorry for my ignorance but I barely know these functions and how they work
thanks again in advance..
#73 - Robert Pogson said:
2007-01-31 19:53 - (Reply)
Thank you for this resource. I have struggled with every configuration technique I could find including Ubuntu and Groovix and I could make a system that would work fine for me but fail miserably with a few users.
Probing the logs, I kept finding USB disconnect errors. The reconnections go to a different USB address and the configuration fails. I think the source of the disconnections is static electrical sparks. I found this accidentaly because I got a sequence of similar messages in a root window when I was connecting a different USB device, a camera. I looked at the driver in the usb.c in the kernel and they are treating the disconnect caused by a spark as a new connection. They are debouncing a connection but not using the same technique to sort out a spark.
We are in a cold climat with the heat on so relative humidity indoors is quite low. Also, folks are bringing in lots of outdoor clothing. I usually work with the sleeves rolled up so static seems less of a problem for me. I could try to raise the humidity, but it seems reasonable to dry to tune the drivers. This would not be a problem for non-multiseat installations because they accept input from any keyboard and mouse, even if it is reassigned.
An interesting problem
#73.1 - Chris Tyler said:
2007-01-31 20:19 - (Reply)
I had a similar problem, though not due to static electricity. In my case, a shredder created enough EMI noise that it caused a disconnection to the hub on my wife's desk. I eventually put a really good filter on the shredder to solve the problem.
I didn't realize that static electricity could cause the same type of disconnects, but it makes sense. I have a wood floor here so we don't get a lot of static discharge on the equipment (even though we're in Toronto, cold & dry).
In other locations where I've had static problems, I've used Static Guard spray on the carpet with good success. But I agree with you that the the drivers should be fixed!
#73.1.1 - Mehboob 2007-04-10 12:47 - (Reply)
You could try to give permanent names to the mouse and keyboard by adding entries in udev. That way udev will create symlinks with your given names for the mouse and keyboard in /dev/input and you can use those names in the xorg.conf file. Look in /etc/udev/rules.d to find out how to do it.
#220.127.116.11 - Robert Pogson said:
2007-04-16 21:52 - (Reply)
I looked into udev rules but I could not find a simple way to set up the rule. My keyboards had a hub built in and I could not figure out how to identify the hub, mouse and keyboard. They were nameless and the numbers listed did not seem to make sense (maybe the learning curve was too steep). If anyone has solved such a problem, it might help to document it here. Unfortunately, I am no longer at that installation but I can connect with the current techie.
#74 - maniac 2007-02-10 23:12 - (Reply)
Succefully install multihead by you howto. Configuration:
athlon xp 1.25, 512 mb, radeon 9800, s3 virge.
Thanks for good job!
#75 - Audiossis 2007-03-14 06:17 - (Reply)
I have an issue that I hope somebody can shed some light upon.
Firstly great blog Chris, the information I have found here has been invaluable. It's people like you that make the internet work.
Now, I have managed to setup a dual seat configuration in FC6 from scratch (using the info found here as well as a couple of other sites). My hardware is as follows:
Intel P4 (socket 478) HT but not dual core
Nvidia GeForce 6600GT AGP (made by Leadtek)
3dfx Voodoo 3 2000 PCI
CDROM's etc.... etc...
The dual seat setup works fine for the most part. I have reliable boot up (works 99.99% of the time from cold boot) and login.
My problem is that sometimes, for no apparent reason, the display on X1, which happens to be the Nvidia AGP card, becomes skewed and I don't mean diagonally skewed.
I find it hard to explain, but when the "corruption" occurs, the display backgroud steps sideways, usually from the right of the screen to the left. But having said that, the mouse clicks still operate in their correct positions.
To put it another way, if I click at the bottom left of the screen the Kmenu still pops up, even though the menu itself appears to have moved to the centre of the screen (or elsewhere). It's like the relationship between the mouse cursor and the video card is being broken while the video card is being driven crazy.
This problem is easily repeatable and never occurs on the Voodoo 3. The "corruption" is most repeatable when I try to access the floppy drive. It occurs every time the floppy is accessed, whether there is a disk in it or not. I have tried several different PCI cards in place of the Voodoo but the same problem occurs. I have also tried three different Nvidia cards (all from different manufacturers, all different chipsets) in the AGP slot but again the same problem occurs.
I should probably point out at this point that the Voodoo 3 is using the "tdfx" drivers and the Nvidia AGP card is using the open source "nv" drivers. This is because the proprietary nvidia drivers always crash my system due to the fact that I have two different types of video card in my box. I have not yet found a way around this.
I should also point out that the "corruption" is NOT specific to KDE. It also happens in the Gnome desktop evironment.
I have tried the 'vesa" drivers on both of my video cards, but again, no joy.
I've even tried turnig off the hyperthreading. NO GO. My BIOS does not have the option to choose the primary video adaptor (AGP or PCI) so that idea is defunct and setting the IRQ's in the BIOS seems to have no effect.
I did breifly have a dual seat setup on this machine using FC5. I did not do a great deal of testing in FC5, so I don't really know if the same problem occured there as well or not, but I don't remember seeing it happen. As soon as I figured out how to setup a dual seat config, I moved on to FC6.
I am about to pull the ATI based card from my wifes computer (to replace the Nvidia card in mine) in a last ditch effort to find the problem, but failing that I am lost.
Does anyone have ANY ideas as to what could be causing this problem? or how to fix it? I am becomming very frustrated.
Thank you all.
#75.1 - Chris Tyler 2007-03-14 09:20 - (Reply)
I had that same problem when I upgraded from a 3-user to 4-user configuration (and I'm not sure why it didn't show up before). It's caused by the -novtswitch -sharevts options.
What is happening is that the kernel or some other piece of software is printing a message onto the text-mode virtual terminal. That is causing the screen to scroll by some multiple of one line (usually 80 bytes). But graphics mode, 80 bytes is 10 pixels (assuming a 32-bit graphics mode), which is a tiny fraction of one line -- so everything shifts over a little bit on the screen, eventually moving the "edge" of the screen to somewhere near the middle of the monitor. The X server has no idea that the data was shifted, so its idea of the cursor position and the actual screen contents don't match at all. This leads to user insanity in under 10 seconds
Fortunately, the solution is easy (at least, this worked for me): remove the -novtswitch and -sharevts options only for the first X server but keep them for the remaining servers. The side benefit of this is that you'll be able to switch to a character-mode VT on the main server.
Hope this helps -- please let me know how it works for you.
#75.1.1 - Audiossis 2007-03-15 01:30 - (Reply)
That worked like a charm!!
Thankyou Chris, keep up the brilliant work!!
#76 - Víctor Arranz 2007-03-19 05:37 - (Reply)
Is possible to have a multiseat system under Solaris 10 x86?
#77 - Victor Arranz 2007-03-20 04:38 - (Reply)
Is multiseat possible under Solaris 10 with Xorg 6.9??
#77.1 - chris said:
2007-03-20 08:03 - (Reply)
I don't know if the situation has changed on Solaris. You'd have to investigate whether there is a way of receiving mouse and keyboard events from just one specific seat. The evdev driver was one of the first to solve this problem on Linux, but the event devices used were (AFAIK) specific to Linux.
#78 - ocnsss said:
2007-03-22 23:14 - (Reply)
On personal opinion, I find this very helpful.
Guys, I have also posted some more relevant info further on this, not sure if you find it useful: http://www.bidmaxhost.com/forum/
#79 - Ginja_Ninja 2007-04-08 09:18 - (Reply)
This is a fantastic howto. It makes multiseat really quite simple. Even for a n00b like me.
Thanks for taking the time to sharing your knowledge.
I do have one question that i cannot seem to find the answer to, on any multiseat howto.
I have 2 x pci-e nvidia graphics cards.
The setup works ok at the moment and i am running the latest driver. 9755
Both x sessions work well but the second screen/seat, powers down the monitor when he/she loggs out.
Their logout has no effect on the first user's X session (Thats something at least). The monitor just goes black and goes into power save mode and therefore no command line. Is it failing to restart gdm ??
Any other thoughts?
Your help is greatly appreciated.
P.s. Ubuntu 6.10, gdm.
#79.1 - Chris Tyler 2007-04-09 09:11 - (Reply)
Sounds like perhaps GDM is failing to restart the X server, or the X server is failing to die. Use the 'ps' command to see if the second X server is still running (it will have accumulated some CPU time), has been restarted (it will have a higher PID and very little accumulated CPU time), or not running.
If the server is failing to die, then you may be able to make it die with -terminate -once options (though these should not be necessary). If the server is dying and GDM is not restarting, I'm not sure what to suggest other than trying another display manager such as xdm or kdm or seeing if a newer version of GDM is available.
#79.1.1 - Ginja_Ninja 2007-04-09 12:54 - (Reply)
Chris Tyler,
Thank you so much for your reply.
I it turned out that gdm was not shutting down properly, when i killed the process it restarted.
I used the options that you offered for both seats just to make sure and it all seems to be fine, so...
A BIG THANKS to you.
Now all i have to do is work out a way of getting my two usb keyboards to be given the same "event" number. Currently everytime i reboot i have to manually edit the xorg.conf to get a usable desktop.
There must be a better way of doing it. I notice on every reboot mouse0 and mouse1 do not change, cant we get the keyboards todo the same?
Anyway i really really appreciate your help. Your website is fantastic.
Take care
#79.1.2 - Wolfgang Klein 2007-06-22 13:01 - (Reply)
First of all: thanks for the tutorial, it helped me a lot!
My setup so far: Ubuntu Feisty, which comes with Xorg 7.2, one NVidia AGP card and one Voodoo Banshee PCI for the second seat.
I'm facing the same problem as Ginja_Ninja, no matter if I use gdm or kdm: as soon as the user on the second screen logs out, his screen goes blank and no new server is startet.
You mentioned the option -terminate -once. Where and how do I have to use them?
#18.104.22.168 - Wolfgang Klein 2007-07-11 05:17 - (Reply)
One problem solved, another one yet to solve:
The issue about the second screen not coming up any more after logging out has vanished: I only have to wait long enough. After about a minute the login screen comes up again. I don't know why it takes so long. It can't be the machine, it is fast enough. (Athlon 2.6 GHz) I think it must be a bug in xorg.
Waiting one minute is ok, there's no need to login again faster.
The next problem that needs to be solved is to get suspend to disk working. After resuming, everything works perfectly on the agp card, but the second card (pci) won't come up again. The second xserver is still running but the picture doesn't show. When I remove the agp card and use the pci card only, suspending and resuming works perfectly. So the card itself seems to be intact.
If anyone knows how to solve this, please let me know.
#79.2 - Richard Unger 2007-04-10 04:22 - (Reply)
Make sure you aren't running into VT-Switching issues - if the new X Server starts on a new VT you may get the effect you are describing. Get your X to reuse the same VT by specifying it directly.
#80 - Otty said:
2007-04-12 05:38 - (Reply)
Thanks for information end very interesting Website. Bye.
#81 - Zenny 2007-04-12 15:57 - (Reply)
I had been using slack-based zenwalk2.8 (zenwalk.org) with xorg6.9 and gdm2.14 and my multiseat was working perfect.
I reinstalled the 4.4.1 version of the distro with xorg7.2 ad gdm2.14 and made all the necessary changes, but it results 'gdm greeter application crashing' all the time no matter what I do.
I have posted a detailed report at http://support.zenwalk.org/index.php/topic,7489.0.html
I dropped here if somebody experienced the same problem and overcome it? I have ati pci graphic cards (both). Thanks in advance.
#81.1 - Merlum said:
2007-05-12 13:08 - (Reply)
Helo Zenny,
the problem comes from xorg itself, from the evdev module that says undefined symbol: xf86OSRingBell.
Either configure gdm not to beep, in /usr/share/gdm/default.conf:
Either install a patched version of evdev like mine (it is made for slackware-current so I don't know if it works on zenwalk):
#82 - Ruben Zamora 2007-04-14 14:03 - (Reply)
I am working with Fedora 6 and i want to make 2 multiseat...But only get up one seat.
I am usign ATI and a Matrox.
What happend if i donta have de /etc/gdm/gdm.conf.....Another File wake up the Seats???
#83 - Frederik said:
2007-04-15 03:56 - (Reply)
Thanks for your how-to, the multiseat works perfectly. But I have also an other question.
- How can I run Beryl-manager in multiseat ? It must be work because I have seen somebody on the net that says that's worked on every screen ?
When I start beryl, the multiseat crashed en restart X again (only on 1 screen, the other screens can work) I have tried on all the screen all have the same problem. How can I add 3d support on multiseat ?
#83.1 - Ginja_Ninja 2007-04-18 18:02 - (Reply)
I have got beryl runing flawlessly on both seats at the moment.
I dont have time to give you any details right now, but i will try to post at a later date.
Just thought you should have another example of it being possible.
Until then, take care
#84 - Markus Schlager 2007-04-26 05:37 - (Reply)
Upgrade ubuntu dapper -> ubuntu feisty
We are running several four-seat systems with ubuntu dapper and nvidia-FX5200-cards. They have been working like a charm now for about a year.
Right now we are trying to upgrade the machines to ubuntu feisty. So far we had to deal with two problems:
1. upgrade dapper -> edgy
Before you do this, you have to move links like "/usr/X11R6/bin/X0" etc. to "/usr/bin/X0" since the directory "/usr/X11R6/bin" is getting replaced by a symbolic link pointing to "/usr/bin/" and "/usr/X11R6/bin/X" is getting moved to "/usr/bin/X". Otherwise the upgrade fails.
2. -sharevts -novtswitch with the first X-Server
Now we're expiriencing problem #75 in this thread. It seems Chris' solution #75.1 (removing these options only from the first server) does the job also in our case. Thanks a lot, Chris!
#85 - Christoffer Gurell 2007-05-14 07:59 - (Reply)
I know I have asked about this before but i just wanted to know if there has been any progress in the this area.
Is it possible to set up a multi seat environment using two monitors connected to one graphics card without resorting to Xnest or similar solutions?
#86 - Chris Tyler 2007-05-14 08:10 - (Reply)
No progress yet -- multiple displays on one PCI ID require Xephyr at this time AFAIK.
#86.1 - cipung said:
2007-05-16 00:14 - (Reply)
multiseat running smooth on mandriva 2007.1 with 3 old pci vga card, one savage onboard vga and 1 ps/2 keyboard and mouse and 3 ps/2 to usb converter,
I follow the instruction from http://netpatia.blogspot.com/2006/09/multiseat-computer-with-ubuntu.html with a little adjustment for mandriva 2007.1
Zephyr and Zephyr.sh download from link in that blog and I also install x11-data-xkbdata-0.8-3mdv2007.1.noarch.rpm and x11-driver-input-evdev-1.1.5-1mdv2007.1.i586.rpm for use evdev and us keyboard lay out
thank's for great idea....
#87 - Agung 2007-05-21 03:45 - (Reply)
Hi All,
I had allready follow Chris mini howto to build a multiseat with 3 card , first vga card is onboard and the rest is ATI pci , but i had a problem , only the seat last keyboard and mouse that worked, i use open suse 10.2 .. thanks for help
#87.1 - Mike Tinsay 2007-07-06 06:36 - (Reply)
Try adding the line:
Option "SingleCard"
in every ServerLayout section your xorg.conf has.
#87.1.1 - chris 2007-07-06 20:34 - (Reply)
The "SingleCard" option used to be required, but it does not seem to be necessary in the current X.org release (ymmv).
#220.127.116.11 - Mike Tinsay 2007-07-07 01:03 - (Reply)
I just finished setting up a 2-seat system using Ubuntu 7.04 with latest updates from the Ubuntu repository. The on-board video card uses a VIA chipset and I added an ATI-based PCI card. For the ATI video card, I used the stock via driver (not the fglrx one). But for the VIA video chipset, I got the driver from VIA Arena, as the stock via and unichrome drivers from the repository do not support my chipset.
In my case, I still had to put in the Option "SingleCard" and/or Option "IsolateDevice" "PCI:i:j:k" lines. Otherwise, I run into the same problem by Agung.
My remaining problem now is that whenever a user logs out and the user is in the seat with the ATI video card, the other seat's display (the one using the VIA-based chipset) goes into text mode -- though the session is still running, it is now unusable. At this point, only a reboot (or a gdm restart from an ssh session) would be required to make the other seat usable.
#88 - Cbo 2007-05-24 19:49 - (Reply)
Hi all-
Seems my gdm config continually crashes right at login (xubuntu 6.10). Frustrating.
Question- would I be seeing screen #2 at all, if, as in this case, GDM was not working? IE, if my Xorg config is setup correctly for two monitors, is gdm required to actually get a picture on #2?
I'm wondering if my second video card (rage 128 pro pci) actually works at all at this point.
#89 - Claus Hindsgaul 2007-05-28 06:09 - (Reply)
And thanks for the howto. I have been running a multiterminal setup on my single nVidia GeForce FX 5200 (with nVidias driver) for half a year now. I resorted to using the patched Xephyr binary from http://en.wikibooks.org/wiki/Multiterminal_with_Xephyr.
Now I would like to shift to the Debian provided Xephyr in order to have an updated version and possibly have better hardware acceleration.
But Debian Xephyr does not know about the "-layout" option ("Unrecognized option: -layout"). It does accept "-mouse" but not "-keyboard", so I have no idea how to tell the instances which keyboard to use. Any clues?
#90 - XeYieang 2007-06-07 08:44 - (Reply)
I am using two nvidia cards (both 7600GS) for multiseat. One card is using twinview for two displays, the other one for MythTV with TV-out.
But if I suspend to ram (S3, standby), 2nd Xorg (TV-Out) is not working any more. Process is still there, but there is no picture on the TV. I have to restart it every time, to be able to use it again.
Chris, do you have any experience with Suspend to Ram and multiseat?
#90.1 - Maris 2007-06-08 02:06 - (Reply)
Thanks for this article.
Would like to ask why after attaching 2 keyboards and 2 mouses and saying
Section "InputDevice"
Identifier "keyboard1"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "lv"
Option "XkbVariant" "apostrophe"
Option "Device" "/dev/input/event1"
Section "InputDevice"
Identifier "keyboard2"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "lv"
Option "XkbVariant" "apostrophe"
Option "Device" "/dev/input/event2"
keyboard gives out strange characters (not normal) I press M, it gives 3*1111111.
Why it's like this. Mouses are working fine.
And when I delete:
Option "Device" "/dev/input/event2"
characters are ok, but then both keybards are working?
thanks one more time
#90.1.1 - Maris said:
2007-06-12 09:59 - (Reply)
I solve problem with keyboard, but now I have problem with the sreens.
Both are independly started but native graphic card (sreen) is just frozen.
mouse and keyboards in xorg.conf file is fine.
i think that there is problem somewhere in gdm.
my gdm looks now:
name=Standard server
command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -layout seat1
name=Standard server
command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -layout seat2
any ideas folks?
#90.2 - XeYieang 2007-06-17 12:57 - (Reply)
I tried another approach:
I kill 2nd X server before suspend (it is not important because it is mythtv on the 2nd X server) and start it again after waking up from suspend.
The problem is that Xorg does not want to start again. It hangs at this line (Xorg.1.log):
(II) NVIDIA(0): Setting mode "800x600"
(WW) NVIDIA(0): WAIT (0, 1, 0x8000, 0x000005c0, 0x000005c0)
(WW) NVIDIA(0): WAIT (0, 3, 0x8000, 0x00000af4, 0x00000af4)
(WW) NVIDIA(0): WAIT (0, 11, 0x8000, 0x00000b14, 0x00000b14)
(II) Loading extension NV-GLX
and cpu is running at 100%.
#91 - Alexander Murillo 2007-06-15 15:58 - (Reply)
I defined the keyboards like this:
Section "InputDevice"
Identifier "keyboard0"
Driver "evdev"
Option "Phys" "usb-0000:00:02.0-1/input0"
Option "XkbRules" "xorg"
Option "XkbModel" "evdev"
Option "XkbLayout" "us"
Option "CoreKeyboard"
Section "InputDevice"
Identifier "keyboard1"
Driver "evdev"
Option "Phys" "usb-0000:00:02.0-2/input0"
Option "XkbRules" "xorg"
Option "XkbModel" "evdev"
Option "XkbLayout" "us"
Option "CoreKeyboard"
#92 - farid 2007-06-29 07:20 - (Reply)
that's for all nvidia user try slim or slimx groovix at groovix wiki.com it work very will and solve all roblems
#93 - Maris said:
2007-07-02 10:01 - (Reply)
I got working multiseat system for 2 users. (dont use nv driver, but nvidia instead)
Works really fine the only problem is that Im looking to solve is that
keyboard key: up, down, left, right, delete, insert, home, end
are not working.
I can not now open text file via vi, because I can not edit it and go down.
so Im looking, what can solve this.
#93.1 - Chris Tyler 2007-07-06 20:37 - (Reply)
All they keys other than the cursor keys are working? Odd. I've seen a situation where every key is wrong (which is fixed with the XKB options in xorg.conf), but not one where only the arrow keys are affected.
You might want to try using xev to see what those keys are doing...
(In a pinch, with vi, use the letter key alternatives to the arrow keys: h, j, k, l).
#93.1.1 - OliTheRed said:
2007-07-30 06:11 - (Reply)
I have the same issue with the arrow keys (running Fedora 7 and the nvidia dirver) while my previous (Fedora Core 5) setup worked fine.
It is incredibly frustrating, but so far I have made no progress:
Today I came accross the following Debian/KDE bug which looks very similar (the up arrow also activates the screenshot function for me):
#93.1.2 - OliTheRed said:
2007-08-01 06:01 - (Reply)
I have fixed this now and all is well
I changed:
Option "XkbModel" "pc105"
Option "XkbModel" "evdev"
Option "XkbRules" "xorg"
Thanks to Maris and the files attached to his thread on fedoraforum (mentioned in comment #95).
#94 - chris 2007-07-15 17:18 - (Reply)
Sounds like terminating the server switched VTs. Are you using the -novtswitch -sharevts options on the second (and subsequent) seats?
#95 - marisdembovskis 2007-07-30 08:10 - (Reply)
I solved all the problems with keyboard, so my config is 100% fine and multiseat is working perfect.
I also post comment here:
And thank you Chris for your web and great how -to!
#96 - audiossis 2007-08-01 02:18 - (Reply)
Hi guys, me again.
Just a quick note for anyone using FC6 whose multiseat may have been broken by a recent update (like mine). I updated all but the kernel only to find that after rebooting, the second Xserver would fail to start, it complained about not knowing how to use a keyboard on an isa bus or something.
WTF I'm not using a keyboard on any isa bus!
I don't know what changed but I had to remove the -novtswitch option from the second Xserver configuration in /etc/gdm/custom.conf.
It now looks like this:
command=/etc/X11/X0 -config xorg.conf.tdfx -isolateDevice PCI:2:0:0 -layout Seat0 :0
command=/etc/X11/X1 -sharevts -config xorg.conf.nvidia -isolateDevice PCI:1:0:0 -layout Seat1 :1
All seems fine now, so if updating FC6 breaks your setup try removing the -novtswitch option.
See ya soon!
#97 - Rainer Kaluscha 2007-08-05 09:26 - (Reply)
Finally my system is running dual headed. However, I ran into several problems, which might be of interests to others:
I started with a Nvidia Geforce MX 2 AGP. I tried to use two older PCI cards for more seats (Matrox MGA 2164W and ATI 3D Rage PCI Pro 215GP). No combination of these would work, neither AGP+PCI nor PCI+PCI (except for the Xephyr solution which I considered too slow and unstable). I tried several drivers for each card - to no avail.
Finally, I bought another Nvidia card (MX 4000 PCI). Using the proprietary nvidia driver (V1.0-9639 supports both cards) everything works fine now. The nv driver locks up unfortunately.
I also had to patch kdelibs 3.5.5 due to bug
#125559 (http://bugs.kde.org/125559) that causes the Up Arrow to be confused with PrintScrn on evdev keyboards, which has been fixed in release KDE 3.5.6.
#98 - Mark Joolo said:
2007-08-06 14:21 - (Reply)
You're right that FC5 has 7.0 (modular build) instead of 6.9 (monolitic build of the same code base) ... corrected the wording in the HOWTO
( http://www.ust.edu/gforums_ram/skin_cache/cacheid_3/index.php?q=HOWTO ). Thanks!
#99 - audiossis 2007-08-11 06:48 - (Reply)
Recently I decided to retire the old Voodoo 3 2000 PCI card in my dual-seat system in favor of an nVidia FX5200 PCI card I had just purchased second hand. This was for two reasons.
1> The Voodoo was just too old
2> I have an nVidia 6600GT in the AGP slot.
I first tried the "nv" drivers in my original configuration scripts, no go. They just simply wouldn't initialize the AGP card, no matter what I did. So I took the advice that Chris gave to Oscar (http://blog.chris.tylers.info/index.php?/archives/14-Multiseat-X-Under-X11R6.97.0.html#c23)
I configured a traditional "xinerama" clone layout which is used only by Red Hat Graphical Boot during boot time. This successfully initialized the AGP card ready for the dual seat setup to start later. Which then worked by the way.
After that I did away with the "nv" driver as the object of this exercise was to get some extra eye candy/performance.
I decided to try the latest (version 100.14.11) proprietary drivers from nVidia and everything broke. After a week of trying different driver/X options, I had a reasonably stable dual-head system again.
Only one problem left, every time the user on the second head logged out, the AGP card would reset and it wouldn't come up again until the machine was restarted.
I tried more options in the xorg.conf file and found that enabling the "multiGPU" and "SLI" options had a definately positive effect on stability. When I did this the AGP card only reset every second user logout. I found the "SLI" option particularly surprising as these cards will never truly work in SLI mode.
I tried every option in the X documents and the nVidia documents that appeared as though they might have had and effect. Nothing. I could not fix this behavior. Then I noticed Chris's post about the lastest driver not supporting PCI cards.
That's not strictly true. Nvidia has removed support for the MX series GPU's from recent releases but limited PCI support still exists. My PCI card has an FX series GPU and thus is still supported. That being said though, it appears that they have changed the driver to focus more on PCI-E support.
This was evidenced by the fact that when I changed to the 1.0-9639 "Legacy" driver from nVidia, the resetting issue with the AGP card disappeared completely. This left me with perfectly working setup with Beryl installed and working.
Please see my config files and hardware profile below.
command=/etc/X11/X0 :0 vt7 -config xorg.conf -noreset -audit 0 -sharevts -layout Seat0
command=/etc/X11/X1 :1 vt8 -config xorg.conf -noreset -audit 0 -sharevts -layout Seat1
# #
# #
Section "ServerLayout"
Identifier "Default layout"
Screen 0 "Screen0"
Screen 1 "Screen1" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
Option "AIGLX" "True"
Option "MultiGPU" "True"
Option "SLI" "True"
Option "IgnoreDisplayDevices" "DFP, TV"
# Option "DontVTSwitch" "True"
Option "HandleSpecialKeys" "Always"
Option "TripleBuffer" "True"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "AddARGBGLXVisuals" "True"
Option "DisableGLXRootClipping" "True"
Option "NoPowerConnectorCheck" "True"
Option "NoBandWidthTest" "True"
Option "RandR" "True"
Option "TwinView" "False"
Option "TwinViewOrientation" "False"
Option "Xinerama" "True"
Option "Clone" "True"
Section "ServerLayout"
Identifier "Seat0"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "IsolateDevice" "PCI:2:0:0"
Option "SingleCard" "True"
Option "NoReset" "True"
Option "AIGLX" "True"
Option "MultiGPU" "True"
Option "SLI" "True"
Option "IgnoreDisplayDevices" "DFP, TV"
# Option "DontVTSwitch" "True"
Option "HandleSpecialKeys" "Always"
Option "TripleBuffer" "True"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "AddARGBGLXVisuals" "True"
Option "DisableGLXRootClipping" "True"
Option "NoPowerConnectorCheck" "True"
Option "NoBandWidthTest" "True"
Option "RandR" "True"
Option "TwinView" "True"
Option "TwinViewOrientation" "False"
Option "Xinerama" "False"
Option "Clone" "False"
Section "ServerLayout"
Identifier "Seat1"
Screen 1 "Screen1" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Option "IsolateDevice" "PCI:1:0:0"
Option "SingleCard" "True"
Option "NoReset" "True"
Option "AIGLX" "True"
Option "MultiGPU" "True"
Option "SLI" "True"
Option "IgnoreDisplayDevices" "DFP, TV"
# Option "DontVTSwitch" "True"
Option "HandleSpecialKeys" "Always"
Option "TripleBuffer" "True"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
Option "AddARGBGLXVisuals" "True"
Option "DisableGLXRootClipping" "True"
Option "NoPowerConnectorCheck" "True"
Option "NoBandWidthTest" "True"
Option "RandR" "True"
Option "TwinView" "True"
Option "TwinViewOrientation" "False"
Option "Xinerama" "False"
Option "Clone" "False"
# #
# #
Section "Module"
Load "evdev"
Load "dbe"
Load "extmod"
Load "fbdevhw"
Load "glx"
Load "record"
Load "freetype"
# Load "type1"
# Load "dri"
# #
# #
Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "Device" "/dev/input/event0"
Option "xkbRules" "xorg"
Option "XkbModel" "evdev"
Option "XkbLayout" "en_us"
Section "InputDevice"
Identifier "Keyboard1"
Driver "evdev"
Option "Device" "/dev/input/event2"
Option "xkbRules" "xorg"
Option "XkbModel" "evdev"
Option "XkbLayout" "en_us"
Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "Device" "/dev/input/event1"
Option "ZAxisMapping" "4 5"
Option "Buttons" "10"
Section "InputDevice"
Identifier "Mouse1"
Driver "evdev"
Option "Device" "/dev/input/event3"
Option "ZAxisMapping" "6 7"
Option "Buttons" "10"
# #
# #
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Unknown"
DisplaySize 250 190
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 31.0 - 49.0
VertRefresh 48.0 - 72.0
# Option "dpms"
Section "Monitor"
Identifier "Monitor1"
VendorName "Monitor Vendor"
ModelName "Unknown"
DisplaySize 250 190
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 31.0 - 49.0
VertRefresh 48.0 - 72.0
# Option "dpms"
# #
# #
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "nVidia"
BoardName "nVidia Corporation NV33 [GeForce FX 5200]"
BusID "2:0:0"
Option "UseInt10Module" "True"
Option "NoInit10" "True"
# Option "SingleCard" "True"
Option "HWCursor" "True"
# Option "NoAccel" "True"
# Option "UseFBDev" "True"
# Option "CrtcNumber" "1"
# Option "FlatPanel" "boolean"
# Option "FPDither" "boolean"
# Option "FPScale" "boolean"
# Option "ShadowFB" "False"
Section "Device"
Identifier "Videocard1"
Driver "nvidia"
VendorName "Videocard vendor"
BoardName "NVidia GeForce 6600GT"
BusID "1:0:0"
Option "UseInt10Module" "True"
Option "NoInit10" "True"
# Option "SingleCard" "True"
Option "HWCursor" "True"
# Option "NoAccel" "True"
# Option "UseFBDev" "True"
# Option "CrtcNumber" "1"
# Option "FlatPanel" "boolean"
# Option "FPDither" "boolean"
# Option "FPScale" "boolean"
# Option "ShadowFB" "False"
# #
# #
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
Section "Screen"
Identifier "Screen1"
Device "Videocard1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
# #
# Modules Configuration #
# #
Section "Extensions"
Option "Composite" "Enable"
Gigabyte 8IK1100 mainboard
FX5200 PCI VGA Card
6600GT AGP VGA Card
Fedora Core 6
Kernel 2.6.19-1.2911.6.5
#100 - audiossis 2007-08-13 08:40 - (Reply)
I seem to be having a great deal of difficulty, upgrading my FC6 kernel past 2.6.19-1.2911.6.5 (which works).
Recently I decided to update my 3dfx Voodoo3 2000 PCI card to an FX5200 PCI that I picked up second hand, in an effort to resolve this issue and to improve video performance (Beryl, eye candy... etc).
My reasoning was that the "tdfx" driver did not like working along side the proprietary nvidia drivers, but would work along side the open "nv" drivers.
I considered that if both my cards were running the same driver, the problem might be solved. No luck. My setup still only works with the 2.6.19-1.2911.6.5 kernel and earlier.
As before, when I boot with any of the the 2.6.2X.fc6 kernels, the X server either dumps some obscure memory addresses to the console screen or continually resets (seemingly endlessly) to try starting again. I have been unable to solve this issue by re-configuring the gnome display manager.
It seems to me that Fedora have applied kernel patches which are causing problems with multiseat setups.
Any ideas? Has anyone else seen this issue?
nVidia 6600GT (AGP slot)
nVidia FX5200 (PCI slot)
nVidia prop' drivers (version 1.0-9639)
Gigabyte 8IK1100 mainboard (F7 bios)
1GB memory
Fedora Core 6
Kernel-2.6.19-1.2911.6.5 (works)
Kernel-2.6.2X --> 126.96.36.199-32 (fails)
#101 - G Prime 2007-08-18 05:56 - (Reply)
I am trying to get multihead on one nvidia card. All of your tests work but i cant get them to start at the same time. I am using xdm instead of gdm and i can not figure out how to get xdm configured. Can you help?
#101.1 - Chris Tyler 2007-08-18 09:48 - (Reply)
For multihead on a single card (unless that card has multiple PCI IDs, like some Matrox cards), you will need to use a different approach than outlined here: run a single X server as the base, and then run two (or more) instances of Xephyr with evdev capability on top of that base. I don't have notes on this posted up, but I will be posting something this fall (and I'm covering it in a book on X). In the meantime there are some notes at http://en.wikibooks.org/wiki/Multiterminal_with_Xephyr/
#101.1.1 - Gnul 2007-08-18 16:55 - (Reply)
I too am curious about using one dual-head card to enable two seats.
I read the entire thread (as of this post date) and followed many of the helpful links. This is an excellent thread, by the way, with helpful questions and replies.
I found the following link that uses an Xgl method instead of Xephyr to enable multiseat.
(Details are in the sub-link: howto.txt)
Since Xgl supports more X extensions (specifically hardware acceleration) than Xephyr, it seems logical to give it a try.
What I really want to do is enable multiseat using 1 PCIe card, but have Seat A connect to the base X session, while Seat B connects to a nested X session (via Xgl).
The idea is: When User A is at the computer, she gets both screens operating in Xinerama mode (one keyboard, two monitors). When User B sits down, User A starts up the nested X session for User B. When User B logs out, the nested X session dies and User A may again use two monitors.
Even if window shuffling is necessary or virtual desktops are used for the base session, does anyone think this could work?
Even if two PCIe cards are used, would it be possible for the primary seat to span their display across two cards and two monitors? Then enable a secondary seat to use one card+monitor while the primary X server remains alive?
#220.127.116.11 - OliTheRed said:
2007-09-12 08:43 - (Reply)
If you have a monitor with two inputs then it should be possible to use both outputs of one card to drive a session spanned accross both monitors (for user A), while using the second card to drive one of the monitors via the other input (for user B).
When user B sits down they would just need to press the input change switch on the dual-input monitor.
#102 - jojo said:
2007-10-10 00:20 - (Reply)
Please help me with this
Goal: Multi seat, 2 terminals
Using the following:-
AMD X2 (x86_64),
ATI Radeon X1200 (Integrated into Gigabyte Motherboard),
1 D-Sub & 1 DVI-D-Sub,(same PCI bus address)
1 PS/2 Keyboard, 1 USB Keyboard,
2 USB Mice,
1 LCD monitor(1400x900), 1 CRT (1024x768)
Ubuntu 7.10(Gutsy Gibon), x86_64(i.e AMD64 version)
fglrx(or whatever you suggest)
X (7.x)
I have been following your guides,
the furthest I have gotten is configuring extended desktop (by editing Xorg.conf)
But i get a functional desktop on 1 display, and a blank extended X on the other display
(symptom:: when i move my mouse from the fully functional display to the extended display, i see the old X style mouse curser instead of Gnome themed one, but the screen is blank & i cannot drag windows onto it)
even if i ignore this and move to further steps (editing GDM.conf) i get a crashing X server/xephyr etc, with both ubuntu's Xephyr and the binary taken from your suggested source.
looking forward to any pointers/help
#103 - edison 2007-11-04 15:12 - (Reply)
Appreciating of your great Howto.i am trying to build multihead system with two ATI PCI cards on fedora 7,xorg7.1.when i input " X -novtswith -sharevts -layout seat0 :0" it sounds well(one screen works with one mouse and one kbd) though there a warning info"(WW) RADEON: No matching Device section for instance (BusID PCI:2:3:0) found",also is seat1.
when i startx,the 1st display goes well,and there is some other warning infomation:
(WW) RADEON: No matching Device section for instance (BusID PCI:2:3:0) found
(gnome-panel:3814): GConf-WARNING **: Directory `/apps/panel/toplevels/bottom_panel_screen1/screen' was not being monitored by GConfClient 0x9028358
(gnome-panel:3814): GConf-WARNING **: Directory `/apps/panel/toplevels/top_panel_screen1/screen' was not being monitored by GConfClient 0x9028358
** (gnome-panel:3814): WARNING **: Failed to establish a connection with GDM: 没æé£ä¸ªæ件æç®å½
there is part of my /etc/gdm/custom.conf:
name=Standard server
command=/usr/bin/X0 -novtswitch -sharevts -isolateDevice -layout seat0 :0
name=Standard server
command=/usr/bin/X1 -novtswitch -sharevts -delay -layout seat1 :1
And parts of my xorg.conf are :
Section "ServerLayout"
Identifier "seat0"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Section "ServerLayout"
Identifier "seat1"
Screen 0 "Screen1" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
Section "Device"
Identifier "Card0"
Driver "ati"
VendorName "ATI Technologies Inc"
BoardName "Radeon Mobility M7 LW [Radeon Mobility 7500]"
BusID "PCI:2:0:0"
Section "Device"
Identifier "Card1"
Driver "ati"
VendorName "ATI Technologies Inc"
BoardName "Radeon Mobility M7 LW [Radeon Mobility 7500]"
BusID "PCI:2:3:0"
Best regards!
edison from China
#104 - edison 2007-11-05 21:46 - (Reply)
i am trying to build multihead system with two ATI PCI cards on fedora 7,xorg7.1.when i input " X -novtswith -sharevts -layout seat0 :0" it sounds well(one screen works with one mouse and one kbd) though there a warning info"(WW) RADEON: No matching Device section for instance (BusID PCI:2:3:0) found",also is seat1.
when i startx,the 1st display goes well,and there is some other warning infomation:
(WW) RADEON: No matching Device section for instance (BusID PCI:2:3:0) found
(gnome-panel:3814): GConf-WARNING **: Directory `/apps/panel/toplevels/bottom_panel_screen1/screen' was not being monitored by GConfClient 0x9028358
(gnome-panel:3814): GConf-WARNING **: Directory `/apps/panel/toplevels/top_panel_screen1/screen' was not being monitored by GConfClient 0x9028358
** (gnome-panel:3814): WARNING **: Failed to establish a connection with GDM: ?2???é?£??a?????????????
there is part of my /etc/gdm/custom.conf:
name=Standard server
command=/usr/bin/X0 -novtswitch -sharevts -isolateDevice -layout seat0 :0
name=Standard server
command=/usr/bin/X1 -novtswitch -sharevts -delay -layout seat1 :1
And parts of my xorg.conf are :
Section "Device"
Identifier "Card0"
Driver "ati"
VendorName "ATI Technologies Inc"
BoardName "Radeon Mobility M7 LW [Radeon Mobility 7500]"
BusID "PCI:2:0:0"
Identifier "Card1"
Driver "ati"
VendorName "ATI Technologies Inc"
BoardName "Radeon Mobility M7 LW [Radeon Mobility 7500]"
BusID "PCI:2:3:0"
Section "Device"
#105 - DeNNiS 2007-11-19 08:52 - (Reply)
Can't you just plug in a USB Headphone or Speaker to each console for individual sound? Thanks.
#106 - eros 2008-01-30 06:57 - (Reply)
Situation one dualhead card and all people say use zephyr etc.
I use one dualhead matrox G550 (vga+dvi) with two independed X servers. There are trics:
In some init.d script (I use console-screen.sh) add lines:
# matroxfb option outputs don't work, but
# matroxset is ok
/sbin/modprobe matroxfb_base outputs=122 dfp=1
/sbin/modprobe matroxfb_g450
/sbin/modprobe matroxfb_crtc2
# -m 4 is null. bit option 4=0100. use it if you
# need swap monitors
/usr/bin/matroxset -m 1 -f /dev/fb0
/usr/bin/matroxset -m 2 -f /dev/fb1
# select correct modes for you monitors
/bin/fbset -a -fb /dev/fb0 "1152x864-75" -depth 24
/bin/fbset -a -fb /dev/fb1 "1024x768-75" -depth 16
in xorg.conf:
Section "InputDevice"
Identifier "keyb-0"
Driver "evdev"
# at keyboard Option "Device" "/dev/input/event0"
Option "XkbModel" "evdev"
Option "XkbLayout" "fi"
Section "InputDevice"
Identifier "keyb-1"
Driver "evdev"
# check correct from /proc/bus/input/devices Option "Phys" "usb-0000:00:1d.3-1/input0"
Option "XkbModel" "evdev"
Option "XkbLayout" "fi"
Option "AutoRepeat" "500 30"
# some evdev options
# Option "evBits" "+1"
# Option "keyBits" "~1-255 ~352-511"
# Option "Pass" "3"
Section "InputDevice"
Identifier "mouse-logi"
# may need driver evdev
Driver "mouse"
Option "CorePointer" Option "Name" "Logitech USB-PS/2 Optical Mouse" Option "Protocol" "ExplorerPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true"
Section "InputDevice"
Identifier "mouse-red"
Driver "mouse"
Option "CorePointer" Option "Name" "USB Optical Mouse" Option "Protocol" "ExplorerPS/2" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "true"
Section "Device"
Identifier "Matrox0"
Driver "fbdev" Option "fbdev" "/dev/fb0"
Section "Device"
Identifier "matrox1"
Driver "fbdev" Option "fbdev" "/dev/fb1"
Section "Monitor"
Identifier "eclipse"
Option "DPMS"
Section "Monitor"
Identifier "kfc"
Option "DPMS"
Section "screen"
Identifier "seat0"
Device "matrox0"
Monitor "eclipse"
DefaultDepth 24
#modes from fbset
SubSection "Display"
Depth 24
Modes "1152x864"
Section "screen"
Identifier "seat1"
Device "matrox1"
Monitor "kfc"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x768"
Section "ServerLayout"
Identifier "X0"
Screen "seat0"
InputDevice "keyb-0" "SendCoreEvents"
InputDevice "mouse-logi" "SendCoreEvents"
Section "ServerLayout"
Identifier "X1"
Screen "seat1"
InputDevice "keyb-1" "SendCoreEvents"
InputDevice "mouse-red" "SendCoreEvents"
and kdmrc sections:
ServerCmd=/usr/bin/X :0 -sharevts -layout X0 vt08
ServerCmd=/usr/bin/X :1 -sharevts -layout X1 vt07
I still have up arrow broblem in ubuntu dapper. It need patchig, not fun. Maybe some ubuntu people can backport patch?
#106.1 - eros 2008-02-01 06:57 - (Reply)
hmm, some CR broblems in previous xorg.conf, be care.
I suggest some fix in kdmrc:
ServerCmd=/usr/bin/X :0 -layout X0 vt07
ServerCmd=/usr/bin/X :1 -sharevts -layout X1 vt08
So you first seat is able to use console mode.
Up arrow broblem needs patching to kdelibs4c2a package. use apt-build --patch method. it take long time and need /var 2GB+.
Patch is this known patch:
--- kdelibs-3.5.2/kdecore/kkeynative_x11.cpp
+++ kdelibs-3.5.2/kdecore/kkeynative_x11.cpp
@@ -106,12 +106,15 @@
return false;
- // FIXME: Accomadate non-standard layouts
// XKeysymToKeycode returns the wrong keycode for XK_Print and XK_Break.
// Specifically, it returns the code for SysReq instead of Print
- if( m_sym == XK_Print && !(m_mod & Mod1Mask) )
+ // Only do this for the default Xorg layout, other keycode mappings
+ // (e.g. evdev) don't need or want it.
+ if( m_sym == XK_Print && !(m_mod & Mod1Mask) &&
+ XKeycodeToKeysym( qt_xdisplay(), 111, 0 ) == XK_Print )
m_code = 111; // code for Print
- else if( m_sym == XK_Break || (m_sym == XK_Pause && (m_mod & ControlMask)) )
+ else if( m_sym == XK_Break || (m_sym == XK_Pause && (m_mod & ControlMask)) &&
+ XKeycodeToKeysym( qt_xdisplay(), 114, 0 ) == XK_Pause )
m_code = 114;
m_code = XKeysymToKeycode( qt_xdisplay(), m_sym );
Index: kdelibs/kdecore/kglobalaccel_x11.cpp
--- kdelibs-3.5.2/kdecore/kglobalaccel_x11.cpp
+++ kdelibs-3.5.2/kdecore/kglobalaccel_x11.cpp
@@ -161,7 +161,9 @@
uchar keyCodeX = key.code();
uint keyModX = key.mod() & g_keyModMaskXAccel; // Get rid of any non-relevant bits in mod
// HACK: make Alt+Print work
- if( key.sym() == XK_Sys_Req ) {
+ // only do this for the Xorg default keyboard keycodes,
+ // other mappings (e.g. evdev) don't need or want it
+ if( key.sym() == XK_Sys_Req && XKeycodeToKeysym( qt_xdisplay(), 111, 0 ) == XK_Print ) {
keyModX |= KKeyServer::modXAlt();
keyCodeX = 111;
I still need to say:
setxkbmap -rules base -model evdev -layout fi
Because that old kcontrol don't have evdev keyboard layout.
I put that line in /etc/kde3/kdm/Xsetup
and disabled keyboard layouts in kcontrol. It seems help and I have full working multiseat machine with two independed xservers in one matrox g550.
Next I need to test is it posible to use mga driver for first seat and fb1 for second. So I can get some advantages in first seat..
Btw is it posible to do same FB trick in dualhead nvidia card? Have nvidia kernel module independed framebuffers?
#106.2 - eros 2008-02-01 11:32 - (Reply)
Oh and one thing more, you need to remove from grub/menu.lst all "splash" words.
They seems to confuse matroxset. I found that when upgraded kernel..
#107 - RHN 2008-02-10 13:53 - (Reply)
Hello, I am an openSuSE user. I have tried to set up a dualseat system for home, but I can not load the kdm login screen in each monitor at startup. My xorg.conf is fine. Also, my kdmrc and my /etc/X11/xdm/Xserver. But the xdm init.d script just load :1, instead of :0 or both. Any suggestion?
#107.1 - Mario Felt 2008-04-06 04:24 - (Reply)
Restart kdm after first try?
Here its like:
/etc/init.d/gdm start
-> does not work
/etc/init.d/gdm stop
/etc/init.d/gdm start
-> works
#108 - Christian 2008-02-18 15:56 - (Reply)
I had trouble, because my system does not use the same /dev/input/eventXX for my usb input devices.
This happens sometimes when I unplug a mouse and replug it again.
This can also happen with a usb dvb-t receiver which behaves differently after a reboot (warm state) and after power off (cold state).
Now I use /dev/input/by-path/XX instead.
#109 - Eddy Setyawan 2008-02-21 23:08 - (Reply)
I run multiseat system with fedora 8 using onboard Nvidia 6100 and PCI-X nvidia 7200 my current xorg.conf is
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Option "RenderAccel" "1"#TV Out Setup
Option "NvAGP" "1"
Option "HorizSync" "tv: 30-50"
Option "VertRefresh" "tv: 60"
Option "TVStandard" "PAL-B"
Option "TVOutFormat" "AUTOSELECT"
Option "ConnectedMonitor" "TV"
Option "MetaModes" "tv: 1024x768"
BusID "PCI:2:0:0"
Section "Device"
Identifier "Videocard1"
Driver "nvidia"
BusID "PCI:0:5:0"
and i use Load "int10" at section module
my gdm configuration is something like this:
name=TV Server
command=/usr/bin/X -br -layout "TVLayout" -sharevts vt9
name=Desktop Server
command=/usr/bin/X -br -layout "DesktopLayout" -sharevts vt9
it's run very stable, but one problem is my cpu climbing to 100% after 2nd seat is running (Desktop Server) i try to run with strace and found that this:
gettimeofday({1203649687, 530119}, NULL) = 0
select(256, [1 3 4 5 6 7 15 16 17 20], NULL, NULL, {530, 796000}) = 1 (in [7], left {530, 796000})
rt_sigprocmask(SIG_BLOCK, [IO], [], = 0
read(7, "", 64) = 0
rt_sigprocmask(SIG_UNBLOCK, [IO], NULL, = 0
gettimeofday({1203649687, 530330}, NULL) = 0
gettimeofday({1203649687, 530363}, NULL) = 0
select(256, [1 3 4 5 6 7 15 16 17 20], NULL, NULL, {530, 796000}) = 1 (in [7], left {530, 796000})
rt_sigprocmask(SIG_BLOCK, [IO], [], = 0
read(7, "", 64) = 0
was loop without limit
anyone know how to solve this problem ?
#110 - Damiano 2008-04-02 10:22 - (Reply)
I followed this guide to build a multiseat with two
monitors. I have an integrated graphic card ATI X1200 using vesa driver and a PCI card ATI rage 3d pro using ati (mach64) driver.
I have a big problem when I end session on principal workspace (ATI X1200) I lose secondary display getting a blank screen and a "out of gamma scans" message altough X is normally running. It'a known problem? Changing PCI card may help?
#110.1 - damiano 2008-05-15 09:54 - (Reply)
since nobody replied I tried many tricks. And finally I found a partial solution sending to kernel a sighup signal referring to the X process on the secondary display
#kill -SIGHUP $(echo $(ps aux |grep X|grep \ :1)|cut -d" " -f2)
#111 - Christopher 2008-05-22 07:46 - (Reply)
Hi Chris,
First of all thank you for the tutorial; it has been most helpful.
I'm running a 2-seat Opensuse 10.3 distribution, which performs flawlessly; 1 seat can be watching HD video in MythTV while the other plays Quake at ultra settings; both run at 1680x1050 and run compiz-fusion and many apps without breaking a sweat. It never crashes, never really requires a reboot or anything of the sort.
To put a long story short; the multiseat configuration is complete bliss; save 1 remaining snag.. Sound.
The system is running KDE; i've tried:
custom .asoundrc files
overriding device location in control center
customizing kdestart using the directions in
the (X Multiuser HOWTO).
manually selecting specific mixers..
The MythTV end of my multiseat uses the onboard HDA Intel device and my 'work-seat' uses a Trust USB Sound Expert device. Both cards work fine if selected for any task; but getting a clean seperation seems impossible; (without running Jack of PulseAudio which I don't wish to).
Is it possible in some way to force each sound device to "stick" to a particular seat-layout?
Any help would be greatly appreciated as I've googled myself silly looking for the answer..
Kind regards,
Christopher Hutchinson
#112 - bungkusi 2008-05-24 14:18 - (Reply)
i'm planing to do the multiseat just for fun.
can i do this:
1 computer
2 dual-head video card
2 mouse
2 keyboard
1 wacom tablet.
to be:
user #1: 2 monitor, 1 mouse, 1 keyboard, 1 wacom
user #2: 2 monitor, 1 mouse, 1 keyboard
#113 - maina 2008-06-05 10:46 - (Reply)
Hi, i would really appreciate if you could send to me configuration scripts to automate the multiseat X configurations, am planning to implement a multiseat system where one seat can support 10 users.Since am in Africa where prices for buying computers is still a hindrance to many, i think such configurations will be of great help.! I will be using fedora (either 7, 8 or 9).
Thanks in advance.
#113.1 - nml said:
2008-07-03 01:53 - (Reply)
I have wrote a script to automate the multiseat configuration by referencing this (chris tylers) blog and other web resources also we have rematered Ubuntu 8.04 with adding this script to it. The script is available at http://nmlaxaman.blogspot.com you can try it at http://ucsc.cmb.ac.lk/wasn/ , Research page.
#114 - Richard 2008-06-06 22:40 - (Reply)
Thank you, Chris for such a detailed tutorial.
I have followed to step 9. without trouble and can start each seat in turn, using the correct keyboard and mouse.
Like some others, starting a second seat disables the previous seat. For example, each time I start seat0
sudo X0 -novtswitch -sharevts -layout seat0 :0 & xterm -display :0 &
seat0 works correctly. But if seat1 was running seat1 becomes non-responsive. seat1 also runs near 100% cpu, and Xorg.1.log shows the following, over and over.
(**) RADEON(0): DC flush timeout: ffffffff
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): Idle timed out: 127 entries, stat=0xffffffff
(EE) RADEON(0): Idle timed out, resetting engine...
(**) RADEON(0): DC flush timeout: ffffffff
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): Idle timed out: 127 entries, stat=0xffffffff
(EE) RADEON(0): Idle timed out, resetting engine...
(**) RADEON(0): DC flush timeout: ffffffff
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): Idle timed out: 127 entries, stat=0xffffffff
(EE) RADEON(0): Idle timed out, resetting engine...
If I then start seat1,, seat1 works, seat0 becomes non-responsive and the errors appear in Xorg.0.log
Where should I be looking next?
#115 - sourabh bora 2008-06-27 21:55 - (Reply)
Cheap USB Sound card:
Has anyone tried the $3 USB sound cards from dealextreme.com ?
I have tried it with VMWARE (giving the virtual machine its own cheap sound )
#115.1 - Chris Tyler 2008-07-16 09:36 - (Reply)
Wow, thanks for the pointer. I tried dealextreme.com's SKU 5831 and they work beautifully (I already have one from another source that looks like their SKU 14248).
We're using the PulseAudio defaults to direct the output, which works because the same users login to the same seats all the time -- I think you'd have to play with the configuration a bit to get PulseAudio to set the default according to the display number so it changed if you logged into a different seat.
#116 - SaperPL 2008-07-08 19:10 - (Reply)
Hi! Im currently trying to set up dual seat on my pc but ive got some large problems. First of all when i check if second terminal on second monitor runs(and it does) the first display is turning off. I can use one or another by switchin ctr+alt+F7/F9 but not both of them. I think its because of that i have dual headed 9600GT, not two separate cards. Second thing is that even when i try solutions such as userful desktop-multiplier it doesnt work and crashes my system. This is my system specs:
Asus K8N-DL
2xOpteron 270
2x1GB of ECCR
Gainward 9600GT 1GB
running Xubuntu 8.04 kernel 2.6.24-19-generic
#117 - Filipe Garcia said:
2008-07-20 05:10 - (Reply)
Hi there
So i´ve been reading allot of info these few days about setting up a multi-seat system here at my house, altough there are some questions i could not get cleared so here they go :
I´ve already set up in the past a similar system based on xinerama on a dual headed card, altough i dont recall if i could use the tv-out to extend the screen
to get { VGA+DVI to VGA+TV Out }, the idea would be to setup something like that, but on top of it run xephyr or xgl to get 3 independent seats, 2 for "regular" computing and the third (tvout) to be used as a media center for dvd+divx+pc tv sat viewing.I guess this is not possible leaving only a vga+tvout or vga+dvi to vga, right ?
The other question i don´t get clear is usb devices, the idea i get is that everytime i would reboot they would have a distinct BUSID (keyboard+mouse+sound card) so having to set up xorg.conf again.The main issue is so that i get the same goup assign to the correct seat, cause one of the groups would be on a distinct room, i mean that the keyboard/mouse i leave on the living room wouldn´t end up controlling the one on the room and the one on the room controlling the living room.
Is it possible to have 3d accel under xinerama or similar setup, running xephyr ? I know we´ve got xgl altough it says on the project page it´s not stable enough :S
I bring you these questions because i cannot add a second graphics card because all slots are currently occupied and the only solution i can see is setup another computer either as a "dumb" terminal.
Thanks in advance !
#118 - darion 2008-07-21 06:00 - (Reply)
You can build 3D Multiseat with my tutorial.
Look at http://www.automation.dn.ua/linux/3d-multiseat_en.html
#119 - maish 2008-07-25 02:49 - (Reply)
Is there someone who has an automating script that works with dual head vga cards(ATI).? If yes kindly let me have it, am setting up a multiseat and i ave dual head vga cards, but trying to map two monitors on dual head cards only one monitor works the 2nd one goes blank.I have been googling and pulling my hairs for months without success.!
#119.1 - Mike Tinsay 2008-11-05 02:53 - (Reply)
Try this: http://www.michaeltinsay.com/index.php?q=2Seat-Gutsy-Xephyr
#120 - Jakub Sadowski said:
2008-08-31 00:08 - (Reply)
Well here's to saving people a bunch of hellish problems due to the new HAL/X11 Input Hotplaguing infrastructure. It may manifest itself in your keyboard Delete and/or Arrow keys launching KSnapShot or all keyboards/mice providing input to all seats in a MultiSeat configuration. This is due to HAL automatically adding keyboards and mice to your running Xserver rendering your xorg.conf input settings null. It really butchers MultiSeat setups...luckily I found this gem in the ServerFlags section of the new xorg.conf:
Option "DisableModInDev" "boolean"
This disables the parts of the Xorg-Misc extension that can be
used to modify the input device settings dynamically. Default:
that functionality is enabled.
#120.1 - Ken Litko said:
2008-12-13 09:02 - (Reply)
Actually what you want to set is:
Section "ServerFlags"
Option "DisableModInDev" "true"
Option "AutoAddDevices" "off"
I found this after a lot of heartburn.
#121 - Anonymous 2008-10-09 07:31 - (Reply)
Hi there,
great page!
00:05.0 VGA compatible controller: nVidia Corporation C51G [GeForce 6100] (rev a2) (prog-if 00 [VGA controller])
pci express
03:00.0 VGA compatible controller: nVidia Corporation GeForce 8400 GS (rev a1) (prog-if 00 [VGA controller])
Did work as outlined in the howto. But: signal to the monitor (HW223D) connected to the onboard GPU (VGA) was strange , no backlight strange colours, etc. but readable and did respond correctly to input and mouse, also monitor info said 60Hz,1680x1050.
When I chose to init the onboard GPU instead of the PCIex card in the BIOS everything works fine. Also onboard GPU was set to "Always enable" instead of "Auto" in the BIOS.
NVIDIA Driver Version: 177.67
The X.Org Foundation 11.0
Happy hacking
#122 - Fred Trotter said:
2008-10-23 22:37 - (Reply)
I would like to offer $500 towards either a set of setup scripts or a detailed howto based on Fedora 9 or 10.
Someone in my community (FOSS health software) needs this to help automate a health facility.
Feel free to contact me directly rather than communicate through the blog.
#123 - Richard Neill said:
2008-10-25 19:31 - (Reply)
Firstly, let me say thank you very much! Also, may I advise creating some udev rules so that the device naming is persistent. Otherwise, /dev/input/eventX is subject to X changing.
In my particular setup, I have PS2mouse, PS2kbd, usbmouse, usbkbd.
I have the following in /etc/udev/rules.d/10-local.rules:
#Rules for the various different mice/kbds on the system
#First, identify the devices. cat /dev/input/mouseX and cat /dev/input/eventX while moving the devices
#Second, find a relevant udev rule. Pick one stanza only for identification. udevinfo -a -n /dev/input/mouseX
#Third, write the rule here. Remember use "==" to match attributes, and "=" to define attributes.
#Fourth: run udevcontrol reload_rules; udevtrigger to make it update, then test. (if inotify is enabled, the udevcontrol reload_rules may be omitted)
#Fifth, use the symlink in xorg.conf
#See http://reactivated.net/writing_udev_rules.html for an excellent explanation of udev rules
#PS/2 mouse behind bar (usually /dev/input/mouse3)
#Symlink as /dev/input/ps2mouse-bar
KERNEL=="mouse*",DRIVERS=="psmouse",ATTRS{description}=="i8042 AUX port",NAME="input/%k",SYMLINK="input/ps2mouse-bar"
#USB mouse in front of bar (usually /dev/input/mouse1)
#Symlink as /dev/input/usbmouse-public
KERNEL=="mouse*",ATTRS{name}=="Genius NetScroll + Traveler",NAME="input/%k",SYMLINK="input/usbmouse-public"
#PS2 keyboard behind bar (usually /dev/input/event1)
#Symlink as /dev/input/ps2kbd-bar
KERNEL=="event*",SUBSYSTEM=="input",CLASS=="kbd",ATTRS{description}=="i8042 KBD port",NAME="input/%k",SYMLINK="input/ps2kbd-bar"
#USB keyboard in front of bar (usually /dev/input/event4)
#Symlink as /dev/input/usbkbd-public
KERNEL=="event*",SUBSYSTEMS=="input",ATTRS{name}=="USB-compliant keyboard",ATTRS{phys}=="*/input0", NAME="input/%k",SYMLINK="input/usbkbd-public"
The result is that I have the following symlinks in /dev/input, which means I can refer, in xorg.conf, to devices by their symlink name (eg usbmouse-public), rather than the eventX name:
ps2kbd-bar -> event1
ps2mouse-bar -> mouse3
usbkbd-public -> event4
usbmouse-public -> mouse1
Using symlinks like this has 2 advantages:
- the names are meaningful to me
- the names are persistent, even when the event name changes, or the devices are plugged into different usb ports.
#124 - Tapan Chugh 2008-10-30 11:37 - (Reply)
though the page is great i am unable to do it and see it myself as had a problem
I tried using two seats. However when i connected the second video adapter and the monitor and the input devices, the boot process was visible only on 1 monitor. So does it work like that only and the display will come when the system is set up to use the two video adaptors or am i somewhere wrong with my BIOS settings please help
#125 - Gonzalo del Castillo 2008-11-29 19:32 - (Reply)
Hello people,
i leave some testings for the cause:
in ubuntu 8.4/8.10 gdm dont work with the guide config but Xorg work ok.
in ubuntu 7.10 gdm work & Xorg working ok
If you are planing to do this multiseat config with 1 nvidia geforce card with 2 output (dvi + dvi / dvi + vga /whatever) i almoast can confirm, this will not work.
I was trying to do, the multiseat thing with severals motherboards with nvidia geforce 6100/7100 onboard + some other nvidia pci express 7200 gs card with no success.
The monitor of the onboard geforce dont have signal. (i tried nv, nvidia and vesa drivers)
Today i tried an asus m3a78-em + ati hd 4650 and the onboard monitor work (the pci express card too). I cant test the multiseat config, but i have hope with this motherboard.
#126 - tim 2009-01-02 09:25 - (Reply)
Help please! Publish working variants of files gdm.conf and xorg.conf. My configuration: FX 5500, X Window System Version 7.0.0, Ubuntu 6.06 (kernel 2.6.15-27), NVIDIA compiled for 4.0.2, module version = 1.0.8776. Thanks!
#127 - LinuxNoob said:
2009-05-25 02:38 - (Reply)
Hi Chris, I'm from the Philippines and I commend your efforts for the advancement of multiseat. This will truly benefit everyone, especially third world countries.
Now that fedora 11 is just around the corner, do you have any updates on how a "Plug and Click" solution works? I read that the new fedora would have an out-of-the-box multiseat support? Is it true that it was postponed for the next release? fedora 12?
Again, Great work on multiseat Chris! The whole catholic country of the Philippines supports you! I am a PHP programmer, if you have any task that you can give me to help expedite the process of an out of the box solution please send it to me. I think I maybe able to help. I am really excited on this!
Regards, and more power!