Multiseat Pc Software

0 views
Skip to first unread message

Daisy Hughlett

unread,
Aug 3, 2024, 5:56:49 PM8/3/24
to scanacchristi

A "seat" consists of all hardware devices assigned to a specific workplace at which one user sits at and interacts with the computer. It consists of at least one graphics device (graphics card or just an output (e.g. HDMI/VGA/DisplayPort port) and the attached monitor/video projector) for the output and a keyboard and a mouse for the input. It can also include video cameras, sound cards and more.

Since the 1960s computers have been shared between users. Especially in the early days of computing when computers were extremely expensive the usual paradigm was a central mainframe computer connected to numerous terminals. With the advent of personal computing this paradigm has been largely replaced by personal computers (or one computer per user).

In some situations a multiseat setup is more cost-effective because it is not necessary to buy separate motherboards, microprocessors, RAM, hard disks and other components for each user. For example, buying one high speed CPU, usually costs less than buying several slower CPUs.

Support for multiple consoles in a PC running the X interface was implemented in 2001 by Miguel Freitas, using the Linux operating system and the X11 graphical system (at the time maintained by XFree86).[1] This was done using a patch in the display server to execute several instances of X at the same time such that each one captures specific mouse and keyboard events and the graphical content. This method received the name of multiseat or multiterminal.

In 2002 a Canadian company, Userful Corporation, released Userful Multiplier, a multiseat Linux software solution that enables up to 10 users to simultaneously share one computer.[3] Earlier they worked on a kernel-based approach to a multi-station platform computer, but abandoned the idea due to a problem with multiple video card support.

Other solutions appeared in 2003, such Svetoslav Slavtchev, Aivils Stoss and James Simmons worked, with the evdev and Faketty[4][5] approach modifying the Linux kernel and letting more than one user independently use the same machine. In that time, the Linux Console Project[6] also proposed an idea to use multiple independent consoles and then multiple independent keyboards and mice in a project called "Backstreet Ruby".[7] Backstreet Ruby is a kernel patch for the Linux kernel. It is a back port to Linux-2.4 of the Ruby kernel tree. The aim of the Linux Console developers is to enhance and reorganize the input, the console and the framebuffer subsystems in the Linux kernel, so they can work independent from each other and to allow multi-desktop operation. The Backstreet Ruby idea was never finished.

In 2005, the C3SL team (Center for Scientific Computing and Free Software),[8] from the Federal University of Parana in Brazil, created a solution based on nested display servers, such as Xnest and Xephyr.[9] With this solution, each nested display server runs in each screen of a host display server (e.g. Xorg) and a modification to the nested servers let each one exclusively acquire its mouse and keyboard. In 2008, the C3SL group released the Multiseat Display Manager (MDM)[10] to ease the process of installation and configuration of a multiseat box. This group, also in 2008, conceived a live-CD[11] for test purposes.

In 2007, NComputing entered the market with a Windows-based multiseat product, the X-series[12] or Xtenda system, which uses a PCI add-in card to connect terminal units containing video, keyboard, mouse, and audio jacks, allowing 3 to 6 additional user seats to be added to a PC.[13] The X-series also offered Linux compatibility.[14]

Each user will require a monitor, keyboard and mouse connected to the host machine. For example, to make a four-head (four users) system would require four monitors, four keyboards, four mice and two dual-output, or one quad-output video card. USB keyboards and mice are typically recommended instead of PS/2 connections, as they can be connected to a USB hub. Additional devices and peripherals such as cameras, flash storage drives, card readers and touch screens could also be assigned to each seat. An alternative to multiple physical video cards and connections is DisplayLink over USB.

An operating system designed specifically for multiseat setups entitled Windows MultiPoint Server was announced on February 24, 2010. It uses Remote Desktop (Terminal Services) technologies in Windows Server 2008 R2 to provide multiseat functionality. This functionality was incorporated into Windows Server proper as of Windows Server 2016 in a new server role entitled MultiPoint Services, but this server role was removed in Windows Server 2019 owing to Microsoft ceasing development of the service in 2018.

Instead of relying on operating system support for multiseat configuration, a hypervisor can be configured to run multiple virtual machines, each configured to interface one connected seat by I/O virtualization methods. Input devices can be attached to the virtual machines through USB Redirection, and entire GPUs can be attached through Intel VT-d.

The virtualization-based 2-seat[23] and 7-seat[24] systems with Unraid as the host operating system has been demonstrated. Each seat has exclusive control of one of the Windows guest operating systems running on the host. There is a dedicated high-end graphics card for each guest, which it takes full advantage of via the use of VT-d, making the system capable of hosting demanding video game sessions at full quality simultaneously on all seats.

In February, 2009, The Brazil Ministry of Education committed to deploy 350,000 Linux-based multiseat computing stations in more than 45,000 rural and urban schools across the country. The chosen companies to implement this project were the Canadian multiseat Linux software company Userful Corporation, and its Brazilian IT partner ThinNetworks.[25]

One of multiterminal's successful cases is happening at Paran Digital project. It is creating multiterminal laboratories on 2000 public schools of the state of Paran (Brazil). More than 1.5 million users will benefit from the 40,000 terminals when the project is finished. The laboratories have four-head multiterminals running Debian. The cost of all the hardware is 50% less than the normal price, and there is absolutely no cost with software. This project developer is C3SL (Center for Scientific Computing and Free Software).

Since 2008, electrical and computer engineering students from Michigan State University have installed multiterminal systems with internet access in three schools in Mto wa Mbu, Tanzania. The purpose of the project is to study the impact of having computer systems with internet access in an education system that cannot afford other educational resources such as books. The computer systems run Ubuntu 8.04 32-bit and utilize the open source Multiseat Display Manager created by C3SL. The research will eventually be used to present to government officials of third world countries in effort to showcase the positive impact of having cost-effective computing systems in schools. The project is sponsored by George and Vickie Rock and the Dow Chemical Company.[26][27][28]

I have seen some posts and some old information about multiseat configurations. I have successfully configured everything with google-fu and some luck. I wanted to give back to the community, just in case somebody is in my position. If this is not the good place to post this, or I should follow some other style, please tell me so. I have been a lurker and maybe I have a lot to learn.

Note that Ubuntu Gnome uses gdm (instead of lightdm, as in Ubuntu). This should not affect, as both are quite automagical in they behaviour, or so I am told. I do not mess with any desktop manager settings. If you want to achieve, say, different auto-login in the different seats, then you will be forced to play around the config files.

This step is required for the 361.42 driver, but I am told that version 364 does this automatically. To check that, call loginctl seat-status and see if the NVIDIA card has already the MASTER qualifier, which means that is a Master of Seat. If it already is, jump to the next step.

Instead of using the loginctl command you can manually add rules to the folder /etc/udev/rules.d/. Do whatever you are most comfortable with. It should be equivalent, as loginctl command ends up creating some files named /etc/udev/rules.d/72*.conf. If you do it by hand, you will be able to add comments change the setup more cleanly.

The minimal(?) configuration that works with the proprietary drivers can be achieved through the following configuration in /etc/X11/xorg.conf.d/. Create the folder if it is not present. You can put everything in one single file, multiple files, or arrange them in another fashion:

As you may have seen, I have tried to reduce to a minimum the configuration for Xorg (instead of, say, adding two full xorg.conf files and setting there every input / device / monitor / etc.). I like to keep a basic low-level setup (bare minimum as possible), and the graphical display tools are enough for me. I plan to do some more testing to reduce the settings even more, I am not sure what are the completely essential ones, or if those problems between nouveau and nvidia drivers will disappear in newer versions.

Also, I really like the systemd way of doing things. I am sure that some similar stuff can be achieved through carefully assignment of input devices in the xorg.conf, but some more nice behaviour like the sound card assignment, the USB-hub-per-seat features, etc. seems to be a pain to set up without systemd. Maybe I am wrong, feel free to share your experience!

No idea what is that PPA. I assume it may be required for previous versions, but with 16.04 is is NOT needed. If you intend to use older versions, then maybe look at another source (not my post) entirely. If you intend to use 16.04, use the already-included versions (and do not add the PPA).

No idea. I put the specific hardware and driver versions because that is what I had and that is what I still have. Using an older driver version than the one I am using seems a red flag, though. The actual model of the card should not matter, as long as the two cards are the same. Mixing cards may arise some driver/device problem.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages