From Fedora Project Wiki

Revision as of 19:39, 18 November 2008 by Poelstra (talk | contribs) (this page is not ready for FESCo, please see discussion tab)

Multiseat Support

Summary

Make it simple to configure a system for multiseat operation, where two or more users each have their own keyboard, monitor, and mouse, and can work independently of each other.

Owner

Current status

  • Targeted release: Fedora 11
  • Last updated: 2008-11-07
  • Percentage of completion: 2%

Detailed Description

Linux is inherently multiuser, but PC hardware is usually designed with a single local user in mind. However, it's realitively straightforward to add additional video cards, monitors, and mice to provide access for multiple simultaneous users. F8 provided fairly good multiseat support (with significant manual configuration), but recent changes in in device support and X have removed functionality that is needed for multiseat operation. The removed functionality needs to be added back in and be thoroughly tested on a range of hardware.

Multiseat systems are useful in schools, home offices, libraries, Internet cafes, and other settings, and provide savings in power consumption, capital cost, and administration effort when compared to operating multiple PCs.

Benefit to Fedora

Multiseat is a good solution for several use-cases, and will clearly showcase Fedora's flexibility. However, it is also expected to yield improvements robustness of device support for single-user configurations.

Note: Fedora currently has multiseat users (release <= F8) who are or are about to be using an EOL release. Adding good multiseat support will enable those users to upgrade to a current Fedora release and make it easy for additional users to configure multiseat systems.

Scope

Requires testing and/or enhancements in:

  • GDM
    • GDM 2.22 dropped support for configuring multiple local servers via configuration files. To start multiple seats, we will need to: (a) have ConsoleKit tell GDM what seats are available (seems to be the preferred approach), (b) signal GDM to start another local X server (e.g. gdmflexiserver with arguments), (c) add the config-file functionality back in, or (d) configure multiseat using one of the other display managers.
  • ConsoleKit
    • If approach (a) is selected above, ConsoleKit will need to be configurable for multiple seats. (I can't see an easy way for it to automatically determine keyboard-pointer-video groupings).
    • Decide how to handle multiple concurrent local users for for sound, USB, and removable-media drives.
  • PulseAudio
    • Adjustments to default configuration to better support multiple local users?
  • hal/udev
    • X is now configured with all input devices, even those hotplugged after the X server starts. For multiseat operation, this is not desirable.
  • X
    • Fix/restore --noswitchvt functionality
    • Test that evdev can be configured to use specific devices only (vs. all input devices)
    • Determine which video card and driver combinations work in a multi-seat configuration (e.g., Nouveau is reported not to work with multiple cards at this time)

A multiseat configuration tool is also needed.

How To Test

  1. Arrange access to systems with a variety of multiseat video configurations.
  2. Test multiseat operation on those platforms.
  3. Work with Fedora QA to ensure that we have sufficient coverage.

User Experience

  1. Users of existing multiseat systems (currently stuck at F8) will be able to update their systems to a current Fedora release.
  2. Users configuring a multiseat system for the first time should find it fairly straightforward.
  3. Multiseat systems should operate with the same reliability as single-seat systems.

Dependencies

  • Changes noted in "Scope" section
    • Updated GDM
    • Updated ConsoleKit
    • Alternate or adapted ruleset for udev
    • X changes and testing
  • Creation of configuration tool

Contingency Plan

  • Do not support Multiseat in Fedora -- no change from F9/F10

Documentation

  • (To be written)

Release Notes

  • (To be written)