I currently have a PC running Windows 11 that my S/O and I use multi-seated with Aster Multiseat. However, we’re both equally sick of Windows and are interested in switching to Linux.
However, all the information that I can find on multiseat in Linux are forum posts and unfinished wiki entries for Ubuntu and Fedora, and they all seem to be from around 2008-2012.
We’re about to upgrade our PC to support two RTX 3060s and a Ryzen 9 (of course, including the usual two monitors and sets of peripherals).
Can Linux (preferably Fedora, as it’s my favorite distro so far) easily support multiseating?
Will there be any performance issues using this method?
Is it possible to isolate applications per user? (Aster Multiseat doesn’t do this, so sometimes an application can detect another instance on the other user and refuses to start…)
Thanks in advance.
By multiseat, do you mean allowing two people to use your Linux PC at the same time, using a separate monitor and keyboard/mouse, as of they’re on a separate computer? You can do this without installing additional software, though you must configure the seat from command line:
- https://wiki.debian.org/Multi_Seat_Debian_HOWTO
- https://wiki.archlinux.org/title/xorg_multiseat
- Wayland seems to support multiseat but I can’t seem to find any documentation or tutorial save for an article on phoronix: https://www.phoronix.com/news/MTM4MzA
Is it possible to isolate applications per user?
Each user with have their own login session, so ther application processes should be separate from each other.
Regarding Wayland, looking at this it seems that it might be pretty straightforward but then for example sway seems to be defining seats a little bit different. So it might require some tinkering in the end, depending which compositor you decide to use.
Loginctl seems to be X/Wayland independent and useful in both.From what I’ve found it seems that there are more questions on the internet regarding something not working well in multi-seat or needing a patch for that, than how to set the multi-seat up. Situations like this usually mean that setting this thing up is quite straightforward. It might also be a niche, though
Let me raise a side concern here since the core questions already seems to be answered; reconsider the Nvidia GPUs. Depending on what you do, you might encounter significant shortcomings at the moment since they do not play perfectly with Wayland yet (which is clearly the future). So do some research in this direction first before you pull the trigger.
I second this. For a while my Nvidia card worked great on pop os for gaming. Then one day a kernel upgrade hosed it all. I tried for days to get it working again and finally realized I was swimming upstream and always would be. Bought an amd card and now I hardly have any issues.
Nvidia usually worked for me fine outside of gaming but I did literally find some distros that had severe issues even in the installer sometimes. Nvidia intentionally fucks over Linux support so I decided it was best not to support them anymore anyhow.
Sidenote, my games all look great and run better than they did on the Nvidia card. I always thought amd graphics cards were second rate, but I don’t think that’s at all true these days.
If all you want to do is play games, then AMD is the way to go. Better price to performance ratio.
But if you want to play around with AI, Nvidia is the only game in town. AMD still does not properly support GPGPU on their consumer cards. It’s infuriating and embarrassing really.
The performance I’m seeing on AMD makes me tend to agree with your first point. Looks fantastic and framerates are really nice.
I’m not really interested in AI except for the realtime background noise removal I’d heard about like 2 years ago which apparently Nvidia rtx cards can do. But in all this time I never set it up so I obviously wasn’t that interested in it!
Surely amd will get gpgpu support working at some point!
Huh. TIL what multiseat is. Never knew that existed.
What advantage do you get using one PC in this way instead of two?
Less resources needed, less physical space needed, less power consumption, no need for a network, don’t need to maintain/update multiple systems, etc.
You still need all the physical space that two PCs require except for the box which is only a small part of it. You still need all the peripherals for two people and once the 3060s are in it the power difference will be negligible between one or two PCs. On top of that you have all the inconvenience and problems that using in multiseat brings. Network gear is dirt cheap and maintaining two PCs is less hassle Vs this too.
Personally I think at the end of the day you’re better off with two PCs even if the second one is a cheap second hand one. Especially since I assume the GPUs mean they’re planning on gaming on it.
Not only for saving money, as when we upgrade the PC, I’m going to be able to sell off most of the components that get replaced, but space savings is also a big part of it. We’re going to be buying an RV to live full time in soon, and the less space it takes up, the better.
Plus, we have used it in this configuration for almost two years now, and it has worked without issue (EasyAntiCheat doesn’t play nice, but we don’t play many games that use it anyway). And honestly at this point, I kind of enjoy the challenge lol
You could have a look at ex-business slimline PCs or laptops if two cases are out of the question. They’ll take up less space overall than the typical PC case and are usually pretty power efficient. The former can also be upgraded if you are careful with what you choose and find the right slimline GPUs to fit in said cases. This is what I used to do for my kids particularly with ex-Dell PCs.
The thing is that you’re not going to get a whole lot for your old parts, certainly not more than the benefit you gain by having a second PC, as by the time you sell it the parts would have depreciated in value quite a lot. But, it’s neat I guess that PCs allow you to do stuff like this even if it would result in a bit of frustration.
I wouldn’t go for anything that needs SFF gpus. They are expensive and have shit performance for the money.
I have seen this used in school situations with 3+ seats per PC.
that can add up when dealing with a dozen+ PCs.
For home use, not much a benefit, but I did have it setup years ago for the grandkids.
When you have like 30 kids in a class and a limited budget then yeah, makes a lot of sense to come up with solutions like this.
For these two though if I knew them I’d just straight up give them a second PC for free to save them the hassle. You can do amazing things with refurbished PCs when budget and space constraints are a problem.
I mean, you save money by not having to buy another PC…
They practically are though once they upgrade it with two 3060s and the CPU.
It’s kind of romantic. Thinking of all the hoops they had to jump through to get this intimate setup just right brings a tear to my eye.
While Linux TTY is multiseat by default, each TTY is a seperate user login, I’m not sure any of the GUI’s support this function.
You can run multiple X servers for a graphical multiseat setup. It’s a lot of work to set it up and most of the information about it is out of date though.
And distros have basically moved to Wayland as well, which probably is worse when it comes to stuff like that.
I boldly assume that Wayland is simply incapable of providing multi-seat functionality.
There is some setup to be done, but “a lot of”? … If I remember correctly you just need to define the multiple outputs and bind the inputs to their individual instances.
Just the other day I was looking into how to use a single shared WINE prefix for multiple users since it’s not like any 2 users would ever use the same PC at the same time… TIL I was wrong
Unfortunately I don’t really have anything helpful to add except it seems like Linux is more or less inherently built to support what you’re looking for.
It’s honestly not that great, you can mash together a working setup but it’s a pain put in the most polite manor, I would probably just use VMs
Right, using some hypervisor and running 2 VMs would be a traditional way of doing this.
well, I’m not sure traditional is the right word, multiseat has been used for a very long time. It used to be a bit better supported. The issue is that since the migration to wayland, it has become… a lot less supported. It is still possible, but most of the guides are x11 guides for a reason.
EDIT: I should say I hope seatd at some point could support multiseat but at the current time I don’t think it has any facilities to, systemd-logind / elogind do support multiseat, but I dont currently use them
So essentially it’s running a single computer we if it were two seperate workstations?
I could see an implementation that’s similar to those running a VM with a DGPU for gaming. User A could run a login against the primary GPU and OS. User B could run a VM with several cores allocated and the secondary GPU dedicated to the VM. If any shared did file resources in the primary OS are needed, KVM has ways to do that as well.
Not entirely sure why this reply is being panned (was at -6 when I first saw it).
OP is in the process of upgrading their PC to a Ryzen 9. If we make the assumption that this Ryzen 9 is on the AM5 platform, the CPU comes equipped with an IGPU, meaning the RTX 3060s are no longer needed by the bare metal. So, installing a stable, minimal point release OS as a base would minimize resource utilization on the hardware side. This could be something like Debian Bookworm or Proxmox VE with the no-subscription repo enabled. There’s no need for the NVIDIA GPUs to be supported by the bare metal OS.
Once the base OS is installed, the VMs can be created, and the GPUs and peripherals can be passed through. This step effectively removes the devices from the host OS – they don’t show up in lsusb or lspci anymore – and “gives” them to the VMs when they start. You get pretty close to native performance with setups of this nature, to the point that users have set up Windows 10/11 VMs in this way to play Cyberpunk 2077 on RTX 4090s with all the eye candy, including ray reconstruction.
Downsides:
- Three operating systems to maintain: bare metal, yours, and your partner’s.
- Two sets of applications/games to maintain: yours and your partner’s.
- May need to edit VM configs somewhat regularly to stay ahead of anti-cheat measures targeted at users of VMs.
- Performance is not identical to bare metal, but is pretty close.
- VM storage is isolated, so file sharing requires additional setup.
Upsides:
- If you don’t know a lot about Linux, you’ll know a bunch more when you’re done with this.
- Once you get the setup ironed out, it won’t need to change much going forward.
- Each VM’s memory space is isolated, so applications won’t “step on each other” – that is, you can both run the same application or game simultaneously.
- Each user can run their own distro, or even their own OS if they wish. You can run Fedora and your partner can run Mint, or even Windows if they really, really want to. This includes Windows 11 as you can pass an emulated TPM through to meet the hardware requirements.
- Host OS can be managed via web interface (cockpit + cockpit-machines) or GUI application (virt-manager).
It’s not exactly what OP is looking for, but it’s definitely a valid approach to solving the problem.
I came to the comment section to recommend Proxmox or another hypervisor as well. If it was a system with just one GPU, I wouldn’t, as splitting it between two VMs can be difficult. But, most of the time having two GPUs under one OS can be a lot worse too though. I think it’s definitely the cleaner & easier way to go. One caveat I’ll add is that resources are more strictly assigned to each seat, so memory & cpu can’t be sent to who needs it more as readily. Another positive though is that it would be super simple to create a third VM with a small amount of resources for running a small self-hosted server of some kind on the same box.
Can you explain what mean by multi seat? As far is distros go I would stick to mint as it is much more stable and user friendly. (Source: I’m a Fedora user)
Edit: are you talking about having to separate monitors and keyboards? If so it may not be the best answer. More information. What I would do is install Proxmox and then setup vfio (PCIe pass though) to pass though the GPUs. You will most likely need two USB cards so that each station can have its own USB.
Assuming you get the hypervisor and hardware setup you will likely need to configure some way to keeping everything updated. You can use ansible and a file share or you can just setup automatic updates manually.