Инструкция По Установке Multiseat Xgl На Ubuntu
Total Page:16
File Type:pdf, Size:1020Kb
Инструкция по настройке Multiseat Поддубный Виталий ООО «Манускрипт Солюшн» г.Тула e-mail: [email protected] 27.12.2008г. Обновлено: 31.07.2011г. ВВЕДЕНИЕ Среди современных офисных компьютеров трудно найти такие, ресурсы которых использова- лись хотя бы на одну треть. С развитием фирмы как правило возникает потребность в новых рабо- чих местах, на которые нужно приобретать дополнительные компьютеры. Если Ваш компьютер страдает от избыточной мощности и вы желаете её задействовать, при этом сэкономив до 40% на покупке нового компьютера, эта статья Ð для Вас. В данной статье рассматривается возможность организации на одном компьютере сразу несколь- ких рабочих мест. В разных источниках этот способ может называться Multiterminal, Multistation, Multihead, Multiseat и т. д. Мы же для простоты будем называть его последним термином - «муль- тисит». В системах Линукс есть несколько вариантов реализации мультисита. Самый популярный из них Ð за счёт X-сервера Xorg с драйверами evdev (это единственный вариант, который реализуется по принципу «1видеокарта = 1 монитор», все остальные рассмотренные ниже варианты позволяют реа- лизовать мультисит даже на одной видеокарте с двумя выходами). Принцип действия заключается в том, что на каждой видеокарте стартует отдельный сеанс X- сервера. Этот вариант наиболее надёжен, стабилен, плюс ещё на каждом месте работает 3D- ускорение, следовательно на одном компьютере можно не только вдвоём работать, но и играть, всё зависит от мощности «железа». Раньше этот вариант был самым дорогим в плане стоимости комплектующих, нужно было покупать материнские платы с двумя разъёмами PCI-E и две видео- карты. Реализовать его на «офисных» материнских платах было очень тяжело, поскольку встроен- ная видеокарта отключалась при установке внешней, старые видеокарты PCI найти практически не- возможно, а новые (серии Matrox G450/550 и Nvidia Quadro NVS280) стоят очень дорого. Сейчас же недорогие материнские платы сделаны таким образом, что при установке внешней видеокарты встроенная продолжает работать (если только её не отключить вручную в BIOS©е). В интернете есть очень много различных описаний мультисита на X/Xorg©е, самый популярный пример для си- стемы Debian можно посмотреть здесь: http://www.automation.dn.ua/linux/3d-multiseat.html Очень оригинальна идея с использованием MPX (использование двух клавиатур и двух мышек на одном рабочем столе), это не мультисит, но попробовать стоит: http://wearables.unisa.edu.au/mpx/?q=main_ru Второй по популярности вариант Ð использование вложенного X-сервера Xephyr. Этот вариант в отличии от предыдущего позволяет реализовать мультисит на одной видеокарте с двумя видеовы- ходами. Принцип действия таков: сначала стартует основной X-сервер, а поверх него стартуют несколько сеансов Xephyr-сервера. Этот вариант считается бюджетным, поскольку позволяет реа- лизовать большее количество мест, но у него есть довольно много недостатков. Например, не рабо- тает 3D-ускорение (хотя в последних версиях появилась поддержка OpenGL), меньшая стабиль- ность, меньшая скорость работы (поскольку Xephyr сам по себе довольно «медлительный»), нет поддержки изменения разрешения экрана «на лету». Но работы на этим проектом продолжаются, недостатки устраняются, появляются новые возможности. Вместе с проектом Xephyr развивается ещё один Ð Xnest, который не пользуется популярностью из-за ещё большего количества недостатков. Поэтому и я вам применять на практике его не реко- мендую. Третий вариант ± использование программы Multiplier от компании Userful. Эта утилита являет- ся платной, её стоимость составляет 99$ за каждое рабочее место (для учебных учреждений - 69$). Вы также получите USB-хаб для подключения клавиатуры, мыши и наушников. Однако на 2 рабо- чих места программу можно использовать бесплатно в домашних условиях, но её всё равно необхо- димо регистрировать через интернет для получения ключа. Если вы её не зарегистрируете, то про- грамма через произвольные промежутки времени будет отключать все мониторы на 20 секунд и по- казывать окно с предупреждением. Ключ на 2 монитора генерируется в зависимости от адреса элек- тронной почты и IP-адреса, с которого был отправлен запрос на получение ключа. Установить программу можно либо прямо из репозиториев Ubuntu, либо скачав установочный пакет с официального сайта: http://userful.com/support/all-downloads/umx-download Принцип действия программы заключается в следующем: запускается пропатченный Xorg, кото- рый затем запускает эмуляцию виртуального рабочего стола для каждого пользователя, а модифи- цированный HAL привязывает к каждому пользователю нужное оборудование с нужными правами. В итоге получается выигрыш в быстродействии, но про 3D-эффекты можно забыть, поскольку раз- работчики их выключают. Естественно, все патчи являются закрытыми. Небольшая рекомендация: если после установки этой программы не стартуют ситы ни на одном месте, то нужно перезагрузить систему в безопасный режим и подредактировать файл /etc/X11/userful.Mxorg.conf: в секции [Device] необходимо прописать для всех мониторов вместо "CRT, CRT" параметр "CRT, DFP", чтобы активировать выход DVI. Для некоторых видеокарт (в частности класса LE - Lite Edition) также необходимо отключить турбо-кэш. Для данной программы к сожалению кейгена или кряка пока что не существует. Однако есть не- большой трюк, который позволяет получить бесплатно любое количество рабочих мест, чтобы при этом мониторы не отключались. Во время загрузки система проверяет ключ, и если он триальный, то включаются все мониторы, но в произвольные моменты времени они будут блокироваться на 10 - 20 секунд. Если же вы получили бесплатный ключ на 2 рабочих места, то будут работать только 2 монитора, все остальные больше загружаться не будут. А вот если системе дать загрузиться с три- альным ключом, а после загрузки в каталог /etc/X11/ закинуть любой рабочий ключ (пусть даже на 2 монитора), то мониторы блокироваться не будут. За разъяснения отдельная благодарность LuckAs©у из города Хмельницкий. Есть также проект OpenUserful с открытыми исходниками, но он уже несколько лет не развива- ется. Суть его сводится к накладыванию патчей на исходники некоторых элементов системы. Если кому будет интересно покопаться, вот ссылки: http://openuserful.sourceforge.net/wiki/index.php/Main_Page http://sourceforge.net/project/showfiles.php?group_id=153260 Есть ещё один вариант реализации мультсита Ð при помощи XGL-сервера. Этот вариант также позволяет реализовать мультисит на одной видеокарте, при этом полностью поддерживает 3D, по сравнению с Xephyr он более стабилен и обладает меньшим количеством недостатков. XGL изна- чально не поддерживает драйверы клавиатуры/мыши evdev, и чтобы не накладывать патчи на исход- ники, бельгийским программистом Jori Liesenborgs была написана программа Xevdevserver, которая позволяет привязать каждую пару клавиатуры/мыши к конкретному рабочему месту. Кстати, эта программа очень хорошо подходит и для мультиситов на основе Xephyr и Xorg, и если у вас возни- кают проблемы с драйверами evdev (всяко в жизни бывает), рекомендую применить Xevdevserver. К сожалению проект XGL уже давно заброшен, пакеты от старых дистрибутивов в новых систе- мах работают некорректно, а собрать пакет под последние версии Линуксов практически невоз- можно, поскольку нужно «допиливать» исходники. Однако на старых версиях дистрибутивов (Ubuntu 8.04, Fedora8, Debian4 и т.д.) его можно настроить. Оригинал статьи по настройке XGL, а также необходимые файлы, можно найти на сайте: http://research.edm.uhasselt.be/~jori/page/index.php?n=Misc.DualSeatX Вариант конфигурирования "мультисит-на-лету" под Ubuntu: http://ubuntuforums.org/showthread.php?t=707796 На смену XGL-серверу приходит новый метод, который позволяет запускать на одной видеокар- те два сеанса Xorg, каждый на своём видеовыходе. Для реализации этого метода необходимо нало- жить патч на ядро и libdrm, который позволяет для каждого выхода карты создать свое dri устрой- ство в /dev/dri/. Каждый X-сервер запускается с указанием переменной, которая используется в libdrm: export DRM_DEVICE_PATH=/dev/dri/renderD128 startx -- /usr/bin/Xorg :0 -layout seat0 -retro -novtswitch Второй X-сервер соответственно запускается с параметром renderD129, ключом -layout seat1 и дополнительным ключом -sharevts. Адрес статьи: http://airlied.livejournal.com/72187.html Нужные файлы можно скачать отсюда: http://people.freedesktop.org/~airlied/multiseat/ После наложения патчей необходимо создать файл xorg.conf аналогично мультиситу на Xorg, но в секциях для видеокарт должна быть прописана одна карта, только разные видеовыходы. У этого способа есть некоторые ограничения: нужно использовать только видеокарты ATI со свободным драйвером "radeon" (с другими видеокартами автор метода не экспериментировал), и пока что рабочие места надо загружать вручную (ещё не нашли способ, как менеджеру загрузки GDM или KDM передать параметр DRM_DEVICE_PATH). Общие принципы конфигурирования системы во всех случаях практически одинаковы. Настрой- ка мультисита осуществляется в несколько шагов: 1) установка драйверов для видеокарт 2) выполнение важных системных настроек 2) конфигурирование файла xorg.conf 3) установка необходимых программ и создание скриптов 4) настройка менеджера загрузки (GDM, KDM) 5) «допиливание» системы В качестве экспериментов я использовал дистрибутив Ubuntu, поэтому все пути к конфигураци- онным файлам указаны применительно к этой системе, но эта статья может быть применена и к другим системам. БЛАГОДАРНОСТИ Хочу поблагодарить следующих людей за помощь в подготовке статьи: 1) Андрея Darion ©а Ð за консультации и