Настройка геймпада в Linux: отключение xpad, замена драйвера и калибровка

Введение
Linux долгое время проигрывал по популярности среди геймеров, но ситуация меняется: Valve и другие издатели стали активнее выпускать игры под Linux, а поддержка контроллеров в ядре существенно улучшилась (многие популярные геймпады поддерживаются с ядра 3.19). Тем не менее стандартный модуль xpad может вести себя нестабильно с некоторыми контроллерами и не предоставляет гибкой настройки. В этом руководстве показано, как отключить xpad, заменить его на более функциональный драйвер и настроить геймпад для игр.
Important: перед изменениями сохраните доступ к терминалу и убедитесь, что у вас есть восстановительный доступ (SSH, консоль) на случай проблем с USB или автозагрузкой драйвера.
Кому будет полезно
- Геймерам, у которых геймпад ведёт себя странно (мигание светодиодов, «мертвые зоны», неверная привязка кнопок).
- Администраторам локальных игровых машин, которые хотят централизованно настраивать контроллеры.
Ключевая идея
Отключаем конфликтующий модуль ядра (xpad), ставим альтернативный драйвер (xboxdrv / ubuntu-xboxdrv), калибруем оси и создаём профили привязки клавиш.
Требования и предварительная подготовка
- Дистрибутив на базе Debian/Ubuntu (команды apt приведены как пример). Для других дистрибутивов используйте аналогичные пакеты (pacman, dnf и т. п.).
- Права sudo или root.
- Подключённый геймпад (USB или беспроводной при наличии ресивера).
Отключение модуля xpad (временное и постоянное)
Иногда достаточно выгрузить модуль вручную для теста:
sudo rmmod xpad
Или использовать modprobe для временной выгрузки:
sudo modprobe -r xpad
Чтобы отключить xpad навсегда (чтобы система не загружала его при старте), добавьте правило в modprobe:
echo "blacklist xpad" | sudo tee /etc/modprobe.d/blacklist-xpad.conf
После этой команды перезагрузите систему или выгрузите модуль, чтобы изменения вступили в силу.
Note: Некоторым устройствам всё же нужен xpad; сохраняйте файл и способ отката (удалить /etc/modprobe.d/blacklist-xpad.conf), если появятся неожиданные эффекты.
Установка альтернативного драйвера: xboxdrv
xboxdrv — это пользовательский драйвер с расширенными возможностями маппинга и калибровки.
Установите пакет командой:
sudo apt-get update
sudo apt-get install xboxdrv
Запустите драйвер и сразу отключите модуль ядра (если он ещё загружен):
sudo xboxdrv --detach-kernel-driver
Если вы хотите сначала выгрузить модуль вручную, можно сделать так:
sudo rmmod xpad
sudo xboxdrv --detach-kernel-driver
Вы увидите в терминале поток значений кнопок и осей — это означает, что драйвер работает и получает данные от контроллера.
Чтобы убрать вывод в терминал и запустить драйвер в фоне:
sudo xboxdrv --silent
Альтернатива: пакет ubuntu-xboxdrv
Если стандартный xboxdrv даёт проблемы, попробуйте форк ubuntu-xboxdrv, который иногда содержит патчи для дистрибутива Ubuntu:
sudo apt-add-repository -y ppa:rael-gc/ubuntu-xboxdrv
sudo apt-get update
sudo apt-get install ubuntu-xboxdrv
Важно: добавление PPA делаете на свой страх и риск — читайте описание репозитория и отзывы.
Автозапуск xboxdrv через systemd (пример)
Если вы хотите, чтобы xboxdrv всегда запускался при загрузке, создайте сервис systemd:
sudo tee /etc/systemd/system/xboxdrv.service > /dev/null << 'EOF'
[Unit]
Description=xboxdrv daemon
After=network.target
[Service]
ExecStart=/usr/bin/xboxdrv --silent --detach-kernel-driver
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now xboxdrv.service
Для отката отключите сервис и удалите файл:
sudo systemctl disable --now xboxdrv.service
sudo rm /etc/systemd/system/xboxdrv.service
sudo systemctl daemon-reload
Калибровка геймпада (jstest-gtk)
Для проверки и калибровки осей пригодится графический инструмент jstest-gtk.
Установите и запустите его:
sudo apt-get install jstest-gtk
jstest-gtk
Откройте программу, выберите устройство и нажмите «Properties» (Свойства). В окне появятся индикаторы осей и кнопок — следите, чтобы оси возвращались в ноль и не было дрейфа.
Нажмите кнопку «Calibration» и затем «Start Calibration». Следуйте подсказкам: обычно требуется поочерёдно переместить оси в крайние положения и отпустить. После процедуры сохраните параметры.
Если оси имеют «мертвые зоны», вы можете компенсировать это в интерфейсе калибровки или добавить параметры в стартовую команду xboxdrv (например, опции deadzone и sensitivity).
Назначение клавиш и создание профилей (qjoypad)
Чтобы сопоставить нажатия на геймпаде с клавиатурой или мышью (например, для игр без поддержки контроллера), используйте qjoypad.
Установка:
sudo apt-get install qjoypad
Запуск в режиме без трея (если нужно видеть окно):
qjoypad --notray
Добавьте новый профиль кнопкой «Add» и назовите его. В профиле вы можете задать, какие клавиши должны отправляться при нажатии кнопок или движении осей. Кнопка «Quick Set» упрощает назначение: жмите кнопку контроллера, потом клавишу клавиатуры.
Переключение профилей и трей
После сохранения профилей запустите qjoypad в фоне (обычно оно уходит в трей) и переключайтесь между наборами для разных игр.
Когда это может не сработать (контрпримеры)
- Устаревший или проприетарный контроллер со специфичной прошивкой, который не совместим ни с xpad, ни с xboxdrv.
- Контроллер, эмулирующий нестандартный USB‑интерфейс (например, специализированные аркадные платы) — тогда нужно искать драйвер от производителя.
- Ошибки в ядре или конфликт с другим USB‑устройством: иногда помогает подключение контроллера к другому USB‑порту или использование USB‑хаба с отдельным питанием.
Альтернативные подходы
- Steam Input (встроенные настройки Steam) — не требует замены драйверов и хорошо работает с большинством игр в Steam.
- Библиотеки SDL2/evdev — разработчики игр могут обрабатывать контроллеры на уровне приложения, минуя xboxdrv.
- Antimicro / AntiMicroX — аналог qjoypad для привязки кнопок к клавиатуре и мыши.
Быстрый чек‑лист
Для игрока:
- Подключить контроллер и проверить, видит ли его jstest-gtk.
- Если есть проблемы, временно выгрузить xpad и запустить xboxdrv.
- Откалибровать оси в jstest-gtk.
- Создать профиль в qjoypad и проверить в игре.
Для администратора:
- Решить, нужен ли xpad для других устройств в сети.
- Добавить blacklist-xpad.conf при необходимости.
- Настроить systemd‑сервис для xboxdrv и обеспечить логирование.
- Документировать профили и хранить конфигурации в репозитории.
Критерии приёмки
- Контроллер отображается в jstest-gtk и реагирует на все кнопки.
- Оси возвращаются в центр после отпускания (нет дрейфа), либо дрейф компенсирован калибровкой.
- Профиль qjoypad корректно отправляет клавиши в целевом приложении.
- Система корректно загружает/выгружает драйвер при перезагрузке без «зависания» устройств.
Методология быстрого отладки (mini-SOP)
- Подключите контроллер, запустите jstest-gtk, проверьте наличие и поведение осей.
- Если есть проблемы — выгрузите xpad: sudo rmmod xpad.
- Установите и запустите xboxdrv: sudo xboxdrv –detach-kernel-driver.
- Калибруйте через jstest-gtk.
- Настройте профили в qjoypad и проверьте в игре.
- Если всё стабильно — добавьте blacklist и systemd‑сервис для автозапуска.
Короткий глоссарий
- xpad — стандартный модуль ядра Linux для контроллеров Xbox.
- xboxdrv — пользовательский драйвер с расширенными возможностями маппинга.
- jstest-gtk — графический инструмент для тестирования и калибровки геймпадов.
- qjoypad — утилита для сопоставления кнопок контроллера с клавиатурой/мышью.
Резюме
Замена xpad на xboxdrv и правильная калибровка существенно повышают комфорт игры на Linux в случае проблем с поведением контроллера. В большинстве случаев последовательность «выгрузка xpad → установка xboxdrv → калибровка jstest-gtk → настройка профилей qjoypad» решает задачу. Всегда имейте план отката и документируйте конфигурации.
Важно: если устройство критично зависит от xpad (редкие случаи), не вносите постоянные изменения в blacklist без тестирования на всех целевых машинах.
Похожие материалы

Подключение сетевых дисков через GPO в Windows

FT232R USB UART драйвер: установка и ошибки

Slopsquatting: что это и как защититься

Как смотреть видео в Telegram без загрузки

Отключить «Давайте завершим настройку» в Windows 11
