Как заставить контроллер работать на втором x-сервере


1

Я использую Linux Mint 17 с Cinnamon в качестве основного WM.

Я хочу запустить Steam на отдельном x-сервере для повышения производительности в полноэкранном режиме, а также потому, что в Cinnamon функция unredirect не работает должным образом, что приводит к разрывам и не приводит к реальному повышению производительности.

Я могу запустить x-сервер: 1 на vt9 с fluxbox в качестве оконного менеджера, но я не могу понять, как заставить мой контроллер работать в играх на втором x-сервере. До сих пор я тестировал Steam Big Picture, Shovel Knight, Rogue Legacy и Higan, и мой контроллер не распознается ни на одном из них.

Я вижу джойстик в / dev / input как на моем главном x-сервере, так и на дополнительном, контроллер виден в jstest-gtk, а xinput сообщает об одном и том же на обоих x-серверах (без указания джойстиков)

Это не просто глобальная проблема с джойстиком, потому что мой контроллер работает на основном x-сервере с моим обычным логином.

Я использую контроллер XBox360. Я попытался установить xboxdrv, и это не имеет значения.

Что мне не хватает? Есть идеи?


Что вы подразумеваете под unredirect?
MariusMatutiae

unredirect - временное отключение композиции, когда полноэкранное приложение находится в фокусе. По какой-то причине, способ, которым это реализовано в Cinnamon, вызывает разрывы - очень последовательно размещенные разрывы, что наводит на мысль о некоторой задержке. Отключение ненаправленной системы устраняет эту проблему, но приводит к снижению производительности. Если я запускаю Steam Big Picture с экрана входа в систему (используя сторонний пакет), эта проблема полностью устранена. Я пытаюсь получить лучшее из обоих миров: производительность входа в систему steam big picture без необходимости выходить из системы и переключаться между сеансами.
Beefster

Ответы:


1

(Я также использую Mint 17 с Cinnamon в качестве основного рабочего стола)

Вы можете рассмотреть возможность использования Xephyr, который может создать вложенный сервер xserver внутри вашего рабочего стола Cinnamon. Я могу использовать свой геймпад (Thrustmaster PS3-type) на сервере Xephyr. У меня не установлен Steam, но я проверил это с другой игрой (alex4). Я столкнулся с проблемой разветвления Xephyr (которого не было в старых версиях), но смог обойти это, запустив его из окна xterm. Глядя на то, что я сделал, может помочь вам начать:

sudo apt-get install xterm xserver-xephyr alex4

Затем из терминала:

xterm -e Xephyr :1 -ac -screen 640x480 &

«xterm -e» вызывает запуск xterm и выполнение следующей команды.

«Xephyr: 1» означает, что новый дисплей будет: 1. Выберите что-то другое, если у вас есть несколько мониторов. Это должно быть что-то, чего еще не существует. (Если у вас один монитор, отображается: 0, отображается секунда: 1 и т. Д.)

«Xephyr -ac» означает отключение контроля доступа, что, как я считаю, означает, что новый xserver будет иметь полный доступ к системе.

«Xephyr -screen widthxheight» - это разрешение (оно также может принимать третье число для битовой глубины, которое я использовал, чтобы получить старые программы Windows, для которых требуется 256-цветный режим для работы через Wine).

"& Амп;" вызывает разветвление xterm, позволяя вам ввести другую команду в терминале.

Далее в терминале:

DISPLAY=:1 alex4

Установите системную переменную DISPLAY на любой экран, который вы создали с помощью Xephyr, затем запустите нужную программу.

Если вы пишете сценарий оболочки для запуска этих команд, поместите его в спящий режим, чтобы у Xephyr было достаточно времени для запуска нового дисплея, или ваша попытка запустить программу не удастся из-за ошибки сегментации.

Xephyr имеет флаг «-fullscreen», который вы можете использовать, но вам нужно, чтобы разрешение вашего рабочего стола Cinnamon соответствовало разрешению экрана вашего сервера Xephyr, чтобы он работал должным образом. Используйте для этого xrandr и запомните свое старое разрешение, потому что позже вам придется его вернуть. Например, в моем случае:

xrandr -s 640x480 && xterm -e Xephyr :1 -ac -screen 640x480 -fullscreen & sleep 3 && DISPLAY=:1 alex4 && killall xterm && xrandr -s 1920x1080 && killall Xephyr

(Если вы не знаете, символ & amp; & amp; означает, что вы ожидаете завершения первого процесса, а затем запускаете следующий. Один & amp; символ означает, что первый процесс завершается и продолжается до следующего.)

Надеюсь, это поможет вам. (Введите «Xephyr -help» для получения полного списка параметров. К сожалению, справочная страница редкая.)


Ну, это работает ... Вроде (это очень медленно сейчас). Как мне заставить Xephyr работать в отдельном виртуальном компьютере, чтобы я мог переключаться с помощью Ctrl + Alt + F7 / 8/9?
Beefster

Ах, я думаю, я знаю, в чем проблема. Сегодня я немного читал, и ванильный Xephyr поддерживает только программный рендеринг OpenGL. Существует разветвленная версия, которая поддерживает аппаратное ускорение 3D-рендеринга. Вам нужно будет скомпилировать его из источника, который доступен здесь: gitorious.org/xephyr-with-gl-acceleration/... Что касается переключения VT, Xephyr - это специально вложенное решение xserver, поэтому оно должно быть внутри другого экземпляра X.
blendenzo

Ах. Понимаю. Тогда это не совсем то, что я хочу. Спасибо за попытку, хотя.
Beefster
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.