Multiple Desktop Users on a Single Machine?
_Sharp'r_ asks: "I'm trying to design the least expensive way to make OpenOffice, email, and a web browser available to students in a new charter elementary school. In my past experience working with charitable computer donations, I can usually get three to four working computers out of five donated 'broken' computer systems, usually with plenty of monitors, keyboards and mice left over. I'd like to use one computer for multiple students by attaching multiple monitors, USB keyboards and mice. What drivers/OS versions support multiple local input devices and monitors that can be attached to a specific login session? Will this require virtualization? Is there a config I haven't found that you can use to assign these devices to specific ttys? Have you done this before?"
http://tldp.org/HOWTO/XFree-Local-multi-user-HOWTO /index.html
The HOWTO is a bit dated, but it is probably relevant enough to get you on the right track.
"Obscenity is the crutch of the inarticulate motherfucker." - cloak42
http://linuxgazette.net/124/smith.html/ 14-Multiseat-X-Under-X11R6.97.0.html0 0126OSDTHL
http://www.google.com/search?q=multiseat+x
http://cs.senecac.on.ca/~ctyler/ruby/
http://blog.chris.tylers.info/index.php?/archives
http://www.linuxtoday.com/infrastructure/20051207
s.clementmonkey@sympatico.ca, remove the 'monkey'.
http://linuxgazette.net/124/smith.html
:)
Not all good news though, seems it was a bit unstable. Still, it's a start.
Check this out: http://www.linuxtoys.org/multiseat/multiseat.html
You're thinking of nComputing and they're still around: http://www.ncomputing.com/ They have a nice hardware setup that allows up to 30 users on a single PC, and it runs on Windows 2000, XP, Server 2003, and Linux. You can also find them on TigerDirect http://www.tigerdirect.com/applications/SearchTool s/search.asp?keywords=ncomputing&image1.x=0&image1 .y=0
but is a different way to stretch junk hardware.
Have you looked at Linux Terminal Server Project? Any old junk makes an adequate client, memory requirements are something like 64MB.
There's an there's an active LTSP community, including guys use it in schools: www.k12ltsp.org.
Edubuntu will do this out of the box for you. It's designed specifically for this sort of situation.
Get one server quality computer and load it up with Ram. The rest of the machines will be thin clients and can be just about anything down to a Pentium I. You can even run the machines diskless. You'll want a good 10/100 switch and at least a 100Mb NIC in the server. There will be a lot of information traveling across your network. I've done setups like this for kids in similar situations with donated hardware. One cool thing about this is that the students have the same experiences no matter what machine they sit down and log into. They don't have to be at one particular machine because that is where they saved their work. Definitely check it out. There is also a K-12 version for kids. Good luck. http://www.ltsp.org/ http://www.k12ltsp.org/
http://userful.com/
I used this to set up 8 workstations (virtual art galleries, actually) out of two machines for a tattoo shop across town. I've followed some of the resources already linked on this topic and was never able to get such a setup working, but this software did it just fine. All you need are some dual-head video cards and USB hubs.
You're right on the money with this, and you can do it roughly based on the port (effectively) as often pairs of ports represent separately enumerated buses. I use:
" 03",SYSFS{bInterfaceProtocol}="02",NAME="input/%k" ,SYMLINK="input/evmouse-%b"" 03",SYSFS{bInterfaceProtocol}="01",NAME="input/%k" ,SYMLINK="input/evkbd-%b"
KERNEL="event*",BUS="usb",SYSFS{bInterfaceClass}=
KERNEL="event*",BUS="usb",SYSFS{bInterfaceClass}=
To persistently name the devices attached.
jh
Are you sure about that? AFAIK, what Edubuntu provides is LTSP, which allows you to run one machine with a bunch of thin clients attached to it, but each of the thin clients requires another PC. That's not the same as attaching multiple monitors and keyboards directly to one computer.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
http://biz.tigerdirect.com/applications/SearchTool s/item-details.asp?EdpNo=1870109&CatId=204&CMP=EMC -B2B&SRCCODE=WEDBB382
Allow up to 7 people to use a single Windows PC simultaneously.
You certainly don't need to patch anything. evdev support should be in current Xorg releases, and it works just nicely.
jh
There are a lot of different ways to do this under Linux; someone has already posted several links to some resources. The easiest way I found, and the way I've been running my two-seat, single-machine setup at home for about a year, is simply using the capabilities of newer versions of X Windows as described on Chris Tyler's blog (included in those links earlier).
All of the other methods I've seen require non-standard kernel modules or non-standard X servers, etc. This way uses standard software, and I think it should work for most modern distributions (I'm using Gentoo).
What you need hardware-wise:
The software setup is described fairly well in Chris Tyler's blogs (don't skip the comments - there are useful tips from others in there, and on this followup page), but here's the basic idea: You run two separate X instances, each with a different ServerLayout section in the config file. They obviously need to point to different video cards (and I found that using the "SingleCard" option was necessary to get both to work), and you also need to separate the input devices between the two. The best way to do this that I know of (again, avoiding odd kernel modules or other software) is evdev. It's somewhat complicated, but it lets you specify input devices based on where they are plugged in or their specific model numbers, etc. It's fairly flexible.
Once you have two separate X instances up and running, it's a fairly simple matter to get gdm (and I assume most other *dm applications) to launch both automatically with independent login screens.
Good luck!
The NComputing solution works and works well. They have 2 different soltions. One does up to 30, they have another that is a PCI card that adds 3 computers to a computer (giving you 4 stations) And for $250 for 3 additional seats (and can run a total of 7 w/ one physical CPU) its pretty reasonable. We are evaluating it for our school district now.
In your
I'm not sure whether X supports multiple keyboard yet. I seem to recall reading about a patch for XFree86 3.3.6, but that gives you an idea how long its been since I looked into it. If I were the OP and had a computer powerful enough to even consider this... Are you kidding? X was designed from the get-go with exactly this kind of use in mind. One powerful 66MHz [sic] machine would serve as the application and GUI server, while thin clients were essentially network-attached monitors. It was intended as a GUI analog to the then-extensive use of text-only dumb terminals.
Yes, operating systems and applications have become more resource-intensive over the past 20 years, but do you really believe someone needs even a 3GHz P4 for educational purposes? I've been using Linux on a 1.8 GHz Athlon XP laptop for the past two years for notetaking, programming and web browsing. Until six months ago, I had it underclocked to a mere 1.06GHz, and had no issues with anything that might be considered educational use.
For similar purposes, an Athlon64 X2 4800+ desktop machine with a gig of RAM should be able to support five or six users, as long as you watched out for applications prone to excessive memory usage. And that's a machine you can throw together for only $700. Divide that by six users, and you're talking about a mere $116 per user. That's cheaper than the OLPC. Hell, that's cheaper than I've seen 500MHz desktops sell for at mom-and-pop shops in my area.
tasks(723) drafts(105) languages(484) examples(29106)
Here is the link you need:
p hp?n=Misc.DualSeatX
http://research.edm.uhasselt.be/~jori/page/index.
I recommend the Xgl method for the following reasons:
* free (GPL)
* lets you use both heads of dual-head cards (that's what I'm doing.. I have just one video card)
* allows you to use graphics acceleration (I've played opengl games on one screen while my wife was surfing on the other)
* seems stable
* works with your existing xorg / xgl binaries and kernel (no recompiling of these apps)
The instructions on the page are pretty good, but if you need help setting it up, I'd be happy to assist. See my website for my e-mail address.
It works good for us. I'm running Kubuntu AMD64.
Good luck.
I've just recenetly been trying to multiseat X, the linuxtoys.org and http://gentoo-wiki.com/HOWTO_Multiseat_X are good references on this, even though the gentoo one is a little outdated now. Anyway, I recommend either Ubuntu or gentoo for this and I used Xorg 7.1 with Gnome 2.16. I plugged an ATI Rage 128 with two matrox mga pci cards into the machine and started playing about, your core files that are going to allow you to do this is /etc/X11/xorg.conf & /etc/X11/gdm/custom.conf (or whatever flavour of xdm you are using)
Firstly in xorg.conf you will need to define your devices & seats as in the tutorial, a *WARNING* at this point. There currently exists a bug with multiseating within xorg, that if you don't have an active monitor and keyboard for each seat (excluding your primary device) then it will crash the entire system. (This bug has been reported)
Once you've done this it's the gdm configuration and I used the following:
0=Standard
1=Extra
[server-Standard]
name=Standard server
command=/usr/X11R6/bin/X0 :0 -deferglyphs 16 -novtswitch -isolateDevice
PCI:1:0:0 -layout seat0
flexible=false
[server-Extra]
name=Extra Server
command=/usr/X11R6/bin/X1 :1 -sharevts -deferglyphs 16 -isolateDevice PCI:0:9:0
-novtswitch -isolateDevice PCI:0:9:0 -layout seat1
flexible=false
This works for my system, the sharevts is a tricky option and it only served to give a display bug on my rage 128 (and wasn't required for the first video device).
I would also suggest you turn off any vtcontrol in xorg.conf, this can be done with:
Section "Serverflags"
Option "DontVTSwitch" "yes"
Option "DontZap" "yes"
EndSection
My conclusions? Multiseating can work very well, it's certainly on it's way to being more stable and certainly is viable for your situation.