Два рабочих места из одного компьютера на Linux Gentoo | ||
Дистрибутивы > Gentoo На сегодняшний день наличие двух и более компьютеров в семье уже считается нормой, иначе скандалов не избежать. И моя семья не исключение. У нас уже давно дома множество компьютеров различного назначения. Из основных рабочих станций: у жены свой компьютер, у меня свой. Жене компьютер нужен не очень часто и только когда появляется возможность немного отойти от ребенка. Ждать пока загрузится времени не много поэтому все время ее комп стоял включеный. Я решил сделать немного по другому раз уж мой компьютер и так всегда включен и выполняет огромное несколько задач вроде видеорегистрации, выкачивания файлов итп.
По другому - это значит что берем один мой компьютер и подключаем в него два монитора, две мыши, две клавиатуры. Вуаля! Один компьютер - два полноценных и равнозначных рабочих места. Звука и вебкамеры нам достаточно одного комплекта на двоих, хотя и эта проблема решается при желании. Операционная система Вот что получилось в результате подключения двух мониторов, двух мышей и двух клав к одному компьютеру Оборудование У меня для того чтоб дотянуть провода до одной головы пришлось использовать удлинитель монитора и удлинитель USB. Поэтому перед походом в магазин хорошо подумайте сколько удлинителей USB и мониторов, USB хабов понадобится. С видеокартами вышел небольшой конфуз. Я использовал одну интегрированную на материнскую плату, другую внешнюю. Интегрированная ATI Radeon HD3000, внешняя NVidia GeForce 8500GT. Так вот первая проблема, что с двумя столь разношерстными видеокартами использовать OpenGL не получится ибо через eselect надо выбрать используемую систему аппаратного ускорения. Что фактически делает eselect - просто переключает симлинки /usr/lib64/libGL на выбранную библиотеку. Например для nvidia: Для xorg-x11: Раз уж мы не можем указать один симлинк на две библиотеки одновременно, то использовать одновременно различные видеокарты не получится. Поэтому вам настойчиво советую брать видеокарты одного производителя. Причем не ATI :) У меня имелась Radeon X300, которую я решил использовать в качестве внешней видеокарты. Через проприетарный ati-drivers (fglrx) два монитора у меня не завелись, хотя один заработавший монитор/видеокарта давали вполне нормальный фреймрейт в играх. С огромным трудом получилось заставить работать обе карты с поддержкой директ рендеринга через драйвер xf86-video-ati (radeon). Отличная документация как настроить аппаратное ускорение на видеокартах от ATI: Я сделал точно как описано в этом руководстве, пересобрав ядро раз пять чтоб заставить работать сначала одну видеокарту (древний Radeon X300), а потом другую (встроенную на материнку Radeon HD3000). Производительность радеонов расстроила. Direct Renderind Manager завелся и в этом можно убедиться вот таким образом: Сразу предупреждаю, что затестить две карточки Nvidia на одном компьютере пока еще не выдалось возможности. Заменю материнку на какой то GeForce и проверю. Настройки для двух видеокарт на одном компьютере в общем то не отличаются за исключением того, что для каждой видеокарты настраиваются свои секции Device для Card0 и для Card1. Память и процессор уже сами думайте какие нужны исходя из поставленых задач. Для интернета и скайпа хватит ресурсов обычного домашнего компьютера, а для игр сколько не бери - все равно будет мало. Настройка Итак, нам надо определить два рабочих места (при желании, можно и больше конечно). Для этого описываем две секции ServerLayout с названиями seat0 и seat1: Настройка клавиатуры и мыши Ваши иксы должны работать через evdev драйвер. Чтоб проверить какая конкретно мышь или клавиатура подключены на какой input, можно запустить команду: Создаем две секции для клавиатур: Создаем две секции для мышей: AllowMouseOpenFail позволит загрузиться иксам даже если мышь отключилась или перепрыгнула на другой input. Настройка видеокарты
Чтоб узнать BusID используйте команду lspci | grep VGA: # lspci | grep VGA Эта строка говорит что видеокарта Radeon висит на BusID PCI:1:5:0 Таким же образом настраиваем под каждое рабочее место в двух экземплярах секции Monitor и Screen В случае ошибок ковыряем логи /var/log/Xorg.0.log и /var/log/Xorg.1.log В /usr/share/config/kdm/kdmrc исправляем следующие ключи, чтоб получилось вот так: [X-:0-Core] [X-:1-Core] Не забываем в параметре isolateDevice вписать ваши BusID видеокарт и если меняете BusID в xorg.conf, то изменить нужно в этом файле тоже. Можно стартовать kdm Теперь при старте службы /etc/init.d/xdm (в конфиге которого /etc/conf.d/xdm выбран DISPLAYMANAGER=kdm ) каждое рабочее место получит свой kdm с запросом логина. В процессах можно увидеть висящие X0 и X1, каждый из которых отвечает за свое рабочее место. Ниже привожу свой конфиг, который в большинстве случаев можно просто подредактировать изменив драйвера видеокарты и input для клавы и мыши. Section "Files" ModulePath "/usr/lib64/xorg/modules" FontPath "/usr/share/fonts/misc/" FontPath "/usr/share/fonts/TTF/" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1/" FontPath "/usr/share/fonts/100dpi/" FontPath "/usr/share/fonts/75dpi/" EndSection Section "Module" Load "glx" Load "extmod" Load "record" Load "dbe" Load "dri" EndSection Section "ServerLayout" Identifier "seat0" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" Option "AutoAddDevices" "off" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "evdev" Option "Device" "/dev/input/event5" Option "XkbModel" "evdev" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mouse1" Option "ZAxisMapping" "4 5" EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Section "Device" Identifier "Videocard0" Driver "nvidia" VendorName "nVidia Corporation" BoardName "G86 [GeForce 8500 GT]" BusID "PCI:2:0:0" EndSection Section "Monitor" Identifier "Monitor0" Option "dpms" EndSection Section "ServerLayout" Identifier "seat1" Screen 1 "Screen1" 0 0 InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" Option "AutoAddDevices" "off" EndSection Section "InputDevice" Identifier "Keyboard1" Driver "evdev" Option "Device" "/dev/input/event2" Option "XkbModel" "evdev" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mouse0" Option "ZAxisMapping" "4 5" EndSection Section "Screen" Identifier "Screen1" Device "Videocard1" Monitor "Monitor1" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Section "Device" Identifier "Videocard1" Driver "radeon" BoardName "ATI Radeon" BusID "PCI:1:5:0" Option "UseInternalAGPGART" "no" Option "VideoOverlay" "on" EndSection Section "Monitor" Identifier "Monitor1" Option "dpms" EndSection Section "ServerFlags" # Xorg will otherwise not start if it can't find a mouse to use. Option "AllowMouseOpenFail" "true" # Disable xinerama Option "Xinerama" "0" EndSection Section "DRI" Mode 0666 EndSection На следующем видео я хотел показать top на ноутбуке, подключившись через SSH, но даже на HD-качестве очень плохо видно сколько потребляют процессы hl.exe и flatout.exe. Процессор не грузится на 100%. Фреймрейт расстраивает. Даже для таких слабых видеокарт это не нормально. Видеокарты NVidia дают с проприетарными дровами гораздо большую производительность. Запустив Flatout на NVidia в конфигурации одна видеокарта встроенная Radeon HD3000, вторая Nvidia GeForce 8500GT вполне можно комфортно одновременно играть, а за второй рабочей станцией пользоваться интернетом. |
||
Комментарии | ||