this post was submitted on 04 Dec 2023
75 points (95.2% liked)

Linux

48315 readers
794 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

top 33 comments
sorted by: hot top controversial new old
[–] [email protected] 66 points 11 months ago (1 children)

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:

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.

[–] [email protected] 20 points 11 months ago

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

[–] [email protected] 43 points 11 months ago (1 children)

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.

[–] [email protected] 11 points 11 months ago (1 children)

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.

[–] [email protected] 3 points 11 months ago (1 children)

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.

[–] [email protected] 2 points 11 months ago

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!

[–] [email protected] 16 points 11 months ago

Huh. TIL what multiseat is. Never knew that existed.

[–] [email protected] 15 points 11 months ago (5 children)

What advantage do you get using one PC in this way instead of two?

[–] [email protected] 22 points 11 months ago (1 children)

Less resources needed, less physical space needed, less power consumption, no need for a network, don't need to maintain/update multiple systems, etc.

[–] [email protected] 10 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 12 points 11 months ago (1 children)

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

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago) (1 children)

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.

[–] aBundleOfFerrets 2 points 11 months ago

I wouldn’t go for anything that needs SFF gpus. They are expensive and have shit performance for the money.

[–] Dr_Willis 8 points 11 months ago (1 children)

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.

[–] [email protected] 3 points 11 months ago

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.

[–] [email protected] 5 points 11 months ago (1 children)

I mean, you save money by not having to buy another PC...

[–] [email protected] 9 points 11 months ago

They practically are though once they upgrade it with two 3060s and the CPU.

[–] [email protected] 1 points 11 months ago

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.

[–] [email protected] 14 points 11 months ago (1 children)

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.

[–] [email protected] 22 points 11 months ago (2 children)

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.

[–] [email protected] 11 points 11 months ago (1 children)

And distros have basically moved to Wayland as well, which probably is worse when it comes to stuff like that.

[–] [email protected] 0 points 11 months ago (1 children)

I boldly assume that Wayland is simply incapable of providing multi-seat functionality.

[–] [email protected] 8 points 11 months ago

I don't know why you're being downvoted because basically we don't know. It mentions that it's supported but there's no info about how to do it and no compositors or WMs that implement it, so... yes, technically there's no support for multiseating at the moment. If anybody can point at one that can do it in the way OP needs it I'll be glad to stand corrected.

[–] [email protected] 10 points 11 months ago (1 children)

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.

[–] [email protected] 7 points 11 months ago

Yep, it's just a few lines in Xorg.conf. Basically just putting monitors and mouse/keyboard under a particular Xorg instance.

[–] [email protected] 8 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 6 points 11 months ago (1 children)

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

[–] [email protected] 6 points 11 months ago (1 children)

Right, using some hypervisor and running 2 VMs would be a traditional way of doing this.

[–] [email protected] 7 points 11 months ago* (last edited 11 months ago)

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

[–] [email protected] 5 points 11 months ago (1 children)

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.

[–] [email protected] 8 points 11 months ago (1 children)

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.

[–] [email protected] 5 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago)

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.

https://pve.proxmox.com/wiki/PCI(e)_Passthrough