Hey, anyone here know of a free/open source solution for multiseat on Windows (and possibly Linux as well)? I found this, but I'm sure this must have been done before using something that doesn't need to be paid for.

I thought it might be possible to run two Windows images on a KVM on top of Linux, and have them output video to two different graphics cards or over Displaylink, and take input from two different mice/keyboards... If not KVM, maybe some other type of virtualisation method running on two separate X servers*, which in turn are running on top of Linux. Xen Hypervisor, whatever, I dunno.

Am I typing nonsense here, or is it actually possible? You can probably tell that I don't know much about this (look how I mentioned Xen and KVM in the same breath), so I'm asking for further input.

The reason I'm thinking about doing this is for my parents. They both use Windows for their jobs (there's no persuading them to Linux, sorry guys and girls). Consolidating their overpowered, fat, dusty desktop machines into one machine would save space on their desk, it would save money, and it would probably save effort on my part to maintain their hardware. Noise is also a major concern of my Dad's.
If I can't do it for under USD49 of time and effort, I'll consider just buying the software, or two small form factor computers. But I think I'll have much more control over how the setup works by doing it through free/open source methods, and if it doesn't work, I lose no money.
The reason I'm asking on Linux Mint forums is because I expect a lot of X-related and virtualisation-related knowledge to reside on forums like these. These things aren't my strong point, exactly. Also, I'm a long time Mint user.

*I know Linux-only multiseat has been done before using this method. I hear there have been very large Ubuntu-based deployments of multiseat systems in Brazilian schools, and other such institutions.

Using this how-to with some slight modifications, you should be able to get a multi-seat setup.

Here are some steps:

1. Check your hardware!!!!!!!!!!!!!!!!!!!!!!!!!!!
a. You need a VT-d compatible processor that supports IOMMU. See the how-to for how to figure that out.
b. The video card / GPU must support VGA passthrough. Most recent AMD cards do, so do the Intel CPU internal GPUs. Some few Nvidia cards are reported to work, most notably the Quadro series starting with the Quadro 2000 (not the 400 or 600) - see how-to.
Your ideal hardware would include the following:
- Intel CPU (non-K version) with internal GPU and VT-d support (or AMD CPU/board, as long as it supports IOMMU)
- Motherboard that has a IOMMU / VT-d config option
- 2 AMD graphics cards
- 2 or better 3 USB controllers (most boards have at least 2)
- 2 LCD screens, preferably with HDMI link and perhaps builtin speakers.

2. If, and only if you got the right hardware, follow the steps in the tutorial. Use LVM for storage - it's great and you don't want anything else. See the link to my other how-to on how to install Linux Mint on LVM.

3. Follow the tutorial and install the Xen hypervisor, etc.

4. Instead of installing one Windows guest system, you install two. To each Windows guest, you assign its own graphics card and USB controller. If you have 3 USB controllers in total, and 2 dedicated VGA cards as well as a CPU internal GPU, you can run 2 Windows desks and
a Linux desk simultaneously. When installing the Windows guests, do one by one - first release the PCIs for the first Windows guest and install it, and then install the graphics driver in Windows. When everything works, install the second Windows guest.

a. If necessary use VNC or ssh to connect from a remote computer (you can use virt-manager for that), as you may not have a screen output when you detach the graphics cards from Linux (using pciback, you'll see in the how-to).

The reason why Xen is the preferred solution over KVM is that KVM still may have some problems, for example when you shutdown the guest the host stops responding and needs a restart. Xen has also better documentation, and lots of features.

There are probably easier ways in getting a multi-seat solution, but I know of no other solution that provides even closely the performance of this Xen VGA passthrough solution.

Thanks for the reply. It's very interesting I'll be sure to save it for when I actually do this. The current hardware at my disposal can't do all of that. But I'll need to get new hardware anyway, I think. Intel Core 2 Duos don't run as cool as Intel i*-series at the same speed.

edit: I'm very surprised that schools (specifically here in the UK) do not take multi-seat seriously. It would save a lot of money and space, I think.

If you are going to invest in new hardware, make sure it meets the requirements. Even if you decide to use a different solution, for example VMware or KVM, you might need VT-d and a graphics card that's supported.

Bear in mind that this multi-seat solution requires the 2 work places to be very close by, since keyboard/mouse USB and HDMI cables are limited in length.

Another approach would be a VDI solution (Virtual Desktop Infrastructure). VDI uses remote thin clients (or zero clients) connected over the LAN to your Remote Desktop Server (RDS). i.e. your PC. Those thin clients are low powered boxes that just handle the I/O and decompress the video / picture frames. Remote desktop protocols are Citrix HDX, PCoIP (from Teradici, used by VMware), NX (NoMachines or open source), Spice, RemoteFX (Microsoft), and more. The thin client has to support the protocol you choose.

I believe schools and universities in the UK do use VDI solutions, as do many enterprises.

The schools I've been at, and the one I volunteer at now, mostly use full desktops for each workstation. I haven't come across any VDI or multiseat solution in schools. But most of them store login details, files, and programs on a central server.

Yeah, even if I buy new hardware for my own computer, I'll make sure it supports those features, so that I can play some Windows games without needing to reboot into Linux And later, the computer can be reused as a multiseat workstation. Its processor supports hardware virtualization, but the motherboard and graphics card does not support VGA or PCI pass-through.

Burrito wrote:The schools I've been at, and the one I volunteer at now, mostly use full desktops for each workstation. I haven't come across any VDI or multiseat solution in schools. But most of them store login details, files, and programs on a central server.

Yeah, even if I buy new hardware for my own computer, I'll make sure it supports those features, so that I can play some Windows games without needing to reboot into Linux And later, the computer can be reused as a multiseat workstation. Its processor supports hardware virtualization, but the motherboard and graphics card does not support VGA or PCI pass-through.

Care to share which motherboard and graphics card you got? Sometimes a BIOS update can help.

As to VDI in schools, I thought that this would be the standard by now. It's supposed to reduce administration and maintenance overhead. Here is some promo video for the commercial XenDesktop that I think summarizes it nicely: http://www.youtube.com/watch?v=woyhUCzs7rc. Not sure if all that can be realized with the free Xen hypervisor plus add ons like NX or Spice. The bottleneck is usually the network which is why Citrix and others have invested a lot in their mostly proprietary remote desktop protocols. Citrix uses HDX 3D, VMware uses PCoIP (developed by Teradici), and Microsoft has RemoteFX. There is also Spice and NX, both of which can be had free and opensource. Spice is still under development, afaik. In a simple setup you could even try ssh, which I use on my Macbook to remote desktop to my main PC or other PCs on my LAN.

Apparently there is an SVM option in the BIOS, and Linux also thinks it can do SVM ("cat /proc/cpuinfo | grep svm" returns positive, and kvm returns no negatives to dmesg when I load it as a kernel module with modprobe).

After posting my last message ITT, I have found some speculation that nVidia GPUs other than Quadros can in fact support VGA passthrough, with newest versions of Xen and some patches.

My parents are actually the ones I want to give a multiseat system to. My parent's computers, I can't remember the exact specs of. But their processors are individually too meagre to be able to do virtualization of two guest OSs in the first place. Cutting a 2.6 GHz Core 2 Duo in half would not bode well with them. My 3.2GHz Phenom II 555, on the other hand, I could give to them when I upgrade, and have it do multiseat. It would be more than capable, I think.

When I have the time, and happen to be playing around with reinstalling Linux (this will probably be when Ubuntu and its descendants release another LTS version), I'll definitely try your tutorial, for gaming purposes. Maybe even earlier, if I find I have the time.

Even if that doesn't happen, when I live in my own house and set up my computer system, it seems very tempting to put a great big server in the attic, and have it virtualize my TV, my gaming system, my workstation, and also host any servers I might want to have (like game servers or email), and have it stream around the house Who knows, maybe light switches will finally have IP addresses then.

The VGA or PCI passthrough requirements can be found here: http://wiki.xen.org/wiki/VTdHowTo. Even if your processor supports IOMMU, the chipset and the motherboard BIOS also need to support it. See the link for more. You could just try it by installing Linux Mint and Xen and passing through a PCI device, for example a USB controller. If you run the pciback script with one or more PCI IDs and later enter

you should see the device listed. You may have to actually install a guest OS (e.g. Windows) to fully test PCI passthrough. This way you can check if your CPU/mobo/chipset/BIOS combo is capable, and later try the graphics card (its driver installation is anyway the last step).

A very few Nvidia GPUs are supported. In general chances are MUCH better with AMD, but check for tested adapters.

With regard to my motherboard, I hadn't seen any reference of the Asus Sabertooth X79 and it was sheer luck that it worked (when disabling the Marvell SATA controller and sticking to the 1203 BIOS). ASRock boards have a better reputation (not all boards). Some Gigabyte boards have also been recommended. Again, see the link above and the links in my tutorial.

One important point: My how-to assumes you have at least 2 GPUs, for example two graphics cards or an onboard GPU plus a VGA card. Not sure your current PC has that.

Yeah, except for how ATi has a history of bad support for Linux gaming, in comparison to nVidia. Hopefully that changes in the near future, now that Valve is on the scene.

Did you hear the Linus Torvald comment on Nvidia?

Yes, but I think that's regarding their lack of open source contributions, and direct interactions between core devs and Nvidia Corporation... and how nouveau has to resort to reverse-engineering because nVidia provides little or no documentation, AFAIK. Their closed source drivers have been stable and good, in comparison to how ATi has operated.

I've had a bit of a grudge against ATi ever since they classed my two-year-old (at the time) laptop graphics chip - a Radeon 1250 - as "legacy support", meaning if I want to game, I would need to stick to an old kernel and an old version of X... or go back to Windows, which I did.

Linus is not the leader of the Linux desktop community, he just approves changes in the kernel. He's a major actor (in the same way that Shuttleworth, Stallman, and more, are), but I don't think there is any leader, anyone whose comments can be regarded as the general/average opinion of the entire community.

All of that said, again, I hope ATi's drivers will improve. It would lead to much better conditions for gaming on Linux.

edit: Here's the discussion you were referring to, I think... https://www.youtube.com/watch?v=O0r6Pr_mdio
It's mainly to do with specific nVidia chips (Optimus, in this case), and Linus mixes Android in there as well.

Yep, I agree and have been using Nvidia for many years for the same reasons you mention. I too would prefer Nvidia - and even use the Quadro 2000 in my Virtual Machine. But right now Nvidia is hampering the use of their cards under Linux, specifically under Xen (and perhaps KVM too). Right now Nvidia is not competitive for people who like to run their VMs with VGA passthrough - the gamer cards don't work, and the pro cards are under-performers and much too costly for the vast majority.
If Nvidia would enable Linux / Xen / VGA passthrough compatibility in their consumer line, all would be different .