Введение
Первая проблема с которой я столкнулся, разыскивая информацию по этой теме – это терминология. Multiseat, multistation, multiterminal – всё это термины, обозначающие рабочую станцию, предназначенную для одновременного использования несколькими пользователями (также multihead workstation). Естественно, для каждого пользователя необходимы персональные монитор, клавиатура и мышь. Соответственно, должна быть возможность подключить всё это к мультистанции, тоесть нужное количество видеовыходов на видеокарте(видеокартах) и USB либо PS/2 входов для клавиатур и мышей.
Ниже описывается настройка мультистанции для двух рабочих мест.
Оборудование и ПО
Hardware:
Software:
Постановка задачи и проблемы
Наша задача – получить на каждом мониторе отдельный X-сервер со своими клавиатурой и мышью. Основная проблема заключалась в том, что это достаточно просто на двух разных видеокартах и вероятно невозможно(судя по не которым почтовым рассылкам) на двуголовой видеокарте. После продолжительного гугления удалось найти замечательное руководство именно на эту тему, где был предложен вариант решения проблемы с помощью компонента Xorg под названием Xephyr из пакета xorg-x11-xephyr. Что такое Xephyr? Xephyr представляет из себя полноценный X-сервер, который выполняется поверх другого X-сервера. Он создан для тестов и отладки графических программ, однако он как нельзя лучше подойдёт для нашей задачи. Тоесть запускать мы будем всё же один X-сервер, а поверх него уже X-сервера для каждого рабочего места.
Вторая проблема – отсутствие поддержки evdev в Xephyr – решается с помошью этогопатча
Установим драйверы
Для начала установим нужные драйверы. Для Ge Force? FX 5500 подойдёт legasy-драйвер версии 9639. К сожалению, на момент написания статьи в branch4 их ещё не было. По-этому подключаем apt-репозторий сизифа или качаем вручную с ftp.altlinux.org и устанавливаем:
Внимание: на момент написания статьи планировалось совместить текущие драйверы и legacy-драйверы в одном пакете: будьте внимательны, названия пакетов могут измениться
настройка Xorg
Тут наша задача увидеть работающий X-сервер на обоих мониторах одновременно.
Для начала конфигурируем мониторы. Монитор Sony был сконфигурирован инсталлятором дистрибутива автоматически. Я добавил второй монитор – LG:
Теперь добавим конфигурацию для нашей видеокарты. Для этого создаётся две одинаковые секции device в xorg.conf но с разными параметрами Screen, означающими разные «головы» видеокарты:
Создадим две секции Layout. Одну для «одноголовой» конфигурации и вторую для «двуголовой». Различаются эти секции только параметрами Screen.
Так же понадобится отключит сочетание клавиш ctrl+alt+backspace, убивающее X-сервер, в секции Server Flags?:
В целом, мой xorg.conf выглядит вот так:
Запустите X и убедитесь что оба ваших монитора работают:
Если вы не увидели работающего X-сервера читайте логи и исправляйте xorg.conf
Далее нам бы установить Xephyr, но в текущей его версии отсутствует поддержка evdev. Нам без evdev никак, по этому вам надо либо самостоятельно пропатчить xorg-x11-server, либо взять уже пропатчиную версию здес
ь. Надеюсь исправления скоро попадут в дистрибутив и установка станет проще.
Ещё раз проверьте, что всё у вас запускается и можно двигаться дальше. Итак, с мониторами разобрались, теперь разберёмся с клавиатурами и мышами.
Смотрим, как у нас обстоят дела с устройствами:
Следующая проблема, которую необходимо решить, состоит в том, что после перезагрузки сменится event id. Для этого в файле /usr/sbin/Xephyr.sh разместим скрипт-обёртку для xephyr:
Поскольку device id не меняется после перезагрузок, этот скрипт связывает event id и нужную нам клавиатуру или мышь.
Так же этот скрипт-обёртку можно установить из репозитория Sisyphus:
Так же установите скрипт для более удобного запуска xephyr c evdev и конфиг для kdm (либо для gdm, если используете его)
multistation-scripts kdm-multistation-config (либо gdm-multistation-config)
и найдите нужные значения Phys для ваших устройств. В соответствии с ними выставите параметры -kbdphys и -mousephys в файле ...
Прописать display manager в /etc/sysconfig/desktop : для gdm — GNOME, для kdm — KDE.
Перезапустите X. Всё готово.
1. Альтернативный вариант с запуском Xgl вместо Xephyr
http://research.edm.uhasselt.be/~jori/page/index.php?n=Misc.DualSeatX