Настройка геймпадов X-Box 360 в Debian [Инструкция]

Автор CoolAller, 07 мая 2014, 02:31:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

CoolAller

Приветствую всех!

Решил написать инструкцию по настройке геймпадов X-Box 360 в Debian, возможно кому-то будет полезно.

Существует две разновидности контроллеров X-Box 360, проводные и беспроводные, беспроводные отличаются по сути только наличием ресивера для передачи сигнала без проводов, на мой субъективный взгляд это является самым удобным вариантом. Поэтому именно ресивер должен выводится в списке подключенного оборудования.

Итак начнем, по имеющейся информации драйвер xpad, для настройки джойстиков не может быть использован для контроллеров (геймпадов) X-Box 360, поэтому либо удаляем его вообще:
sudo aptitude purge xpad
Либо добавляем в blacklist загрузку xpad, естественно с правами рута:
echo "blacklist xpad" > /etc/modprobe.d/blacklist.conf
Теперь выгружаем модуль xpad, если он загружен:
sudo rmmod xpad
Устанавливаем драйвер для контроллеров X-Box:
aptitude install xboxdrv
Теперь запускаем сам драйвер и проверяем работоспособность, запускать нужно от рута:
sudo xboxdrv
При этом в терминале должно вывестись что-то вроде этого:
ЦитироватьYour Xbox/Xbox360 controller should now be available as:
/dev/input/js0
Так же при нажатии кнопок в терминале будут выводиться соответствующие записи, что с одной стороны полезно и покажет, что контроллер работает, а с другой строны это не очень хорошо, так как в процессе игры будет давать ненужную нагрузку на процессор, поэтому запускать лучше с аргументом --silent:
sudo xboxdrv --silent

Помимо этого существует тулза для проверки работоспосодности геймпадов - jstest-gtk (доступна из репозитория)

Использование нескольких контроллеров (геймпадов) X-Box 360:

Если вы хотите подключить несколько контроллеров нужно для каждого контроллера запускать свой экземляр драйвера xboxdrv, другими словами можно запустить его, например в другом терминале или во вкладке этого же терминала.

Для проводных контроллеров команда выглядит следующим образом:
sudo xboxdrv -i 1 Не забываем про "тихий" режим: sudo xboxdrv --silent -i 1 Где цифра 1 соответствует, например, первому геймпаду, соответственно для второго геймпада нужно писать цифру 2 и т.д.

Для беспроводных контроллеров команда выглядит следующим образом:
xboxdrv --wid 1 "Тихий" режим по аналогии с вышеописанным: xboxdrv --silent --wid 1 Где цифра 1 так же соответствует, например, первому геймпаду, соответственно для второго геймпада нужно писать цифру 2 и т.д. Нумерация кстати может начинаться с цифры "0"

Для отключения геймпадов просто нажимаем в терминале ctrl+c.

Возможно автоматизировать этот процесс и сделать, например, иконку для запуска, если кто-то имеет желание может дописать как это делается, лично меня и так устраивает.

Worlding

Имею debian 10 x64 и беспроводной контроллер. Но при команде "sudo xboxdrv" выдаёт:

# xboxdrv
xboxdrv 0.8.8 - http://pingus.seul.org/~grumbel/xboxdrv/
Copyright © 2008-2011 Ingo Ruhnke <grumbel@gmail.com>
Licensed under GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.


-- [ ERROR ] ------------------------------------------------------
No Xbox or Xbox360 controller found

Как же настроить?

CoolAller

#2
Worlding, только что проверил работоспособность инструкции и она таки работает)
Открыть содержимое (спойлер)
root@host:~# sudo xboxdrv
xboxdrv 0.8.8 - http://pingus.seul.org/~grumbel/xboxdrv/
Copyright © 2008-2011 Ingo Ruhnke <grumbel@gmail.com>
Licensed under GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.

Controller:        Xbox 360 Wireless Receiver
Vendor/Product:    045e:0719
USB Path:          005:002
Wireless Port:     0
Controller Type:   Xbox360 (wireless)

Your Xbox/Xbox360 controller should now be available as:
  /dev/input/js0
  /dev/input/event23

Press Ctrl-C to quit, use '--silent' to suppress the event output
[свернуть]

У меня Microsoft Xbox 360 controller with Wireless Receiver, возможно у вас более новый Microsoft Xbox One Controller, у меня его нет поэтому написать для него инструкцию не могу.