Slashdot is powered by your submissions, so send in your scoop


Forgot your password?
GUI Input Devices Software

Multiple Desktop Users on a Single Machine? 106

_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?"
This discussion has been archived. No new comments can be posted.

Multiple Desktop Users on a Single Machine?

Comments Filter:
  • by Cocoronixx ( 551128 ) on Friday April 27, 2007 @07:41AM (#18898391) Homepage /index.html []

    The HOWTO is a bit dated, but it is probably relevant enough to get you on the right track.
    • 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.
      • by itwerx ( 165526 )
        Try XRDP

        Try RTFA :)

        XRDP still needs one box per user and that's what the submitter is trying to avoid.
  • 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.
  • by MichaelSmith ( 789609 ) on Friday April 27, 2007 @07:44AM (#18898425) Homepage Journal
    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.
    • Re: (Score:2, Interesting)

      by mathew7 ( 863867 )
      It's pretty easy to configure an X server to distinguish between a USB mouse+keyboard, and PS2 mouse+keyboard and create 2 sessions. I think you can even do it using 1 Nvidia (or ATI) card with 2 outputs.
      Since USB is dinamicaly allocating resources (IDs), I don't think you can put the same type of devices on one computer and expect to be mapped always to the same session, so going with a different configuration like I said before is risky.
      • by Bert64 ( 520050 )
        You could always use a PS/2 keyboard/mouse for one head, and USB for the other...
        You could also differentiate USB devices based on their vendor string, assuming you use different brands of USB devices.
      • by wed128 ( 722152 )
        using allocators like udev, you can assign a specific file descriptor to each usb serial number. This would allow for consistent mapping...
      • I haven't had luck with multiple heads on the same card. If you were to do that, you would need to have 1 X server and then have nested X sessions inside of it. Its not pretty.
        My wife and I shared a computer for about a year using Ubuntu 5.10. I had an Nvidia card for my screen, and a Radeon 9200 PCI for hers. I used PS/2 input, she used USB. It was nasty getting direct rendering going on the ATI as the Nvidia drivers overwrite some libraries. I eventually got it going by making a shadow tree of the /usr/
    • Labor of love (Score:5, Insightful)

      by mdsolar ( 1045926 ) on Friday April 27, 2007 @08:05AM (#18898551) Homepage Journal
      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.
      Solar power installed at no charge: -selling-solar.html []
    • At the end of the day, if saving a bit of cheap hardware means spending a lot on labour, then it's probably not worth it.
    • by fjf33 ( 890896 )
      If you are using DIFFERENT usb keyboards and mice then you can setup udev to allways give them the same /dev entry. I am not so sure you can do that based on which USB port they get plugged into.
      • by prefect42 ( 141309 ) on Friday April 27, 2007 @08:38AM (#18898799)
        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:

        KERNEL="event*",BUS="usb",SYSFS{bInterfaceClass}=" 03",SYSFS{bInterfaceProtocol}="02",NAME="input/%k" ,SYMLINK="input/evmouse-%b"
        KERNEL="event*",BUS="usb",SYSFS{bInterfaceClass}=" 03",SYSFS{bInterfaceProtocol}="01",NAME="input/%k" ,SYMLINK="input/evkbd-%b"

        To persistently name the devices attached.
        • by mewyn ( 663989 )
          There's also a PORT option in the udev config file. I use it for my Linux Arcade cabinet to have ports on a hub always be the same game pad number.
  • 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.

    • Re: (Score:3, Informative)

      by prefect42 ( 141309 )
      You certainly don't need to patch anything. evdev support should be in current Xorg releases, and it works just nicely.
  • 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.
    • It's doable but not easy. Linux has no way in the standard kernel (when I last looked at this) to differentiate input devices so all mice and keyboards end up globbed as one input device. You need to patch the kernel to separate them out. Once you've done that it's a relatively simple matter of configuring a number of X screens on the available video cards, working out which mouse and keyboard belong to which X screen and putting them physically in front of it.

      CPU speed is low priority - most users spend
      • > Linux has no way in the standard kernel (when I last looked at this)
        > to differentiate input devices so all mice and keyboards end up
        > globbed as one input device.

        You must have looked at it a long time ago. No patching is needed. It is just a simple matter of configuring Xorg to use different input/video devices for different screens. I am talking about X here. Regarding linux console (text one) you are right. []
  • by Anonymous Coward on Friday April 27, 2007 @07:55AM (#18898479) []

    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.
    • by Daemonik ( 171801 ) on Friday April 27, 2007 @08:07AM (#18898569) Homepage
      You're thinking of nComputing and they're still around: [] 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 s/search.asp?keywords=ncomputing&image1.x=0&image1 .y=0 []
      • by AusIV ( 950840 )
        That looks pretty cool. Probably not as cheap as a roll-your-own method, but undoubtedly more stable. The fact that they offer a 30 day free trial is also somewhat encouraging.
      • Re: (Score:2, Informative)

        by Kauppila ( 1094183 )
        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.
      • But thing like that needs a lot of ram and things can get real slow if you are running apps that need a lot of cpu power.
        • Anytime you have multiple users sharing the same PC, you want to have the beefiest PC that you can afford, it doesn't matter if it's a hardware OR a software solution. The newer PCs, however, with Dual and Quad cores make using them for something like this much easier.
      • I used a similar solution from some knock-off vendor (which I can't even *find* via google, at this point), and lemme tell ya, it was absolute crap. A system that was perfectly usable for a single user became unusable for just two users. The software that drove the second session would lock up the processor for extended periods of time... even when the second terminal wasn't being used at all.

        So, buyer beware. When done poorly, these solutions are worse than useless -- which makes the fact that they're f
    • by jayrtfm ( 148260 )
      That was probably and their Buddy system.
      I have their Betwin drivers, and in 9 classrooms I turned 1 system into 4 stations, saved the school about $16,000, and didn't have to worry about blowing the circuit breakers.
  • by Anonymous Coward on Friday April 27, 2007 @07:59AM (#18898501)
  • by Dan East ( 318230 ) on Friday April 27, 2007 @08:05AM (#18898553) Journal
    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
    • by athos-mn ( 64850 )
      I've seen an (illegal) hack to turn Windows XP into a terminal server. I'm not sure how legal this is (since there's no reference to purchasing additional Windows licenses), but ThinSoft's WinConnect [] has a commercial program that does the same thing the hack does. There are problems with WinConnect: the license is really harsh (PC died? Tough crap, buy another license), and Windows XP doesn't regulate resources well in this mode: if six people launch the same app, you have six separate instances (rather tha
      • Or you could just use Server 2003, no hacks needed there -- several users can connect at any time without any problems. Of course some applicatios are launched seperatly for each user, but for lightweight apps like web browsers, office and email it shouldn't be a problem. Oh wait, the submitter said he wanted to run OpenOffice...

        Anyway, this is how it can work with thin clients. I don't know if it's possible to get several separate mouse cursors in one client session, never tried that.
      • by jbarr ( 2233 )
        Hacking Windows XP Pro or using Server 2003 certainly would provide multi-user access, but you still need additional client boxes to access the multi-user environment, and that's not what he's looking for. He wants to leverage the "extra" keyboards, mice, and monitors on a limited number of PC's. In effect, he wants to create "multi-head" PC's, not multiple client boxes accessing a multi-user PC.

        Not currently doable in Windows AFAIK.
  • by Clover_Kicker ( 20761 ) <> on Friday April 27, 2007 @08:16AM (#18898623)
    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: [].

  • Edubuntu... (Score:5, Informative)

    by EvilGrin666 ( 457869 ) on Friday April 27, 2007 @08:28AM (#18898695) Homepage
    Edubuntu [] will do this out of the box for you. It's designed specifically for this sort of situation.
    • I don't think so... (Score:5, Informative)

      by swillden ( 191260 ) * <> on Friday April 27, 2007 @08:42AM (#18898833) Homepage Journal

      Edubuntu [] will do this out of the box for you. It's designed specifically for this sort of situation.

      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.

      • That's right, but this also might be better. True, you don't get to reuse the extra keyboards and monitors if the problem is dead motherboards, but what if the problem is dead disks? A motherboard with ethernet and graphics is going to work OK here and the solution looks pretty nice in terms of educational software pre-installed. This also looks nice from the system admin side and gives flexibility. If a working HD dies, your not out functionality of two seats you still have funtionality while you wait
  • by rlp ( 11898 ) on Friday April 27, 2007 @08:28AM (#18898697)
    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.
    • this is a reasonable solution, build one great server to host something like vmware esx server then have tons of cheap o thin clients that you can control with the server. they boot from there... its secure, and very up to date. virtualization is the future! hope that help some :}
    • by pebs ( 654334 )
      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.

      Or better yet:

      How about do a server with thin clients AND have thin clients that have multiple keyboard/mouse/monitors.
  • by ptelligence ( 685287 ) on Friday April 27, 2007 @08:30AM (#18898709)
    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. [] []
    • by jomegat ( 706411 )
      I used the K12LTSP project with great success at a school too. It is a very nice setup. I highly recommend that you remove disks from the client machines because the whole lab will get a lot quieter. It's amazing how loud hard drives are. I used a 1.2GHz server with 1GB RAM to run 20 terminals, and it was very snappy, even running OOo (this was about three-four years ago). A 100Mbit network is crucial.
  • Userful (Score:4, Informative)

    by rob1980 ( 941751 ) on Friday April 27, 2007 @08:32AM (#18898731) []

    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.
    • Ob. plug:

      I know we've done other kinds of deployments [] into schools, libraries, Internet Cafes and other places, but the tattoo shop is new to me.

      Also, the dual-head video cards aren't a strict requirement. As long as you can get it onto the bus, the majority of ATI and nvidia cards with 1-4 heads will work fine.

      OP: Depending on what your requirements are, you may find interest in the basic Desktop Multiplier [] which provides multiple workstations from each PC, DiscoverStation [] which includes Desktop Multiplie
      • by rob1980 ( 941751 )
        You're right about the video cards, that's just what we did because we didn't have enough PCI slots to go around. :)
  • I have not used these products, so I cannot personally vouch
    for them:

    They offer a solution that sounds like what you want.
    • i just purchased all 3 versions of ncomputing to test. $200-$350. i have to say they work great!!! i only did windows tests, but it mentions linux as well (2000 works too, no need for xp's TS). you install their custom RDP-like software on the host and it just works! you get exact same box multiplied - all installed software and data is there. i tested these for work, but now i may get a few for home.
  • X Terminals, either diskless or just enough to load X and then everything else comes from one Big Box.

    Or something like: []

    6 monitors, keyboards, mice, one tower.
    • I like the idea of Xterminals, but I'm a dinosaur and remember the Real Thing: terminals that did X and you could log into the networked machine[s]. Sort of like a VT220 doing graphics. They ran BOOTP (iso DHCP) and TFTP to boot.

      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 an

  • 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.

  • 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 []
  • 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" devi
  • 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?
  • Quite a coinkidink, but I happened across this very topic during some semi-related web browsing yesterday. Others have noted the [] packages. You can buy ready to go systems using this out of the box at [] 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 i
  • How I did it (Score:3, Informative)

    by whatnotever ( 116284 ) on Friday April 27, 2007 @09:30AM (#18899333)

    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:

    1. One graphics card per seat. I have an old AGP Radeon 9000 and a super-old PCI Matrox Mystique.
    2. A monitor extension cable if you want the seats far apart. I first bought a 15ft brand-name one from that was absolutely worthless (thin cable, ridiculous ghosting even at low resolutions) - then I bought this "generic" one [] which works perfectly.
    3. One keyboard/mouse pair per seat. One of my seats has a PS2 keyboard and a USB trackball, and the other has a PS2 mouse and a PS2 keyboard on a PS2 to USB converter [] that works perfectly hanging off the end of a 10ft USB extension cable.

    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? []
  • 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 car
    • If I run OpenOffice and you run OpenOffice, there's only one copy of OpenOffice in memory, but using twice the heap space (as much as you would be using alone and as much as I would be using alone). So you need less than twice the RAM.

      Well, okay, I'm not sure how that works with jvm. But with standalone binaries, it's true; with shared libraries, it's true.
  • I was recently trying to do the same thing. I wanted to run two X sessions, each with their own login. The idea was that I would be able to use the same computer while viewing content on my monitor and my tv as different users simultaneously.

    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 spec

  • 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.
  • 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.

    For more info, check this page: [] 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: ht []
  • by SWad ( 454879 )
    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 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....
    Solar power with maintenance included: -selling-solar.html []
  • Here is the link you need: hp?n=Misc.DualSeatX []

    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 ar
  • I used LTSP in a cybercafe, worked great. 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.
  • 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 which is stable with new (9631) Nvidia drivers (we use one onboard Nvidia graphics card and 2 Nvidia PCI graphics cards - around $50 each).

    I looked into an X terminal solution but the performance was not good enough. We want to run kids educational game
  • I've just recenetly been trying to multiseat X, the and [] 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
  • 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 an
  • 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.
  • 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: / 14-Multiseat-X-Under-X11R6.97.0.html [] -- it's getting a bit dated but the bas

Experience varies directly with equipment ruined.