У меня есть этот контроллер ("www.bestbuy.com/site/power-a-spectra-controller-for-xbox-one-black/8685189.p?skuId=8685189"), который я пытаюсь взяться за работу над Ubuntu, но ее порождением огромной проблемы. Это происходит в основном из-за моей неопытности с Linux.
Я установил драйвер для контроллеров Xbox с помощью этого форума здесь, но когда я проверил, чтобы видеть, распознал ли он мой контроллер, он дал мне следующую ошибку:
-- [ ERROR ] ------------------------------------------------------
No Xbox or Xbox360 controller found
Этот форум упомянул, что я должен установить патч к xpad.c, чтобы заставить мой контроллер работать. Совет был дан о том, как исправить документ как ответ на вопрос того парня. Однако в этой команде, я должен сохранить патч в том же месте, где xpad.c, по-видимому, сохраняется. Это приводит к моим вопросам:
Заранее спасибо за справку. Следует иметь в виду, что я - новичок: чем больше детали, тем лучше.
Обновление: я использую версию 16.04 Ubuntu. Я попробовал опции установки xpad-v0.4 и steamos версии. Я отметил с обоими, что программа jstest-gtk распознает контроллер, даже бренд (Спектры PowerA), но контроллер просто продолжает высвечивать свой светодиодный индикатор, и это остается безразличным, когда я пробую к элементам управления вводом.
Я перешел к сути дела, где мой контроллер был распознан, но не ответ на нажатия кнопки. Возможно, Ваш контроллер ответит, если Вы выполните мои шаги, но возможно он не будет.
xpad и xboxdrv не являются тем же самым, они - два разных подхода. Кажется в данный момент, что xboxdrv работает лучше всего, но не совсем актуален на Ubuntu.
Необходимо загрузить, изменить и затем скомпилировать новейшую версию xboxdrv.
От GitHub https://github.com/zerojay/xboxdrv нажимают зеленый Clone or Download
кнопка, затем Download ZIP
.
Извлеките загруженный файл к пустой папке.
Здесь прибывает хитрая часть. В извлеченной папке найдите файл [...]/src/xpad_device.cpp
. Откройте его, и Вы найдете длинный список записей как
{ GAMEPAD_XBOX, 0x0d2f, 0x0002, "Andamiro Pump It Up pad" },
Вы хотите добавить свой собственный контроллер к этому списку. Это должно быть на форме
{ GAMEPAD_XBOXONE, 0x????, 0x????, "Your product description" },
И необходимо найти два кода, которые определяют его.
В Терминале ввести
watch lsusb
Включите свой контроллер и обратите внимание на строку, которая появляется в списке. Это - Ваш контроллер. Мой назвали
Bus 002 Device 013: ID 0e6f:02b2 Logic3
В xpad_device.cpp
проверьте, что идентификатор Вашего контроллера уже не является среди Xbox контроллерами. Если это, можно пропустить остальную часть этого шага.
Добавьте свою запись в список, добавив первую и вторую часть идентификатора устройства Вашего контроллера к первому и второму коду в записи. Мышление та каждая запись разделяется от запятой, и последняя запись, не имеет никакой запятой после нее.
Мой становится
{ GAMEPAD_XBOXONE, 0x0e6f, 0x02b2, "@Play - Wired Controller for Xbox One" },
Сохраните файл и закройте его.
От терминала перейдите к извлеченной папке. Первая вставка в
sudo apt-get install \ scons \ g++ \ libboost-dev \ scons \ pkg-config \ libusb-1.0-0-dev \ git-core \ libx11-dev \ libudev-dev \ x11proto-core-dev \ libdbus-glib-1-dev
устанавливать зависимости. Фактическая компиляция может требовать времени. Ввести
scons
затем
make install
От терминала,
sudo xboxdrv
Посмотрите, работает ли это. Для фактических игр, выполненных
sudo xboxdrv --silent
Таким образом, это не потратит впустую ЦП, печатающий все входные события к терминалу.
Для создания запуска его легче попытайтесь добавить его как ярлык с Alacarte.
Итак, я знаю, что это старый вопрос, но xboxdrv не требует перекомпиляции, чтобы получить клон контроллера xbox для Работа. В большинстве ситуаций достаточно просто проб и ошибок с параметрами CLI. Рекомендуемое чтение (серьезно, кто когда-либо писал это, как бог) https://retropie.org.uk/docs/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv/
TLDR: в CLI
ls /dev/input/by-id/
Нажмите «Ввод», и ваше устройство должно быть указано здесь по имени. Если вы видите несколько записей, найдите список, содержащий слово «событие» в заголовке. Если вы обнаружите, что ваш контроллер не указан по имени, вы можете заменить его номером события, когда придет время.
У меня есть PowerA fusion Pro, и эта команда заставила его работать на Ubuntu 18.04. Ну, кнопка Xbox на контроллере не загорается, но мне все равно.
xboxdrv \
--evdev /dev/input/by-id/usb-BDA_XB1_Fusion_Pro_00001B9C7FFF036A-event-joystick \
--silent \
--detach-kernel-driver \
--deadzone 500 \
--mimic-xpad \
--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_Z=lt,ABS_RZ=rt,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
--evdev-keymap BTN_A=a,BTN_B=b,BTN_X=x,BTN_Y=y,BTN_TL=lb,BTN_TR=rb,BTN_THUMBL=tl,BTN_THUMBR=tr,BTN_MODE=guide,BTN_SELECT=back,BTN_START=start \
--axismap -Y1=Y1,-Y2=Y2 \