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
You could run multiple versions of XWindows using different configuration files.
In the configuration file you specify where the input devices come from and how you graphics card is setup so it should be faily easy to get one instance of X pointing to one KVM combination and one to the other.
thank God the internet isn't a human right.
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'.
In theory (and practice) you can run two X servers on different graphics cards. Plug in multiple mice and keyboards. Configure two xorg.conf files. You will have to do both manually.
If you use USB you can easily plug in as many keyboards and mice as you want, but how will you know in advance which is which?
Looking at older hardware you could use PS/2 for the keyboards but I don't know if you can use two of them.
Another way might be to use a really old machine as an X terminal, and use a more powerful machine as the server. Personally I would use NetBSD on the terminal, and a good linux distro as the server because you want to have a nicely integrated desktop. Which is not to say BSD can't do that. I run BSD on my servers and ubuntu on my workstations.
At the end of the day, if saving a bit of cheap hardware means spending a lot on labour, then its probably not worth it.
http://michaelsmith.id.au
It's a bit dated, and the patches to the X server sources will almost certainly have to be adjusted to work on the current sourcebase, but here's a HOWTO from someone who did it.
It's the third hit on a Google search for "multiple keyboards X11", BTW.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
This should be easy doable with Linux and X server. You need to plug in two video cards, two sets of USB keyboard/mouse and configure it a bit (but it should be not too hard) and it will work.
I don't think there is even legal possibility to do it with standard customer Windows version since it specificaly prohibits multiplexing of input/output devices/user sessions in its EULA.
So you basically have just one route - Linux (or *BSD or other freenix) and X11.
http://linuxgazette.net/124/smith.html
:)
Not all good news though, seems it was a bit unstable. Still, it's a start.
Wasn't there a company around 10 years back that sold add on cards that did this trick? Does that technology exist today or did it die out? I recall that the card had a video head along with ps/2 connectors. I saw it on one of the small time computer tv shows.
Check this out: http://www.linuxtoys.org/multiseat/multiseat.html
This level of salvage is a labor of love. There is quite a lot of open box work happening anyway. I agree with yours and other posts that X11 is the way to go. There are a lot of schools that get junk as donations and this kind of creativity is something to be admired.s -selling-solar.html
--
Solar power installed at no charge: http://mdsolar.blogspot.com/2007/01/slashdot-user
At one point I did some extensive searching to find an application / driver that would allow even partial multiuser control over Windows. We have a multimedia PC with two video outputs, one of which is dedicated to projection. Due to the physical layout of our control room, there are two keyboards and mice attached to the computer. All I wanted was a utility that gave each mouse its own pointer, so that two people could interact with my two custom programs at once. I never could find anything providing even that simple functionality, and it wasn't necessary enough for me to implement it myself.
So, an Microsoft OS is most likely out of the question for what you want to do.
Dan East
Better known as 318230.
Let's expand the parameters a bit - disparate hardware, maybe someone wants one of your existing PCs to run Windows occasionally (or a teacher with a Mac wants onto the shared box): Try XRDP. It sets up quickly, can be access by multiple platforms, and on the client end just requires an rdesktop command.
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.
"There is nothing nice about Steve Jobs and nothing evil about Bill Gates." - Chuck Peddle
I was recently at the university of vermont and they have this technology in their libraries, they use a linux distribution based on ubuntu called groovix.
I'm not entirely sure if you can use this without buying their hardware, but it may be something to look into.
Edubuntu will do this out of the box for you. It's designed specifically for this sort of situation.
As an alternative, why net take the best parts and build a decent server, and then build as many thin clients as you can make. That way you can also lock down the thin clients and only have to maintain software on the server.
[Insert pithy quote here]
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.
A standard PC nowadays comes with two graphics outputs (if you have a discrete graphics card, anyway - or standard laptops which have a built in screen plus a VGA/DVI port) and uses USB for keyboard and mouse (you can even get USB speakers). The hardware capabilities (and computing power) to allow 2 sessions are right there! Why can't you just plug the peripherals in, click a config button, and go?
I understand MS/Apple might want to sell more software... doesn't explain why linux doesn't do it.
I've been looking on and off for software to allow 'suspension' and 'reconnection' of X servers.
The idea is:
One large super server
A bunch of X Servers.
Worker Bee starts X server, connects to server and get apps/desktop up and running the way they like. Comes 5 PM, they put the X session "to sleep" and turns off X Server. Next day, they turn on the X server, and do a 'reconnect' - BAM! Right back where they left off.
Has anyone seen this yet?
As I have been in your exact situation, I know how it is. The best solution I have found is the Xtenda X series from http://www.ncomputing.com/ . It is a PCI card and a small box that will allow you to attach up to 3 additional K/V/M sets to a single host computer. If your host PC is powerful enough, you can install 2 PCI cards and run an extra 6 PC's from the host. For only about $200 for a kit (1 PCI card, 3 K/V/M boxes and the software) they are very affordable. Good luck.
I have not used these products, so I cannot personally vouch
for them:
www.ncomputing.com
They offer a solution that sounds like what you want.
X Terminals, either diskless or just enough to load X and then everything else comes from one Big Box.
Or something like:
http://www.linuxtoys.org/multiseat/multiseat.html
6 monitors, keyboards, mice, one tower.
Don't blame me, I voted for Kodos
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.
According to that webpage, it seems to work in linux too...
The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
This is a horrible way to do it. Whip out the hard disks and turn them into Thinstations or LTSP systems. Even the old pentiums.
Turn what's left of the better machines into an array of X servers.
Deleted
Sun Ray server runs on Solaris 10 sparc and X86, which BTW includes StarOffice and Mozilla,so editing, email and webbrowsing should be no problem. If you want you can even use some Linux distros. More info at http://www.sun.com/desktop/index.jsp?tab=1
I suspect that the donated kit isn't actually going to be "latest and greatest" stuff, so having one CPU handle multiple sessions may slow things down a bit too much.
Once you've factored in the cost of your time, power consumption and (un)reliability maybe a more cost effective approach might be to consider donated kit for discrete server functions and buy one or more newer faster desktops to handle the multiple desktops? Maybe even do up the donated kit to sell on for "Internet access and email only" devices and use the cash elsewhere?
How do you manage quality of service issues in sharing an internet connection with 2 or more users if one wants to be doing general stuff (surfing the web, checking email, using skype etc) and the other wants to use up all the slack time with file sharing?
If I have seen further it is by stealing the Intellectual Property of giants.
Quite a coinkidink, but I happened across this very topic during some semi-related web browsing yesterday. Others have noted the http://www.ltsp.org/ packages. You can buy ready to go systems using this out of the box at http://www.shoprcubed.com/products.asp?cat=46 and probably others. I didn't explore it, but they may sell the pieces and parts you'd need to add for that functionality on donated hardware. Upside = works right away with minimal configuration. Downside = kind of pricey compared to the OP's intended use of recycled hardware. I'd tend to go with others suggestions of piecing together an x-server and building thin clients out of less burly systems left over.
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!
How about K12LTSP?
http://www.k12ltsp.org/
I think now you'd want boot from flash and DHCP. The minicomp would be a small box like a SohO router with SVGA out (only 2D required), 10/100baseT or wireless, a wall-wart for power, and USB or PS/2 for kbd/mse. Very tidy, very neat and very cheap. Add monitor, kbd, mouse and network to run.
Onboard SSH would be a must, but a key design decision would be whether to incorporate a browser client to the local X server. Doing so would usually improve performance and always cut X-traffic. But this would jeopardize making the box a stateless appliance. That might depend on whether the box was tethered to a server, or expected to work standalone.
With software, you can do much the same thing to much more powerful desktop and laptop machines using something like a Knoppix boot CD.
Linux works reasonably well for this. 2.6 does ok support for handling several keyboards, but it is still easier if one terminal uses PS/2, and the other one uses USB. Several graphics cards have been working for a long time, and with some graphics cards you can even use the two output for separate sessions. And with PCI-E you can also use two graphics cards without loosing any performance.
But the main questions remains: what do you gain? You still need two keyboards, two mice, two screens, two graphics cards, twice the RAM, and probably a faster processor. The only thing you can save is one harddisk and some space. Although with Linux, you can easily run a system of the server without any local hard disk.
The first thing you need to do is let X know about your keyboards and mice. Then create multiple layouts (all this done in xorg.conf). Then edit your login manager config file (works for both kdm and gdm) so that it starts multiple instances of itself using the specified X layouts.
Below is the entry I added to kdmrc for my dual layout config:
[X-:1-Core]
AllowNullPasswd=true
AllowShutdown=All
NoPassEnable=false
NoPassUsers=
ServerArgsLocal=-nolisten tcp -config
ServerCmd=/usr/bin/X -br
It's important to note that I while I did succeed in getting two X sessions running, and I was able to switch between them with alt-f7/alt-f8, I could not display both at the same time. Apparently you need a seperate video card for each session to pull this off successfully.
Take the most powerful computer you have, add 1 agp video card, and the rest pci video. Using a usb hub, plug in the appropriate amount of usb mice and keyboards (you can use the ps/2 ones for the main box), and then just configure the heck out of it, and it will work.
See this wiki on how to install Sun Ray Server Software on an Ubuntu system, and then acquire some SunRay2 DTU's to drive keyboards/monitors/mice. SunRay is a very simple way to drive multiple user sessions off single device. Enjoy.
VMWare
Try Groovix. This was mentioned above, but it's been overwhelmed by do-it-yourself solutions, and if you're the one IT guy for a charter school, you probably need it simple and reliable. Check out their distro. It's based on Ubuntu, and you can download it from their web site.
2 54
For more info, check this page: http://groovix.com/slim.html which explains how they support up to 10 seats (monitor, keyboard, mouse and speakers) per computer.
There's an article about Groovix being used in Maryland libraries here: http://www.linux.com/article.pl?sid=06/09/22/1542
The problem with a six seat computer is that nobody wants either of the bitch seats, and everyone wants driver or shotgun. That creates a bit too much tension in a school environment.
Also, you have to watch out for the older kids. They'll make it even more unstable by modding it with hydraulic suspension and ricer stickers.
This is one solution to your problem: http://userful.com/products/multi-station-how-it-w orks
We are looking into the XTENDA X300 solution. It is a card that uses CAT5 to connect to three remote XTENDA boxes that have monitor/keyboard/mouse/sound connections. You can install 2 cards per computer to have up to 7 PC's with one physical box. We like this for the following reasons:
1. Eliminate need for small switches in the classrooms.
2. Only maintain one computer.
3. Upgrades will be easier.
We still have some testing to do, but the preliminary stuff is very promising.
Check out http://www.ncomputing.com/ncomputing/products/dire ct.php
You can install this PCI card and have up to 4 users on a single Windows PC at the same time. Install 2 cards and have up to 7 users.
One card and 3 extenders cost less than $225.
What is M$' liability? Surely they were collecting licensing fees and knew what the machines were being used for. Given their warning, should they not have refused to license? Does their warning get them off the hook? Didn't work for Napster....s -selling-solar.html
--
Solar power with maintenance included: http://mdsolar.blogspot.com/2007/01/slashdot-user
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.
Hey;
Solaris can a lot more stable than Linux and these types of virtual classrooms can easily be put together with the SunRay server software. Used sunray appliances (read graphics card, keyboard ports, etc) can be found on ebay for cheap. You can download both Solaris and the SunRay server software from Sun. I've supported a class with 100 seats from a single machine (8 dual core cpu in that case). You can still do it on x86 for a a few seats with an older machine. And, if you prefer Linux, Redhat (and one or two others) is also supported.
I used LTSP in a cybercafe, worked great. userful.org has an interesting distribution. one computer, ten monitors+keyboards+mouse, ten users on one computer. Ndiyo has an interesting alternative, but it's not a product yet.
Build your own energy sources from scratch. http://otherpower.com/
I only haha at you.
8-D
I set up a K-12 school in Bolivia using 12 Multi-Head PC's driving 3 stations each giving 36 terminals. The original version used the Backstreet Ruby kernel patch and a hacked X server. It has been running stable for 2 years now. I have been trying out X.org which is stable with new (9631) Nvidia drivers (we use one onboard Nvidia graphics card and 2 Nvidia PCI graphics cards - around $50 each).
/ 14-Multiseat-X-Under-X11R6.97.0.html
I looked into an X terminal solution but the performance was not good enough. We want to run kids educational games that have nice graphics and things changing quickly on the screen - LTSP is too laggy. The machines use Athlon XP 2500+ processors with 512MB RAM.
Getting a stable configuration can be tricky. Chris Tyler's blog here:
http://blog.chris.tylers.info/index.php?/archives
has useful tips that helped me out - you have to wade through some crud to find them...
Ideally we would like to use VMware or Wine so the kids could play Windows educational games - they are lots of them and the kids love them. I have not been able to get the games to run on Wine however and with VMware, the performance is not good enough. We set up another Elementary lab with Win98 installed - PIII 750's with 128MB and 40GB 5400RPM drives is plenty for the type of games they run.
Good luck!
Feel free to contact me if you have any questions.
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.
That monster you describe would be a few thousand dollars in hardware costs, then office licenses. Windows needs what.. 1GB per user in that kind of environment.. It's not like there are junk workstations with 8gb of ram floating around (or stable versions of windows to use that much memory). If he wanted students to hot swap around one workstation anyway, he'd be better off with one login and a seperate little fileserver with per-user logins for data. That should work quite fine in a school environment.
You might want to check out BeTwin Software from Thinsoft. It runs on Windows XP and will allow up to four users on a single workstation. I'm currently using it on a Pentium 4 (3.2 GHz processor) and it works beautifully. Although, some of Microsofts patches play havoc with the application (I keep an image every month just in case one of those patches breaks something). I currently only have one client configured, but both host and client can be watching DVD movies concurrently with separate displays and individual sound, or both running Microsoft Office Applications or surfing the web. http://www.thinsoftinc.com/index.aspx
I've gotten close with MacOS and Parallels. I was able to designate a specific USB mouse to a specific VM, but I could not do it with the keyboard. If you can find a good VM that allows you to direct USB mice and keyboards without the parent OS seeing the inputs, you might have some luck. It'll also simplify your configuration because you can clone VMs at the click of a mouse.
No, I will not work for your startup
I have a stable 4-seat system at home that I use daily -- along with my wife and two daughters. It takes a bit of work to get a multiseat system set up, but once you do, you save electricity, hardware costs, and admin costs, and in a school setting you could deploy the same configuration across a number of systems. Previous posts have mentioned my blog entry and related discussion: http://blog.chris.tylers.info/index.php?/archives/ 14-Multiseat-X-Under-X11R6.97.0.html -- it's getting a bit dated but the basics will send you in the right direction. (There are other ways to do multiseat, too, and I'm including them in a chapter of an upcoming O'Reilly book).
... so now I'm shopping for a 64-bit box with a bit more RAM. We run standard desktop apps: OpenOffice.org, Firefox, the Gimp, various photo management programs, music players, Evolution, Google Earth, and so forth, and the performance is quite acceptable.
:-)
My system is a 32-bit AMD (Athlon XP 2800) with one AGP and three PCI NVIDIA cards, along with one PS/2 keyboard+mouse set and three USB keyboard+mouse sets. I have 1 GB of RAM, which has worked well until recently, when I added a Xen guest domain with some web services and dropped the amount of RAM available for multiseat use
3D desktops (Compiz/Beryl) do work in this configuration, but this machine is a bit under-powered to make them work really well. When I get my new box I expect that we'll all be running Compiz