Настройка контроллера Xbox One в Ubuntu

Почему это важно
Контроллеры Xbox One хорошо поддерживаются в Linux, но «из коробки» поведение может быть ограничено: нестабильная поддержка нескольких контроллеров, отсутствие гибкой привязки клавиш и различия в реализации Bluetooth/радио. Небольшие изменения в драйверах и пара утилит дают лучший игровой опыт в Ubuntu.
Коротко о понятиях
- xpad — встроенный драйвер ядра Linux для игровых контроллеров Xbox. Поддерживается в основном ядром.
- xboxdrv — альтернативный пользовательский драйвер с расширенными возможностями (маппинг, мультиконтроллер).
- steamos-xpad-dkms — вариант драйвера xpad с патчами Valve (улучшения для SteamOS/Steam Input).
- jstest-gtk — GUI для проверки осей и кнопок контроллера.
- AntiMicro (antimicro) — утилита для привязки клавиш/мыши к кнопкам геймпада.
Требования и примечания по оборудованию
- Контроллер Xbox One S и новее часто поддерживает Bluetooth. Оригинальные контроллеры Xbox One используют проприетарный протокол по USB или через беспроводной адаптер Xbox Wireless.
- Для беспроводного подключения через адаптер Xbox Wireless используйте официальные USB-адаптеры; для Bluetooth — включите блютуз-режим на контроллере.
- Для установки DKMS-пакетов могут потребоваться заголовки ядра (linux-headers-generic).
Установка и использование xboxdrv
xboxdrv — это пользовательский драйвер, полезный для расширенной конфигурации контроллера и поддержки нескольких геймпадов.
Установите пакет и запустите его как службу systemd:
sudo apt-get install xboxdrv
sudo systemctl enable xboxdrv.service
sudo systemctl start xboxdrv.serviceЕсли служба не запускается или пересекается с модулем xpad, возможно, потребуется выгрузить или заблокировать модуль xpad:
sudo modprobe -r xpad
echo "blacklist xpad" | sudo tee /etc/modprobe.d/blacklist-xpad.confПосле этого перезапустите xboxdrv:
sudo systemctl restart xboxdrv.serviceНастройка нескольких контроллеров с xboxdrv
Откройте конфиг и добавьте параметры для цепочки контроллеров:
sudo nano /etc/default/xboxdrvВставьте (или дополните) секцию примерно так — разместите под строкой с silent = true:
[xboxdrv]
silent = true
next-controller = true
next-controller = true
next-controller = trueСохраните (Ctrl+O, Enter), закройте (Ctrl+X) и перезапустите службу:
sudo systemctl restart xboxdrv.serviceПосле этого система должна корректно обрабатывать несколько подключенных контроллеров.
Установка SteamOS-патченного драйвера (steamos-xpad-dkms)
Если вы предпочитаете оставаться в пространстве драйвера ядра, патч от Valve улучшает совместимость и поведение в Steam/Big Picture. Установка добавляет PPA и ставит DKMS-модуль:
sudo add-apt-repository ppa:mdeslaur/steamos
sudo apt-get update
sudo apt-get install steamos-xpad-dkms linux-headers-genericВо время установки старый драйвер xpad может быть заменён автоматически. После установки выполните перезагрузку:
sudo rebootПосле перезагрузки проверьте, что модуль загружен: lsmod | grep xpad.
Привязка клавиш и калибровка: jstest-gtk и AntiMicro
Для точной проверки и калибровки осей используйте jstest-gtk:
sudo apt-get install jstest-gtkЗапустите jstest-gtk из меню или терминала — вы увидите список устройств, сможете посмотреть оси и кнопки и выполнить калибровку.
Для привязки кнопок/мыши/клавиш к контроллеру используйте AntiMicro:
sudo add-apt-repository ppa:ryochan7/antimicro
sudo apt-get update
sudo apt-get install antimicroAntiMicro позволяет сохранить профили маппинга, назначать макросы и переключать профили в процессе игры.
Альтернативы и интеграция со Steam
- Steam Input: в клиенте Steam включите поддержку контроллера и создайте профили для отдельных игр (современное и удобное решение).
- SDL/Gamepad mappings: можете использовать системные маппинги SDL (полезно для приложений, использующих SDL).
- Использование беспроводного адаптера Xbox Wireless гарантирует более стабильное соединение, чем общий Bluetooth, особенно при нескольких геймпадах.
Устранение неполадок и диагностические команды
Если контроллер не виден или ведёт себя неправильно, используйте эти команды для диагностики:
- Проверка USB/BT устройств:
lsusbиbluetoothctl - Просмотр логов systemd для xboxdrv:
journalctl -u xboxdrv.service -b - Логи ядра для USB/BT:
dmesg | tail -n 50 - Список джойстиков в /dev:
ls /dev/input/(ищитеjs0,event*) - Проверить состояния модулей:
lsmod | grep xpadиmodinfo xpad - Проверить входные события:
evtest /dev/input/eventX(замените X на номер устройства)
Типичные проблемы и решения:
- Контроллер подключается, но не реагирует в игре — проверьте маппинг в Steam или профиль AntiMicro.
- Несколько контроллеров конфликтуют — используйте xboxdrv с настройкой next-controller или заблокируйте конфликтующие модули.
- Bluetooth-подключение нестабильно — попробуйте USB-соединение или официальный адаптер Xbox Wireless.
Критерии приёмки
Чтобы считать настройку успешной, выполните проверку:
- Контроллер отображается в jstest-gtk и реагирует на все кнопки и оси.
- В вашей игре или приложении кнопки выполняют ожидаемые действия при выбранном профиле.
- Если требуется — несколько контроллеров подключаются и распознаются как отдельные устройства (например,
/dev/input/js0,/dev/input/js1).
Быстрый чеклист по ролям
Геймер:
- Подключить контроллер (USB/Bluetooth/адаптер).
- Установить steamos-xpad или xboxdrv по необходимости.
- Настроить профиль в Steam и/или AntiMicro.
- Протестировать в jstest-gtk.
Системный администратор / продвинутый пользователь:
- Убедиться в наличии заголовков ядра.
- Прописать blacklist для конфликтующих модулей, если нужно.
- Включить и настроить systemd-сервис xboxdrv при использовании.
- Собрать логи при проблемах и проверить модуль DKMS.
Чит‑шит: полезные команды
# Установка драйверов
sudo apt-get install xboxdrv
sudo add-apt-repository ppa:mdeslaur/steamos
sudo apt-get install steamos-xpad-dkms linux-headers-generic
# Анти-иконы и тесты
sudo apt-get install jstest-gtk
sudo add-apt-repository ppa:ryochan7/antimicro
sudo apt-get install antimicro
# Диагностика
lsusb
dmesg | tail -n 50
journalctl -u xboxdrv.service -b
ls /dev/input/ | grep jsСоветы по совместимости и миграции
- Если вы мигрируете между версиями Ubuntu или обновляете ядро, проверьте, что DKMS-пакеты перелинкованы к новой версии ядра (
dkms status). - На Wayland-инсталляциях некоторые приложения могут требовать дополнительных настроек для захвата входа с геймпада; Steam обычно справляется сам.
- Для стабильной игры с несколькими контроллерами рекомендуется использовать физический USB-хаб или отдельные адаптеры, чтобы избежать перебоев Bluetooth.
Когда это не сработает
- Очень старые контроллеры без поддержки USB/HID или со сломанным аппаратным соединением потребуют замены.
- Приложения с проприетарной поддержкой контроллеров могут игнорировать системные маппинги — в таких случаях используйте встроенные в игру настройки или Steam Input.
Краткое руководство по откату (rollback)
Если после установки патчей или DKMS-драйверов возникли проблемы, вернуться можно так:
- Переключитесь на встроенный модуль xpad:
- Удалите/дезактивируйте xboxdrv:
sudo systemctl stop xboxdrv.service && sudo systemctl disable xboxdrv.service - Удалите лист blacklist:
sudo rm /etc/modprobe.d/blacklist-xpad.conf
- Удалите/дезактивируйте xboxdrv:
- Удалите steamos-xpad-dkms, если он несовместим:
sudo apt-get remove --purge steamos-xpad-dkms
- Перезагрузите систему:
sudo reboot
Короткая терминология
- DKMS — система для автоматической пересборки модулей ядра при обновлении ядра.
- PPA — Personal Package Archive (репозиторий для Ubuntu).
Заключение
Контроллер Xbox One хорошо работает в Ubuntu при правильном выборе драйвера и инструментов для маппинга. xboxdrv даёт гибкость и надежную поддержку нескольких контроллеров; steamos-xpad-dkms поддерживает поведение, ориентированное на Steam. Для удобной игры используйте jstest-gtk для калибровки и AntiMicro/Steam Input для привязки клавиш. Если появятся проблемы — используйте команды диагностики и проверяйте заголовки ядра и логи systemd.
Что вы предпочитаете: xboxdrv или SteamOS-патч? Поделитесь вашим опытом и профилями в комментариях ниже.
Image credit: XBOX ONE @ Gamescom, SteamOS Logo
Похожие материалы
Блокировка писем без отправителя в Outlook
Сравнить товары в Access и объединить имена
Как исправить высокую загрузку CPU от Nvidia Container
Автозагрузка изображений в Outlook для Mac
Как выйти из Facebook на iPhone