linux-gaming.rst 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030
  1. .. ARU (c) 2018 - 2024, Pavel Priluckiy, Vasiliy Stelmachenok and contributors
  2. ARU is licensed under a
  3. Creative Commons Attribution-ShareAlike 4.0 International License.
  4. You should have received a copy of the license along with this
  5. work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
  6. .. _linux-gaming:
  7. ********************
  8. Wine / Linux Gaming
  9. ********************
  10. .. index:: wine, wine-builds, gaming
  11. .. _main-components:
  12. =========================
  13. Основные составляющие
  14. =========================
  15. Переходя к запуску Windows-игр на Linux-системах, сто́ит иметь в виду, что
  16. никаких эмуляторов Windows на Linux не существует, и весь запуск
  17. осуществляется с помощью открытой реализации Windows API — Wine, а также
  18. средств ретрансляции (перевода) команд DirectX в доступные графические API на Linux
  19. (Vulkan, OpenGL) с помощью DXVK или иных ретранслятора кода.
  20. .. index:: about, wine, gaming
  21. .. _about-wine:
  22. ----------------------
  23. Что такое Wine?
  24. ----------------------
  25. Wine - слой совместимости для запуска Windows-приложений (в том числе игр) из
  26. под Linux (Unix-подобных систем). Благодаря нему вы по факту сможете поиграть
  27. в большинство игр из вашей библиотеки Steam/GOG/Epic Games Store. Исключением
  28. являются игры с встроенными анти-чит системами, хотя благодаря усилиям Valve,
  29. на текущий момент под Linux есть официальная поддержка как минимум двух
  30. анти-чит систем: Easy Anti Cheat (EAC) и Battle Eye. Несмотря на это, чтобы
  31. игра с использованием данных античитов заработала нужно чтобы разработчики
  32. включили специальный слой совместимости между Proton и игрой, что не всегда
  33. приветствуется по тем или иным причинам, и даже те игры, которые потенциально
  34. могут отлично работать, все ещё не имеют официальной поддержки Proton со
  35. стороны разработчиков. Также следует иметь ввиду, что для запуска и
  36. обеспечения работоспособности некоторых программ или игр приходится немного
  37. повозиться с настройкой, однако сама возможность запуска уже является
  38. незаменимой для Linux пользователей, в частности геймеров.
  39. .. index:: wine-builds, gaming
  40. .. _wine-builds:
  41. -------------
  42. Сборки Wine
  43. -------------
  44. Существуют различные сборки Wine. Подобный зоопарк появился ввиду накопления
  45. большого количества различных патчей (сторонних изменений) которые по какой-то
  46. причине не могут быть приняты в обычный Wine. Кроме того, стоит понимать что,
  47. как и в случае с ядрами, обычный Wine это прежде всего свободная реализация
  48. Windows API, которая подразумевает запуск любых Windows приложений. При этом
  49. он не заточен конкретно под игры или любой другой софт. Именно поэтому в том
  50. числе и появились такие вещи как Proton от компании Valve, *являющимся по сути
  51. тем же Wine*, но с упором именно на игровую составляющую, исправляющий многие
  52. проблемы обычного Wine связанные с играми.
  53. На текущий момент есть две официальные "сборки" Wine, которые поддерживаются
  54. непосредственно разработчиками:
  55. * wine - обычная, стабильная версия, содержащая только проверенные изменения
  56. от разработчиков, и которая условно универсальна для запуска любых
  57. приложений.
  58. * wine-staging - версия, содержащая те изменения, которые пока не могут
  59. попасть в обычную по тем или иным причинам, но которые могут помочь
  60. исправить определенные баги и улучшить работу конкретных программ и частей
  61. Wine.
  62. Существуют также много альтернативных сборок основанных на wine-staging с
  63. упором именно на игры, о которых написано далее.
  64. .. index:: installation, wine, wine-builds, wine-pure, native-compilation, wow64
  65. .. _wine-pure-build:
  66. -------------------
  67. Установка wine-pure
  68. -------------------
  69. Проблема обычных версий Wine в том, что они заточены в первую очередь на
  70. предоставление "правильной" и "эталонной" реализации Windows API в Unix.
  71. Задачей проекта Wine никогда не было реализовать полноценный запуск всех
  72. Windows игр под Linux в ущерб технической каноничности реализуемого API,
  73. поэтому когда в Wine отправляются изменения, которые не полностью
  74. удовлетворяют подобным требованиям, но при этом помогающие решить проблему
  75. запуска или улучшить работоспособность той или иной игры, то они как правило
  76. сразу не принимаются, а либо оседают в ``wine-staging``, либо в сторонних
  77. сборках как версия Wine используемая Proton.
  78. `wine-pure <https://github.com/ventureoo/PKGBUILDs/tree/main/wine-pure>`_ -
  79. сборка Wine, сделанная с целью упростить процесс сборки и установки Wine, в
  80. отличии от Wine-TKG не требует предварительной настройки, содержит минимальный
  81. набор патчей необходимый для комфортной игры. Ключевые особенности:
  82. - По умолчанию использует WoW64, транслятор, который осуществляет перевод
  83. 32-битных библиотечных вызовов в 64-разрядные, тем самым не требуя установки
  84. большого количества 32-битных зависимостей, сохраняя при этом возможность
  85. полноценного запуска 32-битных Windows приложений.
  86. - Добавлен патч для поддержки модуля NTSync, позволяющего получить более
  87. точное поведение синхронизации потоков как в Windows в отличии от Esync и
  88. Fsync, а также повысить производительность [#]_.
  89. - Содержит все патчи, применяемые в wine-staigng, кроме Esync из-за наличия
  90. NTSync.
  91. - По умолчанию активирована нативная поддержка Wayland. Это позволяет получить
  92. хороший уровень производительности, а также заметно более низкую задержку и
  93. отклик, чем при использовании Xwayland.
  94. - Установлены флаги ``-O3`` и ``-march=native`` для нативной компиляции под
  95. ваш процессор.
  96. - Удалены лишние и редко используемые компоненты, такие как поддержка Cups,
  97. SANE, V4L, pcap, xxf86vm, xinerama.
  98. - Включена поддержка альтернативного бэкенда для проигрывания видео на базе
  99. набора библиотек FFmpeg.
  100. **Установка**
  101. Сборка и установка пакета выполняется как и всегда тремя командами::
  102. git clone https://github.com/ventureoo/PKGBUILDs
  103. cd PKGBUILDs/wine-pure
  104. makepkg -sricCf
  105. Обратите внимание, что на данный момент для использования NTSync вам нужно
  106. установить из AUR пакет ``ntsync-dkms``, который содержит модуль ядра
  107. ``ntsync``, либо же ядро в котором этот модуль уже есть, например
  108. ``linux-zen`` или ``linux-cachyos``, иначе будет использоваться встроенная
  109. синхронизация wineserver, которая отличается низкой производительностью в
  110. многопоточных приложениях Windows запускаемых через Wine.
  111. .. [#] https://lore.kernel.org/lkml/20240131021356.10322-3-zfigura@codeweavers.com/T/
  112. .. index:: installation, proton, gaming, native-compilation
  113. .. _proton-ge-custom:
  114. ^^^^^^^^^^^^^^^^^^
  115. Proton-GE-Custom
  116. ^^^^^^^^^^^^^^^^^^
  117. Proton-GE-Custom это форк проекта Proton для запуска Windows-игр с
  118. дополнительными патчами и оптимизациями не вошедшими в основную ветку Proton,
  119. а также улучшение совместимости с некоторыми играми (например, Warframe).
  120. Позволяет играть во многие проекты которые не заводятся с обычным Wine или
  121. Proton.
  122. **I. Установка (бинарная версия):**::
  123. git clone https://aur.archlinux.org/proton-ge-custom-bin
  124. cd proton-ge-custom-bin
  125. makepkg -sric
  126. Дабы использовать Proton-GE в качестве альтернативы обычному Proton, после
  127. установки Proton-GE-Custom вам нужно перезапустить Steam и зайти в *Свойства*
  128. нужной вам игры, прожать в: *Совместность -> Принудительно использовать
  129. определенный инструмент совместности Steam Play -> Proton-9.XX-GE-1*. Готово,
  130. теперь можно запустить игру.
  131. .. index:: installation, wine, about, prefixes
  132. .. _wine-usage:
  133. --------------------
  134. Использование Wine
  135. --------------------
  136. Использование Wine на деле является довольно простым. Чтобы запустить любое
  137. Windows-приложение достаточно использовать простую команду::
  138. wine программа.exe
  139. .. danger:: Никогда не запускаете wine из под sudo/root! Это поможет
  140. вам избежать проблем в будущем, в том числе с безопасностью.
  141. При использовании Wine основополагающим понятием является префикс (в народе
  142. его также называют бутылкой). Префикс, это искусственно воссозданное
  143. окружение, которое на деле представляет собой обычную директорию, внутри
  144. напоминающую собой файловую систему Windows в миниатюре. Внутри префикса будут
  145. устанавливаться и работать практически все Windows программы, которые вы
  146. будете запускать при помощи Wine. Стоит понимать, что программы запускаемые
  147. через Wine по прежнему будут думать, что они работают в Windows, хотя на самом
  148. деле это не так. Именно поэтому Wine и понадобилось воссоздать файловую
  149. структуру каталогов Windows внутри Linux (Unix). Так называемый префикс по
  150. умолчанию - это скрытая директория *~/.wine* в папке вашего пользователя. Если
  151. вы её откроете то увидите следующее:
  152. .. image:: https://codeberg.org/ventureo/ARU/raw/branch/main/archive/ARU/images/image3.png
  153. Как мы видим, в префиксе находятся файлы с расширением .reg (файлы реестра
  154. Windows), директории *dosdevices* и *drive_c*. Файлы реестра используются Wine
  155. для, собственно, воссоздания работы реестра Windows в Linux. К ним также будут
  156. обращаться программы запускаемые через Wine. Директория *dosdevices* содержит
  157. символические ссылки на примонтированные устройства (разделы) в вашей системе
  158. Linux. Это понадобилось для того чтобы представить их в виде MS-DOS томов, ибо
  159. Windows приложения опять таки не знают, что они работают под Linux, и им нужны
  160. привычные им диски D, E и т.д. Один из таких "виртуальных дисков", а именно
  161. главный диск C, располагается в другом каталоге - *drive_c*. Если вы его
  162. откроете, то увидите как раз таки "замечательную" и привычную структуру
  163. каталогов Windows:
  164. .. image:: https://codeberg.org/ventureo/ARU/raw/branch/main/archive/ARU/images/image8.png
  165. Именно сюда как правило и будут устанавливаться ваши Windows программы, а
  166. также сохранятся все их временные и постоянные данные.
  167. Вы можете переназначить используемый префикс через переменную окружения
  168. *WINEPREFIX*, указав Wine использовать другую директорию для его расположения
  169. вместо *~/.wine*. Например::
  170. WINEPREFIX=~/Games wine game.exe # Если директории не было, Wine её создаст.
  171. Учитывайте, что при смене префикса через переменную окружения ``WINEPREFIX``
  172. не переносится его содержимое, т.е. программы установленные в одном префиксе
  173. не будут скопированы в новый. Поэтому вам нужно будет вручную их перенести в
  174. новый префикс. Это не распространяется на те программы, которые расположены
  175. вне используемого префикса, например, если вы запускаете exe-файл из папки
  176. *Загрузки*, то он все так же будут запускаться, однако следует учитывать, что
  177. установку игр и других программ все же лучше выполнять внутрь префикса, так
  178. как некоторые программы (например такие как различные пиратские установщики
  179. игр), могут не работать правильно при запуске вне префикса. Кроме того, доступ
  180. Wine к файлам, находящимся вне рамок префикса, может быть нежелательным с точки
  181. зрения безопасности, так как не следует забывать, что Wine все ещё не является
  182. 100% защитой от любых вредоносных Windows программ, которые вы через него
  183. запускаете. Чтобы полностью ограничить доступ Wine ко всем файлам, находящимся
  184. вне префикса читайте далее.
  185. .. index:: installation, wine, prefix, setup, isolation
  186. .. _prefix_setup:
  187. ^^^^^^^^^^^^^^^^^^^
  188. Настройка префикса
  189. ^^^^^^^^^^^^^^^^^^^
  190. Как уже было отмечено в самом начале, не все игры и программы работают
  191. идеально под Wine, но работу некоторых программ можно улучшить за счёт
  192. грамотной настройки префикса, о чем и будет идти речь в данном разделе.
  193. .. index:: installation, wine, isolation, prefix
  194. .. _wine_isolation:
  195. """"""""""""""""""""""""""""""""""""""""""""""""""""
  196. Изоляция Wine программ от доступа к файловой системе
  197. """"""""""""""""""""""""""""""""""""""""""""""""""""
  198. По умолчанию Wine создаёт внутри префикса символические ссылки, по существу
  199. представляющие собой "мостик" для доступа приложений ко всей остальной
  200. файловой системе. Это необходимо как раз таки для того, чтобы вы могли
  201. запускать exe-файлы, которые находятся вне рамок вашего префикса, но это имеет
  202. за собой угрозу компрометации ваших личных данных, так как запускаемая
  203. программа может оказаться троянским конем, который как раз таки может
  204. исследовать префикс и пройти внутрь по всем "виртуальным дискам", которые
  205. ведут напрямую к вашей файловой системе Linux. Хотя Wine работает в рамках
  206. полномочий вашей учетной записи и не может ни коим образом повлиять на
  207. системные файлы, возможность считывать данные внутри вашей домашней директории
  208. по прежнему остается. Вот почему важно полностью "изолировать" работу Windows
  209. приложений только внутри префикса Wine. Чтобы это сделать достаточно открыть
  210. утилиту ``winecfg``, перейти во вкладку *"Диски"* (*Drives*), выбрать диск
  211. *Z:*, который представляет собой символическую ссылку на ваш корневой раздел,
  212. и нажать кнопку *Удалить* (*Remove*):
  213. .. image:: images/winecfg-isolation-1.png
  214. Кроме диска *Z:* могут присутствовать символические ссылки также и на другие
  215. смонтированные носители, их тоже рекомендуется аналогично удалить, так чтобы
  216. остался доступ только к диску *C:*, который представляет собой простую
  217. директорию внутри префикса.
  218. Уже это значительно увеличит вашу безопасность, однако это ещё всё. Wine так
  219. же создает символические ссылки и внутри диска воображаемого диска C:, а
  220. точнее в ``drive_c/users/имя_вашего_пользователя``, которые связывают имена
  221. классических пользовательских папок в Windows, например такими как *"Мои
  222. документы"*, *"Загрузки"* с соответствующими аналогами в Linux, такими как
  223. *~/Документы* и *~/Загрузки* (если у вас установлена русская локаль), что так
  224. же создает определенную угрозу компрометации личных данных. Чтобы
  225. предотвратить произвольный доступ к ним нужно не выходя из утилиты ``winecfg``
  226. перейти во вкладку *"Вид и интеграции"* (*Desktop Integration*), в категории
  227. *Папки* (*Folders*) выбрать соответствующую папку и снять галочку с
  228. *"Привязать к"* (*Link to*). То же самое нужно проделать так со всеми
  229. доступными папками:
  230. .. image:: images/winecfg-isolation-2.png
  231. После этого не забываем перед выходом прожать кнопку *"Применить"* (*Apply*).
  232. .. index:: seutp, wine, prefix, unity, games, fix-input
  233. .. _wine_fix_input_in_unity_games:
  234. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""
  235. Проблема потери управления при смени фокуса на другое окно
  236. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""
  237. Пользователи Wine могли встретить один очень раздражающий баг, когда при
  238. переключении с окна с игрой на другое окно, и последующим возвращением фокуса
  239. обратно на окно с игрой, Wine перестает реагировать на нажатия клавиш. Чаще
  240. всего эта проблема встречается в играх, созданных на базе движка Unity, но
  241. может быть и в других.
  242. Чтобы предотвратить возникновение этой проблемы достаточно изменить значение
  243. одного ключа реестра Wine, что можно сделать несколькими способами:
  244. .. tab-set::
  245. .. tab-item:: Через терминал
  246. ::
  247. wine reg ADD 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /v UseTakeFocus /d 'N' /f
  248. .. tab-item:: Интерактивный способ
  249. Значение ключа реестра можно изменить и интерактивным способом через
  250. встроенную программу "Реестра" в Wine::
  251. wine regedit
  252. Чтобы создать ключ как показано на скриншоте нужно выбрать в
  253. контекстном меню *Правка* (*Edit*) -> *Создать* (*New*) -> *Строковый
  254. параметр* (*String value*)-> Ввести имя параметра ``UseTakeFocus`` ->
  255. Установить значение ``N``.
  256. .. image:: images/wine-regedit-1.png
  257. Естественно, в случае если вы хотите решить эту проблему не только для игр,
  258. находящихся в префиксе по умолчанию (``~/.wine``), то вы должны сопроводить
  259. нужную команду (в зависимости от выбранного способа), соответственно
  260. установленным значением переменной ``WINEPREFIX``, так как любые изменения в
  261. реестре Wine локальны только для текущего выбранного префикса.
  262. .. index:: seutp, wine, prefix, dotnet, black_window, flickering
  263. .. _fix_black_launcher_windows:
  264. """""""""""""""""""""""""""""""""""""""""""""""
  265. Исправление чёрных окон лаунчеров на базе .NET
  266. """""""""""""""""""""""""""""""""""""""""""""""
  267. К сожалению, Wine пока ещё очень плохо справляется с правильным отображением
  268. различного рода "лаунчеров", в частности тех, которые используют весьма
  269. Windows-специфические графические тулкиты, вроде того же 4-го .NET, который
  270. часто можно встретить в различных "запускалках" пиратских версий игр. Часто
  271. встречаемая проблема - это либо полностью чёрное, либо мерцающее окно
  272. лаунчера. Как правило чтобы это исправить достаточно отключить аппаратное
  273. ускорение видео для таких окон, отредактировав очередной ключ реестра:
  274. .. tab-set::
  275. .. tab-item:: Через терминал
  276. ::
  277. wine reg add "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Avalon.Graphics" /v DisableHWAcceleration /t REG_DWORD /d 1 /f
  278. .. tab-item:: Интерактивный способ
  279. Значение ключа реестра можно изменить и интерактивным способом через
  280. встроенную программу "Реестра" в Wine::
  281. wine regedit
  282. Чтобы создать ключ как показано на скриншоте нужно сначала выбрать
  283. раздел ``HKEY_CURRENT_USER\Software\Microsoft``, потом контекстном меню
  284. выбрать *Правка (Edit)* -> *Создать (New)* -> *Раздел (Key)* ->
  285. ``Avalon.Graphics`` и уже выбрав данный новый раздел, перейти снова в
  286. *Правка (Edit)* -> *Создать (New)* -> *Параметр DWORD (DWORD value)* ->
  287. ``DisableHWAcceleration`` -> Установить значение ``1``.
  288. .. image:: images/wine-regedit-2.png
  289. Как и всегда не забываем, чтобы изменения реестра работают только в рамках
  290. текущего префикса, поэтому если у вас есть несколько проблемных лаунчеров в
  291. разных префиксах, то подставляйте соответствующую директорию префикса в
  292. переменную ``WINEPREFIX``.
  293. .. index:: seutp, wine, prefix, cef, black_window
  294. .. _fix_cef_based_launchers:
  295. """"""""""""""""""""""""""""""""""""""""""""""
  296. Исправление чёрных окон лаунчеров на базе CEF
  297. """"""""""""""""""""""""""""""""""""""""""""""
  298. Аналогичные проблемы возникают с другими лаунчерами, которые базируются не на
  299. .NET, а на CEF (Chromium Embedded Framework). Такие лаунчеры очень часто
  300. встречаются среди разработанных большими компаниями: Epic Games Store, Origin,
  301. Battle.net, Lesta Game Center, Ubisoft Connect, лаунчер Genshin Impact и
  302. многие другие. Одним словом, практически все известные сервисы и платформы для
  303. запуска игр. Проблема с их правильным отображением состоит в том, что CEF по
  304. умолчанию использует так называемый *Cross Process Rendering*, который, как
  305. понятно из названия, позволяет рисовать окно приложения сразу с использованием
  306. нескольких процессов, что очень плохо работает в Wine, из-за чего возникают
  307. различные артефакты или уже известные чёрные окна.
  308. Исправить проблемы с такими лаунчерами можно только указав для них
  309. дополнительные аргументы запуска, а именно: ``--single-process --disable-gpu
  310. --disable-gpu-compositing``.
  311. Например, в случае с Battle.net:
  312. .. tab-set::
  313. .. tab-item:: Запуск через терминал
  314. ::
  315. wine "Battle.net Launcher.exe" --single-process --disable-gpu --disable-gpu-compositing
  316. .. tab-item:: Запуск через Lutris
  317. В Lutris аргументы запуска указываются в параметрах игры как показано на
  318. скриншоте.
  319. .. image:: images/lutris-game-options.png
  320. Не забываем сохранять проделанные изменения!
  321. .. note:: Данная проблема особенно актуальна при использовании нативного
  322. Wayland драйвера в Wine, так как на текущий момент он вообще не умеет
  323. работать с Cross Process Rendering.
  324. .. index:: installation, native-compilation, dxvk, async, lowlatency, gaming
  325. .. _dxvk:
  326. -----
  327. DXVK
  328. -----
  329. В Linux отсутствует полноценная реализация DirectX по вполне понятным
  330. причинам. Но присутствуют альтернативные графические API, работающие под любые
  331. платформы. Прежде всего это OpenGL и Vulkan. В следствии этого в Wine есть так
  332. называемый ретранслятор кода - wined3d. Он переводит вызовы DirectX в
  333. известные любой Linux системе OpenGL вызовы. Однако OpenGL не одно и тоже что
  334. и DirectX, поэтому возникают множество проблем. Самая главная из которых -
  335. значительно более худшая производительность OpenGL по сравнению с DirectX.
  336. Именно поэтому если вы запустите любую игру через "голый" Wine вы получите
  337. ужасный FPS, т.к. она будет работать с использованием wined3d. По этой причине
  338. был разработан другой ретранслятор кода - DXVK. Он переводит DirectX вызовы
  339. уже не в OpenGL, а в Vulkan - более современный графический API, который
  340. достигает паритета по возможностям и производительности с DirectX.
  341. Установка DXVK - это первое что должен сделать любой игрок который собирается
  342. запустить Windows-игру под Linux. Хотя при использовании любой версии Proton
  343. DXVK уже есть из коробки, для игр запускаемых через обычный Wine его придется
  344. устанавливать вручную.
  345. Мы рекомендуем устанавливать `dxvk-pure-git
  346. <https://github.com/ventureoo/PKGBUILDs/tree/main/dxvk-pure-git>`_ для лучшей
  347. производительности:
  348. .. warning:: Последние версии DXVK требуют поддержки драйвером вашего GPU
  349. версии по крайне мере API Vulkan 1.3. Если вы являетесь обладателем
  350. видеокарты NVIDIA поколения Kepler (Geforce GTX 6xx/7xx), то вы ограничены
  351. поддержкой Vulkan 1.2, и вам нет смысла устанавливать DXVK по этой
  352. инструкции. Вместо этого используйте последнюю доступную версию DXVK
  353. 1.10.3, которую можно выбрать к использованию в настройках Lutris.
  354. **Установка:**::
  355. git clone https://github.com/ventureoo/PKGBUILDs
  356. cd dxvk-pure-git
  357. makepkg -sric
  358. После установки пакета DXVK не задействуется сразу же. Так как фактически DXVK
  359. представляет собой набор DLL библиотек, то мы должны установить их внутрь Wine
  360. префикса. Для пользователей графических помощников, таких как Lutris делать
  361. это вручную не требуется, но следует указать новую свежеустановленную версию
  362. DXVK.
  363. .. tab-set::
  364. .. tab-item:: Ручной способ
  365. В классическом варианте установка DXVK внутрь префикса это простой
  366. перенос всех DLL библиотек в специальные директории. Однако автор
  367. рекомендует создавать символические ссылки на системные пути, чтобы не
  368. копировать каждый раз новые DLL библиотеки в префикс (в примере ниже это
  369. ``~/.wine``) при обновлении пакета::
  370. ln -s -f /usr/share/dxvk/x32/*.dll ~/.wine/drive_c/windows/syswow64
  371. ln -s -f /usr/share/dxvk/x64/*.dll ~/.wine/drive_c/windows/system32
  372. После чего необходимо специально указать Wine, чтобы вместо встроенной реализации
  373. DirectX через wined3d использовались реализация в первую очередь из сторонних
  374. DLL библиотек, то есть DXVK::
  375. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d8 /d native,builtin /f
  376. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d9 /d native,builtin /f
  377. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d10core /d native,builtin /f
  378. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d11 /d native,builtin /f
  379. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v dxgi /d native,builtin /f
  380. .. tab-item:: При использовании Lutris
  381. Если вы используете графический помощник Lutris, то как уже было сказано
  382. выполнять рутинные действия по переносу DLL библиотек внутрь префикса не
  383. нужно, однако Lutris хранит все используемые им версии DXVK в
  384. специальной директории, куда нужно поместить и только что установленную
  385. версию DXVK. Для этого следует создать символическую ссылку, что
  386. позволит каждый раз не переносить DLL библиотеки с новыми версиями
  387. пакета::
  388. ln -s /usr/share/dxvk ~/.local/share/lutris/runtime/dxvk/dxvk-git
  389. После перезапуска Lutris в соответствующем поле выбора версии DXVK
  390. появится новая версия ``dxvk-git``, которая и будет представлять собой
  391. только что свеже скомпилированную версию DXVK.
  392. .. image:: images/lutris-dxvk-1.png
  393. .. warning:: DXVK осуществляет ретрансляцию вызовов только для игр
  394. использующих версии DirectX 8, 9, 10 и 11. Для DirectX 12 понадобиться
  395. использовать vkd3d-proton. Подробнее о нем вы можете прочитать ниже.
  396. .. note:: Начиная с версии 2.0 и выше DXVK компилирует шейдеры заранее, так
  397. чтобы бы вы не сталкивались с заиканиями непосредственно вовремя игры. К
  398. сожалению, не во всех играх это работает как следует, к таковым относятся
  399. некоторые проекты разработанные на движке Unreal Engine. Тем не менее, с
  400. помощью определенных опций самого движка все же можно позволить DXVK
  401. собирать шейдеры в фоне во время загрузки игры. Для игр на базе Unreal
  402. Engine 4/5 нужно отредактировав файл
  403. ``%LOCALAPPDATA%/game_name/Saved/Config/WindowsNoEditor/Engine.ini`` (путь
  404. к конфигурационному файлу внутри префикса может отличаться от игры к игре)::
  405. [/script/engine.renderersettings]
  406. r.Shaders.Optimize=1
  407. r.CreateShadersOnLoad=1
  408. niagara.CreateShadersOnLoad=1
  409. r.ShaderDevelopmentMode=0
  410. r.CompileShadersForDevelopment=0
  411. Аналогично для игр использующих UnrealEngine 3 существует параметр
  412. ``bInitializeShadersOnDemand=False`` (спасибо @Iglu47 для предоставленную
  413. информацию).
  414. .. index:: installation, wine, vkd3d, gaming, native-compilation
  415. .. _vkd3d:
  416. -------------
  417. vkd3d
  418. -------------
  419. vkd3d - это ретранслятор кода, аналогичный DXVK, но уже конкретно для версии
  420. DirectX 12. Стоит отметить, что существует две отдельно разрабатываемые версии
  421. vkd3d, одна из которых разрабатывается командой Wine, а другая - Valve. Мы
  422. рекомендуем вам использовать ту что от Valve, т.к. она наиболее заточена под
  423. современные игры, а также достаточно хорошо поддерживает Raytracing.
  424. **Установка vkd3d-proton**
  425. Вместо обычных бинарных сборок мы установим vkd3d-proton из AUR,
  426. нативно-скомпилировав его под свой процессор::
  427. git clone https://aur.archlinux.org/vkd3d-proton-mingw.git # Скачивание исходников
  428. cd vkd3d-proton-mingw # Переход в директорию
  429. makepkg -sric # Сборка и установка
  430. Так же как и в случае с DXVK, после установки пакета, если речь про ручную
  431. установку, библиотеки vkd3d-proton нужно сначала скопировать в нужный Wine
  432. префикс и форсировать их использование, либо указать их в качестве
  433. используемых при использовании в Lutris.
  434. .. tab-set::
  435. .. tab-item:: Ручной способ
  436. Для использования DLL библиотек vkd3d-proton в рамках выбранного
  437. префикса (в примере это ``~/.wine``) нужно перенести их внутрь
  438. специальных директорий, где находятся все DLL библиотеки известные Wine,
  439. соответствующей разрядности. Тем не менее, автор рекомендует создавать
  440. символические ссылки в нужные системные пути, чтобы не нужно было каждый
  441. раз переносить новые версии DLL библиотек внутрь префикса при обновлении
  442. пакета::
  443. ln -s -f /usr/share/vkd3d-proton/x86/*.dll ~/.wine/drive_c/windows/syswow64
  444. ln -s -f /usr/share/vkd3d-proton/x64/*.dll ~/.wine/drive_c/windows/system32
  445. А также следует указать форсированное использование vkd3d-proton вместо
  446. встроенной в Wine реализации vkd3d::
  447. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d12 /d native,builtin /f
  448. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d12core /d native,builtin /f
  449. .. tab-item:: При использовании Lutris
  450. При использовании графического помощника Lutris переносить DLL
  451. библиотеки внутрь префикса не нужно, так как он уже делает это за вас,
  452. однако нужно поместить DLL библиотеки vkd3d-proton в специальную
  453. директорию, чтобы они стали доступными для выбора в качестве версии
  454. vkd3d-proton в Lutris::
  455. ln -s /usr/share/vkd3d-proton ~/.local/share/lutris/runtime/vkd3d/vkd3d-proton-git
  456. После перезапуска Lutris новая версия vkd3d-proton под названием
  457. ``vkd3d-proton-git`` станет доступна в окне выбора версии:
  458. .. image:: images/lutris-vkd3d-1.png
  459. .. index:: wine, dxvk, gaming, about
  460. .. _wine-references:
  461. ------------------------------------
  462. Полезные ссылки по теме Wine и DXVK
  463. ------------------------------------
  464. **Скачать готовые сборки Wine и DXVK**
  465. https://github.com/Kron4ek/Wine-Builds
  466. https://mirror.cachyos.org/?search=wine
  467. **Почитать, что это такое**
  468. https://www.newalive.net/234-sborki-dxvk-i-d9vk.html
  469. https://www.newalive.net/231-wine-tk-glitch.html
  470. .. index:: gamemode, lutris, gaming
  471. .. _additional-components:
  472. =================================
  473. Дополнительные компоненты
  474. =================================
  475. Не являются обязательными, но могут помочь повысить производительность системы
  476. или облегчить настройку.
  477. .. index:: installation, gamemode, lutris, gaming
  478. .. _lutris-and-additions:
  479. --------
  480. Lutris
  481. --------
  482. Lutris - это удобный графический интерфейс по обслуживанию всей вашей игровой
  483. библиотеки (включая все купленные игры Steam/GOG/Epic Games) в одном
  484. приложении. Через него вы сможете достаточно просто запускать нативные игры,
  485. игры запускаемые при помощи эмуляторов, и конечно Wine. Все это объединено в
  486. одном приложении-комбайне, содержащим много настроек и интеграций с различными
  487. сервисами.
  488. **Установка**
  489. Все проще некуда::
  490. sudo pacman -S lutris
  491. Тем не менее, стоит удостовериться что вы установили полный набор зависимостей
  492. для Wine. Об этом вы можете прочитать в предыдущих разделах.
  493. .. image:: images/lutris.png
  494. **Интеграция с GOG/Epic/Steam**
  495. Сразу после установки стоит сделать некоторые базовые вещи. А именно подключить
  496. интеграцию с сервисами Steam/GOG/Epic Games. Это позволит синхронизировать
  497. локальную библиотеку Lutris'a вместе с перечисленными площадками и выполнять
  498. установку игр в два клика. Подключать все конечно не обязательно, так что
  499. делайте это если считаете нужным.
  500. **1.** Зайдем в настройки: В правом верхнем углу найдите три горизонтальные
  501. полоски и в контекстном меню выберите *"Preferences"*. После этого выберите
  502. *"Services"* и включите те сервисы, которыми вы пользуетесь.
  503. **1.1**
  504. .. image:: images/lutris-context-menu.png
  505. **1.2**
  506. .. image:: images/lutris-preferences.png
  507. **2.** Теперь вернитесь в главное окно и наведите курсор на левую панель в
  508. графу *"Sources"*, и ниже выберите нужную вам платформу. Справа от курсора
  509. будет иконка входа. После этого перед вами появится окно авторизации, после
  510. прохождения которой у вас появится возможность устанавливать и запускать все
  511. игры из вашей внешней библиотеки (Steam/GOG/Epic Games).
  512. Пример подключения аккаунта GOG представлен ниже на скриншотах.
  513. **2.1**
  514. .. image:: images/lutris-auth-icon.png
  515. **2.2**
  516. .. image:: images/lutris-gog-auth.png
  517. **2.3**
  518. .. image:: images/lutris-gog-library.png
  519. Аналогичная операция проделывается с Epic Games Store:
  520. **2.4**
  521. .. image:: images/lutris-auth-epic-icon.png
  522. **2.5**
  523. .. image:: images/lutris-epic-auth.png
  524. **2.6**
  525. .. image:: images/lutris-epic-library.png
  526. .. index:: installation, gamemode, gaming, lutris
  527. .. _gamemode:
  528. --------------
  529. Gamemode
  530. --------------
  531. Gamemode - утилита для максимальной выжимки системы во время игры. Установку
  532. gamemode можно выполнить следующей командой::
  533. sudo pacman -S gamemode lib32-gamemode
  534. Lutris, как правило использует gamemode по умолчанию (в случае его наличия в
  535. системе), однако вы также можете активировать или деактивировать его в
  536. параметрах.
  537. Для запуска игры в ручную с использованием gamemode необходимо выполнить
  538. команду::
  539. gamemoderun ./game
  540. Для запуска игр через Steam с использованием gamemode необходимо прописать
  541. команду в параметрах запуска игры (находятся в свойствах игры в Steam)::
  542. gamemoderun %command%
  543. Из коробки gamemode применяет не так много оптимизаций, поэтому есть смысл
  544. включить использование некоторых параметров, которые отключены по умолчанию.
  545. Задействовать их можно создав конфиг для gamemode (комментарии сопровождаются
  546. символом ``;`` в начале)::
  547. mkdir -p ~/.config/gamemode
  548. nano ~/.config/gamemode/gamemode.ini # Пропишите следующее строчки
  549. [general]
  550. ; Повышает приоритет игры до максимума
  551. renice=19
  552. ; Отключает раздельные блокировки шины памяти.
  553. ; Одна инструкция с раздельной блокировкой может занимать шину
  554. ; памяти в течение примерно 1 000 тактов, что может приводить к
  555. ; кратковременным зависаниям системы в таких играх как God of War.
  556. disable_splitlock=1
  557. ; Устанавливает режим работы процессора на максимальную производительность
  558. desiredgov=performance
  559. [gpu]
  560. ; Установит профиль вашей видеокарты NVIDIA на максимальную
  561. ; производительность на время игры.
  562. nv_powermizer_mode=1
  563. ; Аналогично для AMD. Не забывайте следить за температурой вашего GPU!
  564. amd_performance_level=high
  565. .. warning:: Ananicy/Ananicy-cpp и gamemode конфликтуют - не используйте их вместе!
  566. .. index:: nvidia, dlss, proton, image-scaling, gaming
  567. .. _nvidia-dlss-with-proton:
  568. -------------------------------------------------------
  569. Использование DLSS с видеокартами NVIDIA через Proton
  570. -------------------------------------------------------
  571. Для того чтобы использовать DLSS вам потребуется:
  572. * Видеокарта поддерживающая данную технологию (видеокарты серии RTX и выше).
  573. * Убедиться, что используемая версия Proton не ниже **6.3-8**! (**поддержка
  574. DLSS начинается с данной версии!**)
  575. * Указать параметры запуска игры в свойствах игры Steam
  576. ``PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1``
  577. * Некоторые игры, как правило, которые используют DX11, для корректной работы
  578. могут также потребовать включения *dxgi.nvapiHack = False* в *dxvk.conf.* Для
  579. этого выполните инструкции ниже::
  580. mkdir -p ~/.config/dxvk/dxvk.conf
  581. echo "dxgi.nvapiHack = False" > ~/.config/dxvk/dxvk.conf
  582. После этого не забудьте дописать *DXVK_CONFIG_FILE=~/.config/dxvk/dxvk.conf*
  583. в приведённом ниже примере перед ``%command%``.
  584. Пример для использования в Steam::
  585. PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 %command%
  586. .. attention:: Поскольку для DLSS необходимо специальное машинное обучение, то
  587. для запуска необходимо чтобы игра поддерживала DLSS, т.е. в настройках игры
  588. должен быть параметр включения данной функции. **Иначе DLSS работать не
  589. будет!**
  590. .. index:: gamescope, fps, installation
  591. .. _gamescope:
  592. ----------
  593. Gamescope
  594. ----------
  595. Gamescope - это сессионный композитор, используемый для повышения
  596. производительности в играх. По сути, он запускает отдельный менеджер окон
  597. специально для вашей игры поверх текущего графического окружения.
  598. Преимуществом Gamescope является снижение задержек во время игры и возможность
  599. произвольно изменять собственное разрешение окна и разрешение экрана для игры,
  600. при этом не меняя исходное разрешение вашего рабочего окружения. У gamescope
  601. также есть встроенная поддержка технологий FSR и NVIDIA Image Scaling.
  602. **Установка** ::
  603. sudo pacman -S gamescope
  604. **Использование**
  605. Прямо перед командой запуска игры (gamescope работает как для Wine,
  606. так и для нативных игр) добавьте команду ``gamescope``.
  607. Чтобы изменить разрешение в котором будет работать gamescope используйте
  608. параметры ``-W`` и ``-H`` для ширины и высоты соответственно. Аналогичные
  609. параметры есть для указания ширины и высоты окна с игрой ``-w`` и ``-h``.
  610. Используйте параметр ``-F`` с аргументами ``fsr`` или ``nis`` для
  611. задействования технологий AMD FSR и NVIDIA Image Scaling соответственно.
  612. Для достижения растягивающего масштабирования используйте ``-S stretch``.
  613. Например при запуске CS2 с параметрами
  614. ``gamescope -f -w 2048 -h 1536 -W 3440 -H 1440 -r 165 -S stretch --``
  615. получаем картинку 4:3 без черных полос по бокам. ``-r`` отвечает за герцовку.
  616. .. warning:: Для правильной работы с закрытым драйвером NVIDIA на последних
  617. версиях требуется бета версия Vulkan драйвера 535.43.20.
  618. .. warning:: Если Gamescope не выводит изображение на видеокартах AMD,
  619. используйте переменную окружения ``RADV_DEBUG=nodcc`` или
  620. ``R600_DEBUG=nodcc``.
  621. .. index:: setup, gamescope, tty, latency
  622. .. _tty_gamescope:
  623. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  624. Запуск gamescope в отдельном tty
  625. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  626. Как следует из данного определения, gamescope является сессионным
  627. композитором. Это также означает, что он может быть запущен как часть уже
  628. запущенной графической сессии (т. е. внутри графического окружения), так и сам
  629. представлять собой независимую графическую сессию. Для того, чтобы gamescope
  630. смог стать автономным композитором необходимо запустить его в отдельном tty,
  631. т.е. вне другой графической среды. По сути такой прием аналогичен запуску
  632. отдельного X сервера, но в случае с gamescope это позволяет ему получить
  633. некоторые дополнительные возможности, которые нельзя получить при запуске из
  634. под графической среды если она сама их не поддерживает (например в случае с
  635. GNOME):
  636. - Поддержка VRR (при указании опции ``--adaptive-sync``)
  637. - Поддержка прямого отображения кадров минуя дополнительные этапы обработки,
  638. что значительно уменьшает задержки ввода (при указании
  639. ``--immediate-flips``)
  640. Для того чтобы запустить gamescope в таком режиме вам нужно перейти в
  641. отдельный, незанятый другой графической сессией, tty, например tty3, при
  642. помощи сочетания клавиш ``Ctrl+Alt+F3`` (последняя цифра указывает номер TTY).
  643. После этого перед вами появится приглашение для ввода логина и пароля от
  644. вашего пользователя. Если авторизация прошла успешно, то перед вами появится
  645. приглашение вашей системной оболочки. В ней вы должны запустить gamescope
  646. вместе с указанием приложения, которое вы хотите использовать внутри сессии
  647. gamescope. Например::
  648. gamescope -W 1920 -H 1080 -e -f --xwayland-count 2 --immediate-flips -r 144 -O HDMI-0 -- wine ~/Games/game.exe
  649. Ключи ``-W`` и ``-H`` указывают ширину и высоту выбранного ключом ``-O``
  650. вывода соответственно, а ключ ``-r`` указывает частоту развертки. После ``--``
  651. идет команда запуска приложения, которое вы хотите запустить внутри gamescope.
  652. Обратите внимание, что вы так же можете запустить клиент Steam внутри
  653. gamescope, и все запускаемые вами игры тоже будут работать внутри этой сессии.
  654. Специально для Steam также нужно экспортировать переменную окружения (указать
  655. перед командой gamescope) ``STEAM_MULTIPLE_XWAYLANDS=1`` для того чтобы можно
  656. было использовать Steam одновременно с вашей обычной графической сессией
  657. (возврат на которую осуществляется при помощи сочетания клавиш
  658. ``Ctrl+Alt+F1``) и gamescope сессией на другом tty.
  659. .. index:: fps, monitoring, mangohud, dxvk
  660. .. _fps_monitoring:
  661. ------------------------------
  662. Мониторинг FPS в играх.
  663. ------------------------------
  664. .. index:: installation, fps, monitoring, mangohud
  665. .. _mangohud:
  666. ^^^^^^^^^^^^^
  667. Mangohud
  668. ^^^^^^^^^^^^^
  669. Включение мониторинга в играх как в MSI Afterburner.
  670. .. image:: https://codeberg.org/ventureo/ARU/raw/branch/main/archive/ARU/images/image9.png
  671. :align: center
  672. **Установка** ::
  673. sudo pacman -S lib32-mangohud mangohud
  674. Графический помощник для настройки вашего MangoHud. ::
  675. sudo pacman -S goverlay
  676. Для использования mangohud в играх через Steam необходимо добавить команду в
  677. параметры запуска игры (находятся в свойствах игры Steam)::
  678. mangohud %command%
  679. (Для указания нескольких команд необходимо разделять их **пробелом**)
  680. .. index:: installation, fps, monitoring, dxvk
  681. .. _dxvk-hud:
  682. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  683. Альтернатива: DXVK Hud (*Только для игр запускаемых через Wine/Proton*)
  684. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  685. Вы также можете использовать встроенную в DXVK альтернативу для мониторинга -
  686. DXVK Hud. Он не такой гибкий как MangoHud, но также способен выводить значения
  687. FPS, график времени кадра, нагрузку на GPU. Использовать данный HUD можно задав
  688. переменную окружения *DXVK_HUD*. К примеру, ``DXVK_HUD=fps,frametimes,gpuload``
  689. выводит информацию о FPS, времени кадра, и нагрузке на GPU.
  690. Полный список значений переменной вы можете узнать - `здесь
  691. <https://github.com/doitsujin/dxvk#hud>`__.
  692. .. index:: installation, xpad, xpadneo, xone, gamepad, usb, bluetooth
  693. .. _gamepad_setup:
  694. -------------------------
  695. Настройка геймпадов Xbox
  696. -------------------------
  697. .. index:: xpad, usb, gamepad
  698. .. _xpad_setup:
  699. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  700. Настройка стандартного xpad
  701. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  702. К сожалению далеко не все Xbox-совместимые геймпады распознаются встроенным
  703. драйвером Xpad при подключении посредством USB, поэтому приходится явно
  704. указывать его использование для данных устройств. Делается это при помощи
  705. правил Udev (менеджера устройств в Linux). Но перед их написанием нужно
  706. определить ID вендора и самого устройства. Это можно сделать через команду
  707. ``lsusb`` (если у вас её нет, то установите пакет ``usbutils``)::
  708. lsusb
  709. После вы получите информацию о всех подключенных USB устройствах системе. Нас
  710. интересует два числа разделяемых двоеточием, это и будет ID производителя и
  711. самого устройства (в примере ниже это ``11c1`` и ``2001`` соответственно). ::
  712. ...
  713. Bus 001 Device 002: ID 11c1:2001 Controller
  714. ...
  715. После этого создадим правило udev с произвольным именем файла:
  716. .. code-block:: shell
  717. :caption: ``sudo nano /etc/udev/rules.d/10-xbox-gamepad.rules``
  718. # Generic xbox controller
  719. ACTION=="add", ATTRS{idVendor}=="11c1", ATTRS{idProduct}=="2001", \
  720. RUN+="/sbin/modprobe xpad", \
  721. RUN+="/bin/sh -c 'echo %s{idVendor} %s{idProduct} > /sys/bus/usb/drivers/xpad/new_id'"
  722. В атрибуты ``idVendor`` и ``idProduct`` мы указываем полученные значения из
  723. команды lsusb (не забудьте про кавычки!).
  724. Теперь нам нужно загрузить новые правила через следующую команду::
  725. sudo udevadm control --reload-rules
  726. Переподключите ваш геймпад к компьютеру и он должен стать доступным для
  727. использования (проверить можно через наличие файла ``/dev/input/js0``).
  728. .. index:: installation, gamepad, xpadneo, dkms, bluetooth
  729. .. _xpadneo-dkms-git:
  730. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  731. Драйвер xpadneo с поддержкой Bluetooth
  732. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  733. И драйвер xpad, и драйвер xone не поддерживают работу с геймпадами,
  734. работающими через Bluetooth. Xpadneo - это новый драйвер для поддержки работы
  735. всех последних контроллеров от Microsoft, например таких как контроллер
  736. Microsoft Xbox One S, и их клонов, подключаемых через Bluetooth.
  737. Среди преимуществ драйвера следует отметить следующее:
  738. - Поддержка Trigger Force Feedback (чего даже нет в Microsoft Windows)
  739. - Поддержка подключения более одного контроллера
  740. - Поддержка индикации уровня заряда
  741. Полный список возможностей драйвера можно увидеть `здесь
  742. <https://github.com/atar-axis/xpadneo#advantages-of-this-driver>`__.
  743. **Установка** ::
  744. git clone https://aur.archlinux.org/xpadneo-dkms
  745. cd xpadneo-dkms
  746. makepkg -sric
  747. .. vim:set textwidth=78: