Slashdot Mirror


Two Headed Penguins?

dmendesf asks: "The Octane2 workstation from SGI has a neat trick called PowerDuo that enables a single station to be driven by 2 keyboards, 2 mice and 2 monitors. Is it possible to do the same with Linux and USB mice, keyboards plus Dual Head videoboards?" How difficult would it be to develop an X11 solution to do this? Now take this a step further: could this be done with the secondary machine a network connection away?

3 of 50 comments (clear)

  1. Yes, easily, surely? by Stipe · · Score: 5, Insightful

    While I've not tried it, I don't see any reason that a PC with PS/2 mouse and keyboard, two VGA cards, and a USB mouse and keyboard, couldn't be configured to do exactly the same; run 2 X servers, one configured for the first video card and PS/2 mouse, keyboard, the second for the second video card and USB mouse and keyboard. (you may be able to use several USB mice and keyboards, in order to get as many heads as you can fit video cards in for). As ever, the pig is setting it up.

    Of course, you'd need a second sound card for seperate audio, but again that's not too hard.

    As for the suggestion that you could do that with X11, well, I laughed when I read that. That's exactly what X and XDMCP is designed for! Have you never heard of X terminals (not xterms)?

    When X was developed, the idea was to have lots of thin X terminals and then one big beefy UNIX box to run the applications. Then windows and PCs came along, and they didn't run apps over the network (or at least not until recently).

    When I was at college, I had my PC running Linux as a single head, and an NCD X terminal which I'd scrounged from my brother in my room, and in the college's computer room they had some old HP workstation being used as an X terminal. I could easily have 3 people running web browsers, e-mail and news through the one PC (+2 dumb X terminals)

    Both of these X terminals were cut-down custom made machines which booted over the network, ran an X server, and broadcasted XDM/CP for any hosts that wanted to offer them a session. It presents a list of machines running XDM, and you simply double click on one, and you get a login screen. Main problem is that both of these "thin terminals" were crap - fixed resolution (at 1280x1024, so usable), but only 8 bit colour depth. Of course, a PC with no hard drive and a decent graphics card would make a better X terminal. NCD still make them - here's a more modern and useful X terminal

    The problem is though, that bandwidth over the network is very much less than you get on a PCI or AGP bus - not enough for comfortably doing very graphics intensive stuff with.(back then, I was using 10Mbit, but there are still problems at 100Mbit). Fine for checking e-mail, reading news, even web browsing, but 2D graphics was painful. 3D graphics would be as well - remember that to use things like the renderer extension, (i.e. any fancy 3D GL stuff, or alpha-blending), requires the application to run on the same host as the video card is in, as the app talks directly to the video card; X is only used for the windowing bit, and for drawing basic stuff like text and buttons.

    Really, to do this properly requires compressing the X traffic, like lbx or (plug) Tarantella, otherwise it's unusable.

  2. I remember reading about this before... by The+guy+standing+ove · · Score: 5, Informative

    I believe the following HOW-TO is what you're looking for is here

    http://www.linuxplanet.com/linuxplanet/tutorials /3 100/1/

    I've been thinking about doing the same thing myself. With a dual-processor machine, I'm sure I wouldn't notice a change in system performance.
  3. clarification by foobar104 · · Score: 5, Informative

    I see a lot of comments about X terminals and one about a dual-head graphics card.

    That's not what the question-asker-person was talking about.

    The Octane system that was referred to in the question is designed to support two users logged into the machine at the same time, each using a fully functional hardware graphics pipe. From the user's point of view, it's exactly like having your own Octane, complete with V12 ("really fast") graphics.

    You can't do that with VNC or an X terminal, because those both involve running your application on the server and displaying its output over the LAN. That's not as fast as working on the local machine, and it doesn't provide you with hardware-accelerated graphics.

    A dual-head output from your graphics card also wouldn't be enough, because to implement a system like this you'd have to have two graphics cards, one for each user.

    SGI Onyx systems have supported this kind of thing for years; at one point it was marketed as a product called "GroupStation." The way they set it up wasn't particularly exotic, although it may depend on some features unique to the Xsgi X server. For instance, Xsgi has a "-pipe" option that tells it to manage the given graphics pipe; graphics pipes are numbered by the kernel at boot time, so on any multipipe machine you can refer to a specific pipe as 0, 1, 2, or whatever. I don't know if that option is unique to Xsgi or what.

    Each user gets a mouse, keyboard, and monitor. The X server on the Onyx would be configured to run one instance of X on each graphics pipe, instead of one instance of X with a screen for each pipe. (In other words, :0.0 and :1.0 instead of :0.0 and :0.1.) Each X display gets an instance of xdm, so when you sit down you log in and go like you're the only user on the machine. You set up the bindings between mouse/keyboard devices and pipes in the Xservers config file, I think.

    It should be possible, at least in theory, to do this with XFree86. I know multiple X sessions on one Linux machine are supported; I've done it myself with multiple XDMCP clients running at the same time. If XFree86 supports binding mouse and keyboard devices to X displays, then you should be ready to roll.

    The only bad news is that you'd be limited to PCI graphics cards for your 2nd through nth heads, unless you have a motherboard with more than one AGP slot. None of the PCs at my office have more than one, so I'm not even sure whether such a beast exists.

    So to sum up, I think this depends more on XFree86 than it does on Linux. If you want to try it, I'd start with the XFree86 documentation to find out if the features you'd require are supported.