How to configure a Multiseat system

Multiseat configuration in linux windows an Mac os

Multiseat system
a Machine, generally a PC, that may be used by more than one user at the same time sharing mosts of its resources

Multiseat on different systems

I configured the best multiseat system using Ubuntu 17.10, Ubuntu 18.04 and Ubuntu 19.04 with a simple configuration because this debian like system performs much better that others but multiseat system is possible as too with others operating systems as Windows and Mac Os.

I prepared this info graphic to describe the situation of multiseat software in the market for the main OS; there are freeware solutions, open source solutions and proprietary for many of them.

Multiseat configuration for windows, linux and mac
Multiseat configuration for Windows, linux and mac os

Infographic and table below are a resume of my personal tests in 2019, october the 16th; if you may contribute to make this table up to date, please contact me.

License\OSGnu LinuxMicrosoft WindowsMac os
FreeStable and workingNot existingStable and working
Proprietarynot always workingNot always workingnot existing

Software for multiseat, Aster, Hp, Xorg or Nvidia?

Looking for solutions on the net probably you will find some posts based on how to configure nvidia video cards for multiseat and/or on others talks about how xorg is perfect for multiseat and/or the solution is just to use aster multiseat userful multiseat an operating system born to use a pc as a multiseat system: the Internet is full of forums and blogs that talk about turning a PC into a Multiseat system, but any kind of information even if treated in depth, does not seem to consider that software is not the only thing to think about. A multiseat system will never work and can be considered stable without the right hardware configuration.

Gif Multiseat on Xorg

Every devices may be attached to a user with the command line interface in Linux

Instead of what you may read, after all my tests with various peripherals and various configurations i can say this: every solutions you may try, may works for some minutes, for some days but of course it will fail and at that time without any signals system startup fail, file system will not recognize video cards and the fastest thing that you will have to do is to restore your pc reinstalling OS from the begin.

Multiseat Hardware and software configuration

Multiseat ati
Multiseat was made possible and stable with 3 ATI Radeon R5 230
Test i've made
  1. 3 NVIDIA cards different model, same specific with Windows and aster multiseat: FAILED
  2. 3 NVIDIA cards different model, same specific with USERFUL linux OS: FAILED
  3. 3 NVIDIA cards different model, same specific with Ubuntu 17.10 and NVIDIA server video (instead of xorg): FAILED because of Nvidia server
  4. 3 NVIDIA cards different model, same specific with Ubuntu 17.10 and Xorg(standard video server of ubuntu): Seems start to works but FAILED without signals after 3-4 days
  5. 2 AMD hd5450 different (1gb ram), 1 AMD radeon HD 6450(2GB) with Ubuntu 17.10 and Xorg: Seems working better but FAILED without signals after a month
  6. 3 AMD RADEON R5 230 2GB ram, Ubuntu 17.10: PASSED; it works really well for years Tested with Ubuntu 18.04 and Ubuntu 19.04 too. Same Good results
  7. 3 AMD RADEON R5 230 2GB ram, with aster multiseat windows: Works at the beginning with bad performance and problem with a screen, FAIL after 3-4 day

So Multiseat is mostly an hardware thing and only after that, a software thing. 3 same AMD video cards works very well with the standard linux configuration.

Multiseat on Gnu/Linux: How to

First of all, i have to say that once you found the good hardware to setup, the software setup is very easy.

How a multiseat linux works

Simply...1 there is a system and 2 there are devices attached to the system; 3 In Linux, there is a service that allow you to control the systemd login manager and let you to tell the system to attach a resource to a specific "seat". Seat is a "concept" made possible by the Xorg server (the video server).

In a multiseat linux you can:

  • create a seat;
  • delete a seat;
  • assign resources to a seat;
  • assign resources to a seat;
  • view resources assigned to a specific seat.

There is a seat that you can't change, it is always active, and that, at the start has all the system resources attached on it; You can't rename it and its name is seat0.
At the start all resources are assigned to seat0 so if you would like to assign a Monitor, a keyboard and a mouse to a new seat, in fact, you remove that resource from seat0.

seats on a Multiseat system
In every linux with Xorg there is always a seat even if you do not want setup a multiseat linux system; This seat is named "seat0" and you can't rename it.
Seats aren't users. the user Bill has its account on the machine and he can do Login with his password and if you would like to, you may create a new seat call seat-bill and assign to that seat(that you consider his desk) a monitor, a keyboard and a mouse. But at the Bill's desk even the user John at the login screen may login to his account with his password. You may call that seat seat-maria even if there is no "Maria" user is registered on account list. So in a multiseat linux, seats represents a "phisical desk".
The rule is that a seat's name need to has "seat-" as prefix.
Linux commands for Multiseat

First of all in every situation if you get into trouble you may always come back reassigning all the devices to the seat0 with this simple, single, command:

sudo loginctl flush-devices

In order, to assign devices to a new seat you have to: Create a new seat > Identify the video card, the keyboard and the mouse of the new seat > Assign those devices to the new seat > Reboot.

  1. Choose a name and use "seat-" as prefix, then you do not need to use any command to create it because it will created when the first device will be to.
  2. You can see all the list of devices assigned at the start to seat0 with the command above(send it over the terminal).
    sudo loginctl seat-status seat0
    if you'll need to check which devices you'll have assigned to the new seat, in example seat-[name], you may re-use this command changing seat0 with seat-[name]

    seat status
    Find the "/drm" and copy the BUS ADDRESS of your DRM Master device that represents a video card.
    Find the "/drm" and copy the BUS ADDRESS of your DRM Master device that represents a video card.
    If you have 3 video card on your system you will find card0, card1 and card2 under some /drm address;
    If card0 is the card of the main seat ( seat0), card1 will be the card of the first seat: Copy that!
  3. Now attaching the video card to a new seat we make two things with a single command: Create a new seat and attach to it the video card.
    sudo loginctl attach seat-[name] /sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1
    Change the [name] with the name of your new seat.
    Do the same with the keyboard and mouse
  4. Reboot

Demo

I've explained the process into this youtube video, taka a look if you need more information about how to configure a multiseat system in Linux

linux multiseat: how to configure

inside a multiseat system
Multiseat system: inside
outside a multiseat system
Multiseat system: external view

Thanks for attention, please leave a comment if you need more information or feel free to contact Samuele Palazzi