Changes in technology and market forces require rethinking multi-seat computing.

If your goal is to add two workstations to your existing desktop computer, consider that https://www.linuxmint.com/edition.php?id=286 is preconfigured for Plugable UD-160-A USB zero clients because the founder and current CEO of Plugable wrote the linux drivers for the DisplayLink usb to DVI-I chip it contains. It is as simple as connecting these zero clients to your desktop, and their own monitors, and keyboard/mouses and they will display additional login screens for the user accounts that you had set up on your desktop. USB zero clients have a USB 2.0 cable limitation of 5 meters. I have had success extending that distance using two sections of 5 meters with a passive USB hub to recondition the signal between the two sections of cable. The UD-160-A has been recently discontinued because its sale competes with more recent USB 3.x zero client/docking stations manufactured by the same company which have newer USB to video chips that do not have free Linux drivers. Amazon has now sold out its stock of UD-160-A. This means that they have become very inexpensive in the used and open box market. Other discontinued USB zero clients include HP T150 and T100. See my UD-160-A tab for how to configure these other units.

For longer distances between the server and the workstation there are network attached zero clients with a cable length limited to 100 meters. These contain an internal network to USB chip whose driver is only available for Windows and for rpm based Linux like CentOS 7.x. The manufacturer of that chip has provided me with their last version of its Linux driver. See my Phistek ZE7000 tab for details. Atrust also manufactured (now discontinued) network attached zero clients such as their M220 model.

Linux is rapidly evolving so you can not count on other distributions and newer versions testing for working with discontinued multi-seat hardware. You can install multiple internal graphic cards and configure them for independent seats. However, PCI express video cards are made for gaming and use a lot of power. In addition they are expensive.

The popularity of cell phones running on batteries has led to the development of energy efficient and powerful new arm cpus. There is a UK based not-for-profit educational foundation that manufactures the Raspberry Pi 400 and 4B credit card sized desktop computers. I prefer the 4B model mounted on the back of my monitor with a wireless Logitech keyboard/mouse to the 400 model built into a keyboard that then needs an HDMI cable attached between it and the display. Technical support is extensive because their mission is to teach kids programming skills. https://www.raspberrypi.org/

Particularly appealing is that the Raspberry Pi 400/4B boards support either a 4K display or two separate displays at 1920 x 1080. They play commercial DVD movies well and with the addition of a DRM plugin to the Chromium browser, can stream commercial movie services like Netflix, but more importantly Kanopy and Hoopla that some public libraries subscribe to for their patrons.

I am also exploring Android TV boxes which are also cheap because of the current large scale of that market. They can be repurposed as desktop computers running Armbian Linux. Technical support is close to zero and the models and specs change continually. Once all TVs are smart TVs, they may disappear entirely. My X86MAX tab documents my experiments with one of these.

Multi-seat grew out of the days of mainframe computers (the server) and peripherals (clients) that allowed multiple users to interact with a mainframe computer at the same time (instead of submitting programs and data on punch cards). These early terminals were called teletype machines and consisted of a keyboard and printer that echoed the keyboard and sent one line at a time of text to the computer. Next were a model that replaced the printer with a crt display.

Now that we have Raspberry Pi desktops fast enough to run our applications locally, it stops making sense to have the workstations run their apps on a separate server. However, it would be desirable to be able to administer the system from a single computer and for users to login at any workstation, authenticate and resume their prior profile settings, and have any data they wish to save, all on the central computer, and all local data erased from their current workstation session when they logout. It would be good for the administrator to be able to update all OS and app software from the central computer, or to eliminate its system software on its microSD card by PXE booting it fresh each morning.

Two existing systems do this but are not up to date for Pi 4B hardware. The first, http://pinet.org.uk/ is being discontinued. It was essentially a thin client setup configured to run small apps locally as well as more demanding apps on the central server.

The second is https://www.raspberrypi.org/blog/piserver/ . Piserver is now included in a version of Raspberry Pi desktop for Intel x86 and Mac computers. However it only recognizes Pi 3 models currently. PXE booting of the Pi 3 is a one time configuration change so if you do that, you can’t ever boot it from its microSD card in the future. I believe, (but have not verified) that the Pi 4B can be configured for PXE booting while being able to be reconfigured later for other modes.

I could wait for this project to be updated to use Pi 4Bs, but I am likely to learn something by trying to build a similar system from scratch. A good place to start would be with the Raspberry Pi desktop for Intel x86 since I had an extra desktop, a legacy Atom 330 system. It is slower than a Raspberry 4B, but adequate for my purposes as the administrative server.

My first requirement is that all Raspberry Pi 4B workstations have their /home/username/ directory on the server so that they can logout of one Pi 4B session and login to another Pi 4B and resume where they left off and have all their data and settings. So I will follow the instructions in this tutorial to set this up on the server. https://www.raspberrypi.org/documentation/configuration/nfs.md