Главная Мой профиль Регистрация Выход Вход
Приветствую Вас Гость | RSS
Суббота
27.04.2024
02:45
Установка Игр в Ubuntu
Темы
...
 
Форма входа
Главная » Статьи » Wine на практике

Запуск WIne-приложений в отдельном X-сервере
monitor

В принципе по данной теме в интернете информации хватает, но раз уж сайт посвящен Wine было бы не простительным обойти эту тему стороной, поэтому хочу поделиться своим методом по данной теме. Статью оформляю на ПК с Ubuntu 11.10 и Wine 1.3.37 — на ней же буду экспериментировать.
  Что такое X-сервер? X-сервер, а точнее 'X.Org X Server' это свободная открытая реализация оконной системы X11, обеспечивающая интерфейс между устройствами вашего ПК и нужными вам программами, работающих в графическом режиме. Вы можете: управлять его запуском (запускать дополнительные); останавливать (система при этом остается работоспособной); отображать на другой системе ('X.Org X Server' является полностью сетевым).

  Для начала определимся, для чего нужен запуск Wine-приложений в отдельном X-сервере:
1 Не все приложения, запущенные из под Wine в полноэкранном режиме, можно «безболезненно» свернуть или перейти из под них на другой рабочий стол (что иногда бывает необходимо);
2 При закрытии полноэкранных Wine-приложений иногда «ломается» (не корректно восстанавливается) родное разрешение вашего рабочего стола(монитора), при чем иногда устанавливается такое низкое разрешение, что не возможно даже открыть настройки графического адаптера (настолько все растянуто);
3 Случается что, "зависшее" в полноэкранном режиме Wine-приложение, не дает вернуться на рабочий стол и приходится переходить в консоль.
  От этих, основных проблем мы и избавимся, открывая наше Wine-приложение (игру) в отдельном X-сервере. Существует также мнение, что такой метод запуска позволяет ускорить производительность игр, хотя на мой взгляд это возможно только в случае отключения основного X-сервера.

 Посмотрим как перенаправить работу Wine-игры на отдельный X-сервер.
Первое что вы должны учесть - ваше приложение должно открываться без проблем в полноэкранном режиме и без эмуляции рабочего стола, это означает что в случае если ваша игра работает только в оконном режиме, или с настройкой Wine в режиме эмуляции рабочего стола, то запускать такую игру в отдельном X-сервере нельзя. Также некоторые типы видеокарт могут не поддерживать DRI ( Direct Rendering Infrastructure -аппаратное ускорение Mesa или OpenLG) на второй X-сервер (например этим грешат некоторые изделия Intel).

Второе что нужно сделать, это разрешить открывать дополнительные X-сервера от любого пользователя: наберите в терминале команду
  sudo dpkg-reconfigure x11-common
reconfigure
после ввода пароля высветится окно с предупреждением
x11
нажимаем 'Enter' и меняем пользователей, которым разрешено запускать X-сервер, на "Кто угодно".
x11_common

Третье — внесем себя (пользователя) в группу аудио (без этого действия звук не будет воспроизводиться): выполняем в терминале команду
  sudo gpasswd -a username audio
username поменяйте на свой профиль!

Четвертое — набираем нашу команду для запуска приложения.
В качестве примера и для удобства рассмотрения возьмем вымышленную игру GAME установленную в директорию /home/UserName/.wine/drive_c/Program Files/GAME/ и запускающим фалом game.exe (не волнуйтесь данный метод был проверен на реальных играх).
Создаем в удобном для вас месте — хоть в папке с вашей игрой - текстовый файл, переименовываем его в game.sh (вместо game можете поставить любое имя, расширение .sh оставьте как есть). Откройте этот файл в текстовом редакторе и впишите следующий скрипт:
#!/bin/bash
cd /home/UserName/.wine/drive_c/Program\ Files/GAME/
WINEDEBUG=-all xinit /usr/bin/wine game.exe -- :1

скрипт
Где:
 #!/bin/bach это объявление вашего командного итерпретатора (в Ubuntu по умолчанию — Bash);
cd - команда перехода в директорию;
/home/UserName/.wine/drive_c/Program\ Files/GAME/-полный путь до файла запуска игры game.exe (вам естественно нужно набрать свой!);
WINEDEBUG=-all запрещает выводить на терминал лишнюю информацию;
xinit – :1 запускает новый X-сервер 1 (основной X-сервер по умолчанию считается нулевым);
/usr/bin/wine game.exe это команда запуска вашей игры из под Wine (вместо game.exe поставите имя вашего файла!).
  Закройте этот файл и сохраните. Далее щелкните правой кнопкой мыши на этом файле и выберете пункт «Свойства», на вкладке «Права» поставьте галочку у пункта «Разрешить исполнение файла как программы».
права
Теперь по двойному щелчку на нашем файле выскочит окно «Запустить файл 'game.exe' или посмотреть его содержимое?»
запуск
 - нажимаете «Запустить в терминале» и если ни где не ошиблись игра запустится в новом X-сервере. Для перехода из игры на рабочий стол нажимаете «Ctrl+Alt+F7», обратно в игру «Ctrl+Alt+F8». После выхода (закрытия) из игры вы попадете на ваш рабочий стол, с родным разрешением экрана.
 Важно! При запуске приложений в отдельном X-сервере - эмуляция рабочего стола, в настройках Wine, должна быть выключена.
Категория: Wine на практике | Добавил: Soliton (14.02.2012)
Просмотров: 27473 | Комментарии: 4 | Рейтинг: 0.0/0
Всего комментариев: 4
4 Folko85  
Полезная статья очень. Спасибо большое.

3 Ravenso  
Сделай пожалуйста статью как запускать игры на двух мониторах с виртуальным столом и без него.

1 rainbow96  
А я вот такой скрипт использую

#!/bin/bash
cd "/media/drive_d/Games/AlanWake"
X :2 -ac -terminate & sleep 2
DISPLAY=:2 nice -20 env WINEPREFIX="/home/rain/.wine" wine AlanWake.exe -noblur -novsync

2 Soliton  
Натолкнули меня на написание статейки Повышение приоритета Wine biggrin

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Программы
 
 
 
Статистика
Яндекс.Метрика

Рейтинг@Mail.ru
Мои баннеры
 


Dmoz
Категории раздела
Wine на практике [27]
Ubuntu: Записная книжка [14]
Игры в Ubuntu [11]
Игры установленные в Ubuntu с помощью приложения Wine.

 Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz