Linux multiseat.(1 корпус - 2 рабочих места)

Статус: Offline
Реєстрація: 02.04.2007
Повідом.: 42
Linux multiseat.(1 корпус - 2 рабочих места)

Вот, решил поделиться своим опытом создания мультисита; Писал сам, хотя и по материалам из инета. Может кому будет интересно.

MultiSeat с использованием Linux.

Multiterminal(Multistation, Multiseat) всеми этими терминами обозначают станцию, предназначенную для одновременной работы нескольких пользователей. Количество пользователей может достигать шести, это зависит уже больше от аппаратного обеспечения.

В интернете существуют статьи, которые описывают создание Multiseat шаг за шагом(см. ссылки[1-4]), но проблема заключается в том, что успешность того или иного подхода зависит от аппаратного обеспечения.
Потому внимание я хочу уделить не столько вопросу "как", сколько вопросу "почему".

Я реализовывал свой домашний multiseat на Slackware 12.1.
Рабочий терминал состоит из:
Терминал 1:
-PS/2 мышь, PS/2 клавиатура.
-монитор PHILIPS 190C
Терминал 2:
-USB мышь, USB клавиатура.
-монитор Samsung 765MB
В моем случае присутствовали две видеокарты, ATI PCIe и Nvidia интегрированный.Как оказалось в дальнейшем, не самый удобный для настройки выбор.

Подходы к созданию Multiseat:

Существует два принципиально отличающихся подхода при создании Multiseat:
1) Запускается два X сервера, которые работают параллельно для каждого рабочего места[3]. Для первого способа необходима два видеоадаптера.

2) Запускается три X сервера, один работает на два рабочих места, в режиме Xinerama, а два других, вложенных(как правило Xephyr, Xgl) работают на нем как на фоне. Один в одном окне, а другой во втором. Притом каждому передаются параметры отвечающие за устройства ввода при запуске. Второй способ естественно более ресурсоемкий, на него накладываются ограничения вложенного сервера (Xephyr, Xgl) вроде отстуствия поддержки 3D, но как правило второй может использоваться там, где первый способ настроить не удается[4].
Для второго способа достаточно одного видеоадаптера с DualHead, Например на DVI и CRT.

В руководствах [3,4] довольно хорошо описан процесс настройки. Но, хотелось бы, обратить внимание на такие подводные камни, лишь чуть затронутые в этих статьях.


1) Не все видеокарты будут работать вместе. Как это не грустно, но такое случается. Потому, прежде чем покупать вторую видеокарту, нужно таки попробовать.
2) Лучше работать на видеокартах одного производителя. Хотя бы из-за драйверов, которые нужно устанавливать два раза, и очень часто выбирать между проприетарными и бесплатными аналогами. Опять таки-прежде чем покупать - пробовать.
3) USB клавиатура и мышь могут вместе не работать. Особенно самые дешевые. Со мной был именно такой случай- пришлось менять.
4) Драйвера. Как правило открытые драйвера подходят. Но если, возникает черный экран и странное сообщение о содержимом BIOSa - качайте проприетарные. Начинайте с последней версии, если не помогает - ищите в интернете, на какой версии нормально работало и качайте ее. Например в моем случае, была ситуация когда работало через один билд. Хотите 3D? Тогда все таки устанавливайте проприетарные драйвера, они как правило более функциональны, особенно со свежими карточками.
5)Какую карту инициализировать первой в BIOS при загрузке компьютера? Очень часто, порядок инициализации будет критичен.
6)evdev работает с идентификаторами событий от устройств(event-id). Некоторые USB устройства меняют свои event-id при перезагрузке. Решение-делать скрипт обертку, лдибо рыться в настройках инициализации USB устройств. Либо - может помочь перегазгрузка. Данная проблема особенно актуальна для второго варианта.
6)Как правило, инициализировать два сервера одновременно не получается. Если вы счастливый обладатель PCI видеокарты - вам поможет IsolateDevice.Для PCIe IsolateDevice - не поможет. Нужно запускать сервера по очереди.
7)Если у вас Nvidia и она при инициализации зависает - попробуйте NoInt10 - может помочь.
8)Какой бы из двух вариантов настройки вы не выбрали бы - настраивать серверанужно по одному! Быстрее будет.

Вопросы:Сделал все как в мануалах, конфиг правильный, а не работает!

Вкратце, алгоритм выявления и устранения неисправностей для первого варианта такой:
1) Настроить один сервер для одной видеокарты. Сохранить конфиг.
2) Настроить второй сервер для второй видеокарты.
3) Запустить поочередно. Если запускаются один после другого - значить проблема практически решена - теперь сводить их вместе. Если нет - 4.
4) Обновить драйвера, Сменить порядок инициализауии в BIOS, пробовать дополнительные параметры xorg.config. Обязательно вести учет перепробованных изменений.
5) Проблема с клавиатрами и мышками - внимательно настроить evdev, Проверить работоспособность устройств выводя содержимое /dev/*** на консоль и нахимая клавиши/двигая мышью.
6) Время от времени, перезагружает один из серверов - увеличить размер свопа, добавить оперативы, сменить оконный менеджер на более легкий.

В продолжении, если затронутая тема будет интересна, разберу конфиги на свою систему, с пошаговым руководством.

Ссылки(были, но первые 20 сообщений на форуме не должны содержать ввв, ком, нет, уа и т д):
 
Интересно. Задача такая пока не стояла,но галочку в уме поставлю
 
Скажите ТС - а проблемы с корректным отображением grp_led на usb-клавиатурах уже решили?
Помнится в далеком 2000м именно они меня больше всего раздражали...
 
Скажите ТС - а проблемы с корректным отображением grp_led на usb-клавиатурах уже решили?
Помнится в далеком 2000м именно они меня больше всего раздражали...

Для работы с USB клавиатурой пользуюсь driver evdev.
grp_led работает нормально

Например лампочка scrollLock корректно отображает язык ввода для вот такой строки:
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
USB Клавиатура вроде бы Genius(цена 70 грн с мышкой, год назад).
 
Для работы с USB клавиатурой пользуюсь driver evdev.
grp_led работает нормально

Например лампочка scrollLock корректно отображает язык ввода для вот такой строки:
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
USB Клавиатура вроде бы Genius(цена 70 грн с мышкой, год назад).

И при переключениях в разных терминалах?
И еще вопрос: не пробовали несколько юсбшных клав , как с несколько отрабатывают с grp_led
ЗЫ
Пасиб
 
И при переключениях в разных терминалах?
И еще вопрос: не пробовали несколько юсбшных клав , как с несколько отрабатывают с grp_led
ЗЫ
Пасиб

При переключении в разных терминалах - нормально. Теоретически могут быть проблемы, когда работаешь в виде вложеных серверов Xephyr: но там вроде бы патч на evdev специальный.

Несколько юсбишных - не пробовал.
 
:пиво:
*Нда евдев.. эхх а мы руками....
 
Можно ли создать multihead+multiseat
и подскажите проблемму с evdev и всякими переключениями клавиатур, корректностью клавиш,стрелок.
Если можно не поделитесь конфигами?
 
Можно ли создать multihead+multiseat
и подскажите проблемму с evdev и всякими переключениями клавиатур, корректностью клавиш,стрелок.
Если можно не поделитесь конфигами?

multihead+multiseat(т.е. условно говоря три монитора и два рабочих места?) - думаю да, если Xephyr на одном мониторе поверх Xinerama на три монитора.

По поводу evdev - необходимость внесения правок, и сам характер правок зависят от вашего дистрибутива.

Конфигом - поделюсь. Конфиг для моей системы на два монитора на двух разных видеокарточках(т.е. без Xephyr).
 

Вкладення

  • xorg.conf.txt
    4.3 КБ · Перегляди: 137
конфиг у меня примерно такой-же
startx -- -layout head0
startx -- -layout head1
стартуют нормально
для корректной работы evdev пришлость создать rules для hal,
но при старте стартует только одно рабочее место, а на втором X сваливаются в ошибке
карточка для dualhead "Nvidia" в чем может быть дело??
 
А ошибка какая? Чтото мне думается, что проблема с правами вывода на второй иксовый дисплей
 
Вроде так и есть проверял на Nvidia 8500GT 1-d-sub 1-Dvi первый сеанс стартует, а второй ругается на EVO dma и т.д
 
Я хочу стартануть на одной машине и одной видео 2 X сервера по одиночке они стартуют, а одновременно один стартует, а во втором лог прилагаю.:confused:
 

Вкладення

  • Xorg.1.log.txt
    24.4 КБ · Перегляди: 121
Нда. Это что-то с клавиатурой, похоже
 
Извините послал не тот лог
 

Вкладення

  • Xorg.0.log.txt
    22.9 КБ · Перегляди: 155
Посилання видалено
Наскока понял, принципиально создать два конфига для xorg и запускать каждый x со своим конфигом
 
Причем тут 2 конфига?? Ощущение что при попытке старта второго сервера драйвер nvidia не может делить ресурсы. Существует ли возможность создать такой мультисит???
 
Причем тут 2 конфига?? Ощущение что при попытке старта второго сервера драйвер nvidia не может делить ресурсы. Существует ли возможность создать такой мультисит???

Скорее всего да.
Для этого такая примерно тактика:
1) Настроить оба рабочих места по отдельности. Т/е/ когда работает только один монитор.
2) Настроить Xinerama (один рабочий стол на два монитора)
3) Настроить два Xephyr'a

Если получилось настроить 2й пункт - то мультисит настроить однозначно можно.
 
В том-то и вопрос отдельно рабочие места настроены.
запустить одновременно 2 X сервера не получается драйвер видео не может быть загружен 2 раза.
2) Настроить Xinerama (один рабочий стол на два монитора)
3) Настроить два Xephyr'a
Можно ли нормальную инструкцию на русском или английском либо ссылку.(желательно с настройкой kdm)
Либо реальные советы.
 
Назад
Зверху Знизу