Вход:  Пароль:  
FreeSource: AltLinux/Dokumentacija/Multistation ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Dokumentacija/Multistation за 2007-10-11 11:49:52..

Пока это только черновик


Введение
Первая проблема с которой я столкнулся, разыскивая информацию по этой теме – это терминология. Multiseat, multistation, multiterminal – всё это термины, обозначающие рабочую станцию, предназначенную для одновременного использования несколькими пользователями. Естественно, для каждого пользователя необходимы персональные монитор, клавиатура и мышь. Соответственно, должна быть возможность подключить всё это к мультистанции, тоесть нужное количество видеовыходов на видеокарте(видеокартах) и USB либо PS/2 входов для клавиатур и мышей.
Ниже описывается настройка мультистанции для двух рабочих мест.


Оборудование и ПО
Hardware:

некая рабочая станция
двуголовый (dualhead) видеоадаптер Nvidia Ge Force? FX 5500
монитор Sony,
монитор Nec,
клавиатура белая PS/2,
клавиатура чёрная USB,
мышь черная PS/2
мышь черная с полоской USB.

Software:

ALTLinux branch 4.0.

Постановка задачи и проблемы
Наша задача – получить на каждом мониторе отдельный 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, либо взять уже пропатчиную версию здес
ь. Надеюсь исправления скоро попадут в дистрибутив и установка станет проще.



Ещё раз проверьте, что всё у вас запускается и можно двигаться дальше. Итак, с мониторами разобрались, теперь разберёмся с клавиатурами и мышами.


Смотрим, как у нас обстоят дела с устройствами:
&&
# cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7


I: Bus=0011 Vendor=0002 Product=0005 Version=0000
N: Name="Im PS / 2? Generic Wheel Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input1
H: Handlers=mouse0 event1 ts0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103


I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/class/input/input2
H: Handlers=kbd event2
B: EV=40001
B: SND=6


I: Bus=0003 Vendor=0d62 Product=001c Version=0202
N: Name="Darfon USB Combo Keyboard"
P: Phys=usb-0000:00:1d.1–1/input0
S: Sysfs=/class/input/input5
H: Handlers=kbd event4
B: EV=120003
B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=7


I: Bus=0003 Vendor=0d62 Product=001c Version=0202
N: Name="Darfon USB Combo Keyboard"
P: Phys=usb-0000:00:1d.1–1/input1
S: Sysfs=/class/input/input6
H: Handlers=kbd event5
B: EV=3
B: KEY=3078 d801d101 1e0000 0 0 0


I: Bus=0003 Vendor=046d Product=c03f Version=2000
N: Name="Logitech USB-PS/2 Optical Mouse"
P: Phys=usb-0000:00:1d.1–2/input0
S: Sysfs=/class/input/input8
H: Handlers=mouse1 event3 ts1
B: EV=7
B: KEY=f0000 0 0 0 0 0 0 0 0
B: REL=103
&&


Следующая проблема, которую необходимо решить, состоит в том, что после перезагрузки сменится event id. Для этого в файле /usr/sbin/Xephyr.sh разместим скрипт-обёртку для xephyr:

Поскольку device id не меняется из-за перезагрузок, этот скрипт связывает event id и нужную нам клавиатуру или мышь.


Так же установите скрипт для более удобного запуска xephyr c evdev и конфиг для kdm (либо для gdm, если используете его)


multistation-scripts kdm-multistation-config (либо gdm-multistation-config)


Настройки kdm нужно поправить в соответствии с вашей конфигурацией мышей и клавиатур. Для этого посмотрите вывод команды


cat /proc/bus/input/devices


и найдите нужные значения Phys для ваших устройств. В соответствии с ними выставите параметры -kbdphys и -mousephys в файле ...


Перезапустите X. Всё готово.


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]