Большой Воронежский Форум
» UNIX и дериваты>Можно ли в Линуксе такое?
distantX 17:25 01.03.2007
Чтоб подключить к компьютеру пару мышей, клавиатур и мониторов (а может и пару графических карт) и чтоб два или более пользователей логинились в одной системе и работали в одно время в GUI (общем или в разных) и каждый со своими задачами и со "своими" устройствами ввода-вывода? [Ответ]
Den 18:22 01.03.2007
Можно в линуксе такое. [Ответ]
distantX 20:16 01.03.2007
Спасибо! [Ответ]
Mark5 21:48 01.03.2007
а в Винде такое можно? [Ответ]
dalex 08:28 02.03.2007

Сообщение от :
а в Винде такое можно?

конечно. [Ответ]
Mark5 09:06 02.03.2007
в Винде? в какой?? как?!!! [Ответ]
dalex 09:41 02.03.2007

Сообщение от :
в Винде? в какой?? как?!!!

в xp например. Не знаю можно ли стандартно сделать - хотя в теории если можно для конкретного юзера выключить одну мышь и включить вторую то все ок. Если нельзя стандартно - есть ThinSoft BeTwin [Ответ]
Mark5 10:21 02.03.2007
мышами и клавами можно хоть обвешаться. плюс можно (в теории - сам не проверял) сделать два профиля оборудования для разных пользователей. но КАК можно сделать два разных рабочих стола одновременно для каждго юзера?

по линуксу - это делается чем? стандартными возможностями системы или нужен какой то софт? если софт то какой? [Ответ]
Lampus 12:34 03.03.2007
Помнится когда я был ламером в линухах и сидел на мандрейке, этак года 2 назад, я втыкал две видеокарты в комп - одна AGP GeForce2 MX 400, другая PCI Savage 3 Trio64. В общем картина получилась интересная: на одном мониторе запустились иксы с КДЕ и на втором. Но самое интересное что они работали совершенно независимо друг от друга, т.е. рулить я мог только КДЕ на одном из мониторов, как перебраться на второй до меня тогда так и не допёрло. =)
Теперь вернёмся к делу... Созревает вопрос - а возможно ли запустить два Х сервера одновременно с разными конфигами. Т.е. так чтобы каждый Х сервер работал со своей видеокарточкой и InputDevice'ами? В общем чую придётся спрашивать гугл и доки на x.org =) [Ответ]
distantX 14:11 03.03.2007
Lampus, да ясно, это надо делать через два X сервера. Вроде и менеджер X серверов есть. Я видел статью где-то на англицком в инете, но оч. давно и проглядел ее невнимательно. Там два перца в дискуссии о мэйнфреймах меж собой терли. Сейчас ни найти ее, ни вспомнить не могу, вот и завел эту тему. [Ответ]
Lampus 18:15 03.03.2007
Гугль как всегда спас... Кусок из ЧаВо на linux.org.ru

Сообщение от :
15.22 Как подключить к компьютеру несколько терминалов - комплектов клавиатура+мышь+монитор (multihead, многологовый)?


Хотите дать нескольким людям доступ к одной машине? Не проблема. Оригинал статьи автор (Вадим Лихота - vadim-lvv_собака_yandex.ru) обещал положить сюда - www.klv.lg.ua/~vadim/. Ну а пока оригинала нет, выкладываю сокращенную мною (jackill) версию.

Общий принцип работы

При включении компьютера для каждого рабочего места автоматически загружается отдельная копия Х-сервера. В настройках каждого Х-сервера указано, с какой клавиатурой и мышкой он работает и посредством какой видеокарты выводится изображение. Все остальные аппаратные части компьютера находятся в общем использовании. За распределением ресурсов между пользователями следит ядро системы.

Аппаратная часть

Современные наиболее распространенные видеокарточки использовать невозможно, так как на материнских платах нет второго AGP-разъема. Приходится использовать PCI видеокарты. Опыт показывает, что наиболее оптимальны из них S3 Virge и ATI Rage, так как не создают трудностей при использовании и являются наиболее доступными. Некоторые PCI видеокарты отказываются работать в качестве ведомой с какой-либо еще. Проблем не встретилось практически ни с одной видеокарточкой от S3, кроме S3TrioV+ и более старых.

Из современных клавиатур можно использовать PS/2 и USB-клавиатуры. Количество USB-клавиатур ограничивается только числом разъемов USB. Количество PS/2 клавиатур ограничивается числом разъемов PS/2 (клавиатура, вставленная в разъем мыши PS/2 будет опознана корректно).

Мыши можно подключать в разъем PS/2, USB (подозреваю, что и в COM-порт, если найдете такую - прим. jackill).

Программная часть

Настройка старых систем (на ядре 2.4 + Xfree86 и более старых) описана по следующему адресу - http://cambuca.ldhc.cetuc.puc-rio.br/multiuser/.

Далее приводится информация для свежих дистрибутивов на примере Fedora Core 3 и ASP Linux 10.

Выкачиваем измененный X-сервер отсюда - ftp://ftp.linux.cz/pub/linux/people/...xorg-dualhead/. (Здесь же можно найти патч для исходных кодов и посмотреть пример файлов конфигурации).
Вставляем наши железки: видеокарты, мыши, клавиатуры, подключаем мониторы.
Грузимся в консольном режиме ( runlevel 3). Если машина не грузится, ругаясь на клавиатуру в мышином порте PS/2, следует нажать на ней любую клавишу. То же касается asploader'а.

Расмотрим настройки для двух PS/2-клавиатур и двух USB-мышей (с двумя USB-клавиатурами бывают глюки).

Поскольку для Fedora Core и ASP Linux десктопной средой по умолчанию является Gnome, настройки для менеджера входа будут выложены для gdm.

В файле /etc/X11/gdm/gdm.conf меняем:

[server]
0=Standart

[server-Standart]
name=Standart server
command=/usr/X11R6/bin/X -audit 0
flexible=true

на

[server]
0=Standart0
1=Standart1

[server-Standart0]
name=Standart server
command=/usr/X11R6/bin/X -audit 0 vt7 -layout Layout0 -nopciaccessdisable
flexible=true

[server-Standart1]
name=Standart server
command=/usr/X11R6/bin/X -audit 0 vt7 -layout Layout1 -nopciaccessdisable -novtswitches
flexible=true

Для модульного xorg:

[server]
0=Standart0
1=Standart1

[server-Standart0]
name=Standart server
command=/usr/bin/X -audit 0 vt7 -layout Layout0 -nopciaccessdisable
flexible=true

[server-Standart1]
name=Standart server
command=/usr/bin/X -audit 0 vt7 -layout Layout1 -nopciaccessdisable -novtswitches
flexible=true

После этого настраиваются клавиатуры и мыши. При загрузке Linux'а со всеми устройствами ввода в каталоге /dev/input сопоставляются файлы event0, event1 и т. д. В дополнение к этому для мышей mouse0, mouse1, а всем мышам одновременно - mice, но при каждой загрузке это сопоставление происходит заново без оглядки на прошлую нумерацию, и чтобы это упорядочить, надо каждому конкретному устройству назначить постоянную символическую ссылку.

Посмотреть подключенные устройства ввода можно в файле /proc/bus/input/devices. Для PS/2 устройств (в нашем случае 2 клавиатуры) надо в файл /etc/udev/rules.d/10-input.rules добавить (если файла нет, то создать его):
#PS/2 keyboard
SYSFS{dev}="13:64", KERNEL="event*", SYMLINK="keyboard_one"
SYSFS{dev}="13:65", KERNEL="event*", SYMLINK="keyboard_two"
USB-устройства лучше всего различать по кодам Bus, Vendor (например у меня 046d - Logitech), Product и другим из файла /proc/bus/input/devices (если устройства одинаковые, то можно воспользоваться командой udevinfo -q path -n /dev/device & и полученный путь передать в команду udevinfo -a -p your_path; подробнее - http://www.linuxforum.ru/index.php?s...9712&hl=udev):
#USB mouse
BUS="usb", KERNEL="mouse*", SYSFS{idVendor}="046d", SYSFS{idProduct}="c50b", SYNLINK="mouse_one"
BUS="usb", KERNEL="mouse*", SYSFS{idVendor}="046d", SYSFS{idProduct}="025c", SYNLINK="mouse_two"

Перезапускаем udev:
user@localhost~$ killall udevd & /sbin/start_udev
Теперь нужно указать X серверу, что со всем этим делать в файле /etc/X11/xorg.conf. В нем прописана конфигурация для текущего состояния:
Section "ServerLayout"
Identifier "Xfree86 Configurited"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
И создать такую же секцию со "Screen1", "Mouse1" и "Keyboard1" для "Layout1".

В этом же файле ниже следует найти секцию "InputDevice" с Identifier "Keyboard0", заменить в ней протокол "Standart" на "usbev" (чтобы работа с клавиатурой шла не напрямую, а через заданные нами файлы), добавить строки, с указанием какой файл использовать и как обходится с переключениями:
Option "Device" "/dev/input/keyboard_one"
Option "XkbRules" "xorg"
и создать такую же секцию с Identifier "Keyboard1" и "/dev/input/keyboard_two". Подобным же образом отредактировать секцию "Mouse0":
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mouse_one"
Option "ZaxisMapping" "4 5"
EndSection
и создать аналогичный для "Mouse1" "/dev/input/mouse_two". В секции для "Screen0" заменить "Monitor" на "Monitor0" и сделать его копию с параметрами "Screen1", "Monitor1" и в Device заменить на "videocard1". Если второй монитор отличается, то текущие разрешения заменить на требуемые.

В секции "Monitor" заменить значение Identifier "Monitor" на "Monitor0", создать его копию с Identifier "Monitor1". Вот пример для монитора 17'' LCD с разрешением 1280х1024 и частотой 60 - 75 Гц:
Section "Monitor"
Identifier "Monitor0"
VendorName "SAM"
ModelName "Samsung SyncMaster"
HorizSync 61.5-81.0
VertRefresh 59.0-76.0
EndSection
и 17'' ЭЛТ монитора:
Section "Monitor"
Identifier "Monitor1"
VendorName "SAM"
ModelName "Samsung SyncMaster"
HorizSync 30.0-96.0
VertRefresh 50.0-160.0
EndSection

В секции для видеокарты обязательно нужно правильно указать номер устройства на PCI шине и драйвер.

Теперь после внесения всех изменений нужно проверить работоспособность. Для этого в консоли следует ввести:
user@localhost ~$ X -layout Layout0
Экран переключится в графический режим с курсором в виде X на экране. Для возвращения назад следует нажать Ctrl+Alt+Backspace. То же проделать для Layout1. Если все вышеописанное заработало, можно перегружать компьютер - и на обоих экранах после загрузки появятся приглашения для ввода имени/пароля.

[Ответ]
distantX 18:43 03.03.2007
Lampus, респект [Ответ]
Sh@rk 19:27 03.03.2007
Lampus, +1 [Ответ]
Вверх