Linux обнаруживает нажатие клавиши джойстика, даже если она не нажата

У меня очень странная проблема на моей машине с Arch Linux. Ну, у меня есть это в течение нескольких лет, но так как я не использую джойстики очень часто, я просто проигнорировал это в первый раз. Это очень странная проблема, поэтому читайте внимательно.

Недавно я пытался использовать свою панель Xbox 360, чтобы играть в некоторые старые игры PSX на эмуляторах (не волнуйтесь, это были оригинальные диски). Когда я пытался настроить пэд (используя модуль ядра xpad), эмулятор (PCSX работал изначально) продолжал сообщать мне, что правый триггер был нажат, поэтому настройка других клавиш невозможна (поскольку каждая клавиша, которую я пытался настроить, продолжала работать назначен на правый триггер).

Я попробовал другой эмулятор, ePSXe, работающий под Wine (а затем ePSXe native), и у меня возникла та же проблема. На данный момент я уже был крайне подозрительным, я использую оригинальный, отлично работающий проводной контроллер Xbox 360 и xpad, который используют все остальные, почему бы это не сработало? Тем не менее, я не сдался и попробовал альтернативные решения, такие как драйвер xboxdrv userspace. Неудачно. Затем я сдался, так как я не хотел терять сон из-за этого.

Недавно я купил USB-адаптер для контроллеров PS2. Я подключил его, попытался настроить на эму и... что? Мне постоянно говорят, что нажата кнопка R2 (которая находится в том же положении, что и правый триггер контроллера X360)! Каковы шансы, что два полностью работающих контроллера создают одну и ту же проблему при использовании разных драйверов и разных программ? По крайней мере, теперь стало ясно, что это не программное обеспечение планшета X360, не Xpad и не эмулятор.

Исключив всех этих подозреваемых, я могу придумать только одно объяснение, которое заключается в том, что модуль джойстика ядра не работает. Но я никогда не прикасался к файлам конфигурации, связанным с джойстиками, и мое ядро ​​- это стандартное ядро ​​из репозиториев Arch Linux. Можете ли вы помочь мне с моей проблемой? Я вложил много времени и денег на этот конкретный вопрос.

Почему он всегда обнаруживает одну и ту же клавишу (правый триггер /R2), даже если эти клавиши технически разные клавиши, поступающие с разных джойстиков с использованием разных драйверов (хотя я думаю, что xpad просто "переводит" ввод для модуля джойстика ядра)? Имейте в виду, что другие клавиши работают правильно, мне когда-то удавалось назначать их вручную, и каждый из них работал, пока я не назначил правильный триггер / R2 для какой-либо функции.

Почему это не сработает для меня, если я не использую модифицированное ядро ​​и никогда не трогал конфигурационный файл, связанный с джойстиком? Кто-нибудь еще сталкивался с этой проблемой? Я даже не знаю, что печатать в поисковой системе. Большое спасибо за чтение.

1 ответ

Похоже, что могут быть проблемы с модулями xpad, но только в том, что он может не распознать ваш контроллер (ы), таким образом, он переходит в режим "неизвестного планшета".

Вы можете изменить работу модуля с тремя параметрами:
+ dpad_to_buttons: сопоставить D-PAD с кнопками, а не с осями для неизвестных площадок
+ triggers_to_buttons: сопоставление триггеров с кнопками, а не с осями для неизвестных пэдов
+ sticks_to_null: вообще не отображать палочки для неизвестных пэдов

Добавляя / изменяя строку в файле в /etc/modprobe.d, вы можете установить / сбросить эти параметры.

Создайте файл в /etc/modprobe.d, он ДОЛЖЕН заканчиваться на " .conf ", в противном случае он не будет распознан как файл конфигурации.

В этом файле поместите эту строку:

options xpad {option} [{option}...]

Добавьте или удалите параметры по желанию. Я бы порекомендовал закомментировать (#) строку, если в списке нет параметров, или просто полностью удалить файл.

Скорее всего, вам понадобится запустить модуль xpad, а затем modprobe, чтобы перезагрузить его с новыми опциями.

Если кажется, что параметры не распознаны, вам может потребоваться выполнить команду depmod -a, чтобы перестроить таблицы зависимостей модуля.

Вы можете увидеть, какие параметры действительны для модуля с помощью команды modinfo.

Другие вопросы по тегам