Установка и настройка джойстика и геймпада в Линукс
Все мы в той или иной мере любим поиграть, а также упростить себе работу с помощью джойстиков.
Однако, всегда стоит помнить один момент. Производители пока еще не сильно ориентируются на Линукс. Однако, например большинство различных устройств фирмы Logitech без проблем работают в Линукс. Поэтому, прежде всего вам нужно определиться с возможностью работы вашего устройства в ОС Линукс, либо брать из популярных вариантов (см. указанную фирму выше).
И разумеется, применение устройств для рабочей сферы деятельности в данной теме рассматриваться не будут. Т.к. такие устройства специфичны или малоприменимы обычными пользователями. К примеру могу привести такое устройство, как Kinect. Так что, в дальнейшем речь пойдет об игровых джойстиках и геймпадах.
Определение устройства
Первым делом, после физического подключения устройства в USB-порт, стоит убедиться в том, что система видит устройство и создало файл устройства «jsN», где N — номер устройства, начиная с «0». Все файлы устройств, в Линуксе, лежат в папке «dev», а интересующее нас устройство, лежит в папке «input» (там же будет лежать ваша компьютерная мышь под названием «mouse0», про клавиатуру сказать сложнее, лично у меня это два файла «event6» и «event7» для usb-клавиатуры на ноутбуке).
Итак в терминале выполняем следующую команду, и если устройство у вас определяется, то результат команды будет, как на картинке ниже команды (см. 1 и 2).
Иначе говоря, на картинке выше представлено, следующее. Первый (см. 1) вариант, когда подключен один джостик/геймпад, второй (см. 2) — два устройства и третий (см.3), когда нету ни одного устройства или они не определены.
Если устройство не определяется, то значит у вас, либо нету драйвера для этого устройства в вашем дистрибутиве, либо оно требует специфичных драйверов (например, геймпад xbox360, требует установки пакета xboxdrv), либо устройство не исправно само по себе.
Примечание: В рамках данной статьи, на уровне новичка, я не могу осветить вопрос о поиске драйверов. Могу сказать лишь, что вам нужно искать по производителю и модели, также по специфике (например, аналоговый джойстик, джойстик, геймпад, геймпад xbox360, руль и т.д.). Если у вас возникла подобная ситуация, то рекомендую вам, либо обратиться в техподдержку производителя, либо к более опытным линуксоидам на форумы, в особенности по вашему дистрибутиву ГНУ/Линукс.
Настройка и калибровка
В рамках данной статьи могу сказать, что есть простой способ через консоль проверить ваше устройство, с помощью пакета joystick, чтобы его поставить достаточно выполнить следующую команду или найти скачать в виде исходников, да собрать у себя на компьютере.
И запустить программу «fftest», после запуска достаточно применять джойстик и смотреть на реакцию программы. Также в этом пакете есть и возможность делать и другие тесты, а также есть калибровка. Однако, новичку сложно с этим работать, т.к. через графический интерфейс это делать гораздо легче, и при этом все понятней. Так что, в этом случае, рекомендую поставить пакет jstest-gtk. Для этого выполните команду ниже, либо найдите архив с исходниками и соберите его у себя.
Название программы в этом пакете такое же, как и у самого пакета, т.е. «jtest-gtk». После запуска вы увидите окно, как на картинке ниже.
Выберите нужное вам устройство из предлагаемого списка и нажмите на кнопку «Свойства». У вас откроется окно, аналогично двум картинкам ниже, в зависимости от типа устройства.
Тут вам достаточно применить джойстик и увидеть изменения в окне, например кнопки будут подсвечиваться и т.д. Одним словом, вам, как новичку этого будет достаточно, чтобы убедиться, что джойстик в рабочем состоянии, подключен и виден ОС Линукс. Остальное зависит от той программы, в которой вы его будете применять, т.к. иногда бывает так, что определенный джойстик программой не поддерживается и она просто не будет с ним работать. А это уже надо уточнять у разработчиков самой программы.
Если вам, что-то не нравится в том, как идет работа джойстика, например по осям, то вы его можете откалибровать нажав соответствующую кнопку «Callibration».
В окне калиброке нет ничего сложно, если у вас не получилось достаточно нажать на кнопку «Восстановить». И как не трудно, догадаться можно и инвертировать оси. Однако, как правило в этом нет необходимости, т.к. в большинстве случаев все работает нормально. Например, в игре также бывают настройки с инвертированием осей.
Как видите, ничего сложного и фантастического в подключении и проверки работы джойстиков и геймпадов нету, в довесок привожу картинки игры X3: Terran Confliсt фирмы Egosoft, из которой видно, что оба устройства у меня поддерживаются игрой и видны ею.
В заключение
Напоследок могу сказать только лишь немногое. И первое, это то, что джойстики, геймпады, рули и т.п. — это весьма широкая тема, поэтому увы мне будет не по силам осветить буквально все устройства.
Однако, данной статьи на уровне новичка, достаточно, чтобы понять насколько не сложно применять и настраивать распространенные джойстики в виде рукоятки и также распространенные джойстики в виде геймпадов.
А также, каким образом их можно проверить, чтобы убедиться перед применением в игре. Или отсеять один из этапов проверки в случае с затруднениями в применении джойстиков, чтобы определить моменты, когда джойстик не определяется Линуксом, либо когда игра или другая программа его не поддерживает. И искать ответы на свои вопросы, уже в более конкретном направлении.
И еще раз, напомню, что когда вы делаете обдуманную покупку и приобретаете нормальное аппаратное обеспечение, а не всякий ширпотреб, то у вас, как правило не будет проблем с применением таких устройств в Линуксе. У меня, например, джойстик Logitech EXTREME 3D PRO и геймпад XEOX Speedlink SL-6566-BK pro analog gamepad usb.
Удачных, вам, времяпровождений за вашими играми и приятных впечатлений от игры через джойстик или геймпад.
Источник
Джойстик не работает
Само устройство в системе определяется иксами
Та-ак, окэй, я почти заставил его заработать.
Если убрать рекомендуемую в man joystick секцию InputClass из xorg.conf и поместить её в /usr/share/X11/xorg.conf.d/10-evdev.conf, в самое начало, то клавиатура определяется как клавиатура, мышь как джойстик и джойстик как джойстик. В принципе, уже что-то, зайти в систему можно, xinput list его видит, но:
— оси X и Y ограничены горизонтальным и вертикальным разрешением экрана соответственно;
— ось рыскания определяется как кнопка трёх состояний (левая кнопка, покой, правая кнопка), причём в состоянии, отличном от покоя, ручка как бы генерирует тем более нажатий в секунду, чем сильнее повёрнута от исходного положения (покоя);
— то же самое с осью РУД;
— не распозналось 7 из 14 кнопок. Хоть что-то.
Надо попробовать запилить свою /etc/X11/xorg.conf.d, авось секцию можно будет спихнуть туда.
В Ил-2 джойстик по-прежнему не определяется, но его действия в стиле «я мышка» имеют эффект и там.
Таки нет, куда секцию не пихай, нигде кроме как в /usr/share она нужного эффекта не возымеет. После того, как дописал для потенциальных кнопок и осей MapButton и MapAxis, они все нашлись. Занятно, что после того, как я убрал из конфига лишние блоки описания кнопок, оси съехали с кнопок, и теперь находятся на вроде бы положенных им рукоятках. Разве что на хатке одна ось осталась и две кнопки и ручка рыскания теперь страдает тем, чем страдала РУД постом выше.
Джойстик получилось отвадить от осознания им мышкой самого себя. По крайней мере, на вид. то есть, курсор он не двигает, в xinput test работает, а xinput —list —long
Восьмая кнопка хорошо работает и отслеживается в xinput test, как и все остальные, но
Wine ни в какую не хочет видит джойстик. И никакими WINEDEBUG=+dinput или WINEDEBUG=joystick нельзя добиться большего, чем
Пробовал назначить осям генерацию нажатий клавиш в релятиве
хз как насчет вайна, но у меня в oolite работает безовсяких конфигураций в иксах итд, обьявляется точто так же как inputX, цепляет она его судя по всему через SDL правда, но настраивать не потребовалось ровным счетом ничего, воткнул и полетел. ты уверен что иксам вообще нужно о нем чтото знать?
Источник
Неправильно определяется джойстик
- Подключаю USB-джойстик — 3 оси
- Далее вместо /dev/input/js* создается /dev/input/event*
- Результат: ни одна программа не видит его в роли джойстика
- OS: Ubuntu 14.04.3 LTS Trusty Tahr
- Kernel: стандартное generic
- Джойстик полностью рабочий
- Нa sudo cat /dev/input/event* реагирует
- Модуль joydev загружен
- Техподдержка говорит что это обычное HID-устройство, и должно легко определяться в Linux. К слову в Windows оно не требует сторонних драйверов.
Другие джойстики получают такой же вывод Xorg.0.log(только уже с dev/input/js*). При этом они отлично работают.
- Как сообщить ОС что это джойстик?
- И вообще интересно, как ОС решает что за устройство к ней подключили и что ей с ним делать?
жмешь номер нужного ивента, кнопаешь кнопари и смотришь есть ли выхлоп
вот те «программа видит его в роли джойстика»
в /etc/udev/rules.d/99-joystick.rules впиши
Техподдержка говорит что это обычное HID-устройство, и должно легко определяться в Linux.
Оно и определилось, только не воспринимается как джойстик.
Не сталкивался с такой проблемой и не знаю нормального способа её решения, но через задницу есть один вариант. С помощью «xboxdrv» можно из /dev/input/event* сэмулировать геймпад от xboxа, с js файлами.
Но заморачиваться с xboxdrv стоит только в том случае, если совет от anTaRes не помог. «/dev/input/js*» устаревший api, чаще всего в нем нет необходимости.
Да, sudo evtest выводит выхлоп, но опять же event, а не js. Мне нужно чтобы видели симуляторы, а именно X-plane.
Правило создал, оно срабатывает, но симуляторы не видят джойстик.
Совет от anTaRes не помог. А как его сэмулировать?
Гораздо лучше usermod -aG input user
На всякий случай сначала попробую перезагрузить машину после создания /etc/udev/rules.d/99-joystick.rules и после этого проверь, доступен ли event для пользователя «ls -l /dev/input/event*». У связанного с джойстиком event должны быть права на чтение/запись для всех пользователей (crw-rw-rw-) если правило нормально сработало.
Если правило не сработало и права остались прежними (crw——-), то для теста можно изменить у нужного event-а права вручную (chmod a+rw /dev/input/eventНОМЕР).
Если и после этого джойстик не видно, то только тогда стоит тратить время на эмуляцию с xboxdrv. Как это делается можно посмотреть тут:
Если коротко, то посмотреть через «evtest /dev/input/eventНОМЕР» или «xboxdrv —evdev —debug /dev/input/eventНОМЕР» название своих кнопок и осей (смотреть на вывод в терминале, когда дергаешь за джойстик и нажимаешь на кнопки), создать конфиг файл для xboxdrv с этими названиями и запустить эмуляцию:
«xboxdrv —detach-kernel-driver —mimic-xpad —evdev /dev/input/event_НОМЕР —silent —config ПУТЬ_К_ФАЙЛУ_КОНФИГУРАЦИИ»
Так как с этим методом придется потратить кучу времени на ненужную эмуляцию xbox-пада ради js файла, то лучше прибегнуть к нему в последнюю очередь.
Гораздо лучше usermod -aG input user
Не в каждом дистрибутиве сработает, в той же Ubuntu 14.04 у тса не прокатит. Да и с точки зрения безопасности решение сомнительное.
Хм, как интересно. В 14.04 LTS все /dev/input/event* принадлежат руту, что странно. В 15.10 всё ок, root:input.
Если вдруг у кого то еще не работают педали от ВКБ в Linux, то решилось все созданием в /etc/udev/rules.d/ файла 99-joystick.rules с таким содержанием:
И созданием скрипта в папке home:
- Не забываем изменить на свои idVendor, idProduct и название устройства в /dev/input/by-id
- А так же, если у вас педали с тормозами, то соответственно нужно дописать еще две оси ABS_RX и ABS_RY
Источник
Как подключить джойстик на Linux
Приветствую всех. На днях столкнулся с особенностью подключения джойстика на Linux дистрибутив Fedora 27. Там отсутствует такая возможность как автоматическая установка геймпада, а для этого необходимо в ручную производить установку. И так для начала нам необходимо запустить терминал и перейти в режим root, для этого вводим su и пароль root
Далее вводим в терменале команду :
Это позволит установить соответствующий пакет для джйстика. После ввода команды вам будет предложено его установить жмем Y и ждем завершения процесса установки.
Далее вам необходимо ввести команду для калибровке джойстика которая позволит запустить утилиту jscal, для этого в терминале вводим команду:
Путь /dev/input/ будет у всех одинаковый, однако если у вас несколько геймпадов, то последнее имя файла может отличаться в место js0 будет js1
После запуска утилиты, вам нужно будет откалибровать ось движения рычагов, если они у вас есть. В терминале будет написано что установите минимальное значения для рычажков будет 0 , среднее 128, максимальное 255, что бы добиться этих результатов нужно вращать рычаг в таком направлении что бы его значения выставлены были в соответствии с тем какой параметр выставляете минимальный, средний или максимальный. Далее вам будет предложено выставить второй рычаг, его значения выставляются по аналогии с первым, в начале минимальное 0, среднее 128 это в среднем положении рычаг и максимальное 255. Каждый раз как вы находите значение его нужно подтвердить нажатием одной из кнопок 1,2,3,4. Тем самым вы перейдете к следующей настройки. Не знаю как у вас но у меня при настройки первого рычага позиция 255 не была доступна и я оставил 128, но это никак не повлияла на его работу, теперь наши рычаги настроены по оси X и Y. Последней настройкой утилиты вам будет предложено настроить крестовину джойстика, где так же нужно указать минимальное значение которое будет равно -1 среднее 0 и максимально 1, настройка пройдет как по оси X влево, центр, вправо, так и по оси Y верх, центр, низ. Каждый раз не забывайте подтверждать нажатием одной из клавиш 1,2,3,4
Вот и все, мы осуществили подключение и калибровку джойстика, теперь при запуске игры ваш джойстик будет определяться и вам лишь останется его настроить в настройках самой игры если это требуется.
Источник