Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
fullcircle:25:ускорение_игр_под_х [2010/05/06 19:47] |
fullcircle:25:ускорение_игр_под_х [2011/11/27 13:51] (текущий) [Ссылки] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== HOW-TO Ускорение игр под X ====== | + | ====== HOW-TO: Ускорение игр под X ====== |
| <style right> | <style right> | ||
| Строка 12: | Строка 12: | ||
| <code> | <code> | ||
| sudo nano /etc/X11/Xwrapper.config | sudo nano /etc/X11/Xwrapper.config | ||
| - | |||
| - | nano – это простой текстовый редактор, работающий в консоли. | ||
| </code> | </code> | ||
| + | **nano** – это простой текстовый редактор, работающий в консоли. | ||
| + | |||
| Чтобы узнать больше о **/etc/X11/Xwrapper.config**, откройте консоль и выполните: | Чтобы узнать больше о **/etc/X11/Xwrapper.config**, откройте консоль и выполните: | ||
| <code> | <code> | ||
| man Xwrapper.config | man Xwrapper.config | ||
| - | <code> | + | </code> |
| + | |||
| + | Открыв **Xwrapper.config**, найдите строку **«allowed_users=console»** и измените ее на **«allowed_users=anybody»**. Чтобы сохранить изменения, нажмите **Ctrl+X**; nano спросит, действительно ли вы хотите сохранить внесённые изменения, нажмите Y, далее редактор выведет имя файла, в который будет сохранён текст, в этой строке просто нажмите **Enter** – мы же хотим заменить старый файл. | ||
| + | |||
| + | Теперь мы можем запускать дополнительные Х-серверы из-под уже работающего X-сервера, но для этого не помешает перезапустить уже запущенный сервер. Я не уверен, что этот шаг необходим, но он не повредит. После перезапуска сервера настроим игры для запуска в отдельном сеансе. Сначала убедитесь, что игры запускаются не в «виртуальном рабочем столе»: запустите winecfg или откройте | ||
| - | Открыв Xwrapper.config, найдите строку «allowed_users=console» и измените ее на «allowed_users=anybody». Чтобы сохранить изменения, нажмите Ctrl+X; nano спросит, действительно ли вы хотите сохранить внесённые изменения, нажмите Y, далее редактор выведет имя файла, в который будет сохранён текст, в этой строке просто нажмите Enter – мы же хотим заменить старый файл. | + | **Программы — Wine — Configure Wine.** |
| - | Теперь мы можем запускать дополнительные Х-серверы из-под уже работающего X-сервера, но для этого не помешает перезапустить уже запущенный сервер. Я не уверен, что этот шаг необходим, но он не повредит. После перезапуска сервера настроим игры для запуска в отдельном сеансе. Сначала убедитесь, что игры запускаются не в «виртуальном рабочем столе»: запустите winecfg или откройте Программы — Wine — Configure Wine. Если на закладке «Приложения» упомянут EXE-файл вашей игры, щелкните по нему и откройте закладку «Графика», там не должно быть галочки в пункте «Эмулировать виртуальный рабочий стол». Если она там есть, то игра будет запущена в верхнем правом углу монитора, а это совсем не то, что нам нужно. | + | Если на закладке «Приложения» упомянут **EXE-файл** вашей игры, щелкните по нему и откройте закладку «Графика», там не должно быть галочки в пункте «Эмулировать виртуальный рабочий стол». Если она там есть, то игра будет запущена в верхнем правом углу монитора, а это совсем не то, что нам нужно. |
| После этого я написал несколько сценариев для запуска нужных мне игр в отдельном сеансе. То есть я могу запустить их как в основном, так и в отдельном Х-сервере. Если вы не знаете, как писать сценарии оболочки, вот пример (для игры StarCraft и пользователя cherva. Не забудьте исправить параметры под свою обстановку): | После этого я написал несколько сценариев для запуска нужных мне игр в отдельном сеансе. То есть я могу запустить их как в основном, так и в отдельном Х-сервере. Если вы не знаете, как писать сценарии оболочки, вот пример (для игры StarCraft и пользователя cherva. Не забудьте исправить параметры под свою обстановку): | ||
| Откройте текстовый редактор, например GEdit для GNOME или KWrite для KDE, и наберите: | Откройте текстовый редактор, например GEdit для GNOME или KWrite для KDE, и наберите: | ||
| + | <code> | ||
| #!/bin/bash | #!/bin/bash | ||
| - | X :2 -ac -terminate -config only_one_monitor.conf & | + | X :2 -ac -terminate -config only_one_monitor.conf & sleep 2 |
| - | + | ||
| - | sleep 2 | + | |
| DISPLAY=:2 nice -20 env WINEPREFIX="/home/cherva/.wine" wine "C:\Games\Starcraft\Starcraft.exe" | DISPLAY=:2 nice -20 env WINEPREFIX="/home/cherva/.wine" wine "C:\Games\Starcraft\Starcraft.exe" | ||
| + | </code> | ||
| + | **Х** — это команда запуска нового сеанса Х-сервера. | ||
| - | Х — это команда запуска нового сеанса Х-сервера. | + | **-ac** — запрещает контроль доступа на уровне узлов, разрешая доступ с любого узла и позволяя любому узлу изменять список управления доступом. Используйте очень осторожно! Этот параметр обычно используется для проведения дистанционного тестирования. |
| - | -ac — запрещает контроль доступа на уровне узлов, разрешая доступ с любого узла и позволяя любому узлу изменять список управления доступом. Используйте очень осторожно! Этот параметр обычно используется для проведения дистанционного тестирования. | + | **-terminate** — заставляет сервер отключиться после завершения запущенной в нем программы. |
| - | -terminate — заставляет сервер отключиться после завершения запущенной в нем программы. | + | **-config** — использовать отдельный файл конфигурации для Х-сервера (помните проблемы с прокруткой в StarCraft?). Файл only_one_monitor.conf — по сути тот же самый /etc/X11/xorg.conf, из которого удалены настройки для второго монитора, так что мышка, подведённая к краю монитора, останется в пределах этого монитора, и игровое поле StarCraft будет прокручиваться. Остальные подробности можно прочесть по адресу: http://linux.die.net/man/1/xserver |
| - | + | ||
| - | -config — использовать отдельный файл конфигурации для Х-сервера (помните проблемы с прокруткой в StarCraft?). Файл only_one_monitor.conf — по сути тот же самый /etc/X11/xorg.conf, из которого удалены настройки для второго монитора, так что мышка, подведённая к краю монитора, останется в пределах этого монитора, и игровое поле StarCraft будет прокручиваться. Остальные подробности можно прочесть по адресу: http://linux.die.net/man/1/xserver | + | |
| Далее команда sleep 2 задерживает выполнение сценария на 2 секунды, чтобы дать новому Х-серверу достаточно времени для запуска. | Далее команда sleep 2 задерживает выполнение сценария на 2 секунды, чтобы дать новому Х-серверу достаточно времени для запуска. | ||
| - | DISPLAY=:2 — запустить следующую команду в нашем новом Х-сервере, а не в основном. | + | **DISPLAY=:2** — запустить следующую команду в нашем новом Х-сервере, а не в основном. |
| - | nice -20 — запустить процесс с наивысшим приоритетом (для большей производительности), далее указан запускаемый процесс: обычная команда, которую Wine формирует при создании ярлыка для программы в меню или на рабочем столе. | + | **nice -20** — запустить процесс с наивысшим приоритетом (для большей производительности), далее указан запускаемый процесс: обычная команда, которую Wine формирует при создании ярлыка для программы в меню или на рабочем столе. |
| - | env WINEPREFIX — каталог настроек wine. | + | **env WINEPREFIX** — каталог настроек wine. |
| - | wine — собственно команда запуска эмулятора Wine. "C:\Games\Starcraft\Starcraft.exe" — запускаемая игра. | + | **wine** — собственно команда запуска эмулятора Wine. "C:\Games\Starcraft\Starcraft.exe" — запускаемая игра. |
| - | Набрав сценарий, сохраните его в какой-нибудь каталог. Затем откройте этот каталог в файловом менеджере (Nautilus или еще каком). Найдите сохранённый файл: нам надо сделать его исполняемым, для чего щёлкните по нему правой кнопкой мышки и выберите «Свойства». Перейдите на вкладку «Права» и поставьте галочку в строке «Позволять выполнение файла как программы». Закройте окно «Свойства» и откройте сценарий двойным щелчком. На Ubuntu вам будет предложено выбрать желаемое действие: «Запустить в терминале / Показать / Отменить / Запустить». Выбирайте «Запустить» и наслаждайтесь FPS >20, прокруткой в стратегиях и отсутствием проблем с переключением между окнами. Если вам понадобится вернуться в изначальный Х-сервер, нажмите Ctrl+Alt+F7, а оттуда в игру — Ctrl+Alt+F9 (или иногда — Ctrl+Alt+F8). Имейте в виду: я не бог весть какой знаток Linux, так что могут быть и другие способы сделать то же самое, но у меня и так работает, чему я очень рад. | + | Набрав сценарий, сохраните его в какой-нибудь каталог. Затем откройте этот каталог в файловом менеджере (Nautilus или еще каком). Найдите сохранённый файл: нам надо сделать его исполняемым, для чего щёлкните по нему правой кнопкой мышки и выберите «Свойства». Перейдите на вкладку «Права» и поставьте галочку в строке «Позволять выполнение файла как программы». Закройте окно «Свойства» и откройте сценарий двойным щелчком. На Ubuntu вам будет предложено выбрать желаемое действие: |
| + | |||
| + | **«Запустить в терминале / Показать / Отменить / Запустить»**. | ||
| + | |||
| + | Выбирайте «Запустить» и наслаждайтесь FPS >20, прокруткой в стратегиях и отсутствием проблем с переключением между окнами. Если вам понадобится вернуться в изначальный Х-сервер, нажмите **Ctrl+Alt+F7**, а оттуда в игру — **Ctrl+Alt+F9** (или иногда — **Ctrl+Alt+F8**). Имейте в виду: я не бог весть какой знаток Linux, так что могут быть и другие способы сделать то же самое, но у меня и так работает, чему я очень рад. | ||
| --------------------------------------- | --------------------------------------- | ||
| + | ===== Ссылки ===== | ||
| + | * [[http://help.ubuntu.ru/wiki/запуск_игры_в_отдельном_x-сервере|Запуск игры в отдельном X-сервере]] | ||
| + | * [[http://kubuntu.ru/node/7095|Полезные советы по данному вопросу на kubuntu.ru]] | ||
| + | * [[https://wiki.archlinux.org/index.php/Запуск_игр_и_других_приложений_в_отдельном_X-сервере|Запуск игр и других приложений в отдельном X-сервере]] | ||
| <style center> | <style center> | ||
| Строка 63: | Строка 73: | ||
| </style> | </style> | ||
| - | {{tag>Система Администрирование Full_Circle BASH Скрипт Резервирование}} | + | {{tag>Игры howto Full_Circle}} |