Современный Linux неплохо дружит с геймпадами: DualSense и контроллеры Xbox определяются без установки драйверов, а Steam Input добавляет гироскоп, макросы и поддержку игр без нативного ввода. Проблемы начинаются в мелочах — двойной ввод, вибрация только по проводу, путаница с раскладкой кнопок. Разберём подключение и диагностику по шагам.
Что поддерживается из коробки
Контроллеры Xbox 360 и Xbox One по USB работают через модуль xpad, DualShock 4 и DualSense — через hid-playstation, который появился в ядре 5.12. Проводное подключение обычно не требует вообще ничего: система видит устройство как /dev/input/js0 и набор event-устройств. По Bluetooth картина сложнее, особенно для Xbox.
Проверить, что ядро увидело геймпад, можно двумя командами. Первая покажет USB-идентификаторы, вторая — строки драйверов в журнале:
lsusb | grep -Ei 'sony|microsoft|057e|054c'
dmesg | grep -Ei 'playstation|xpad|hid-generic|bluetooth'
cat /proc/bus/input/devices | grep -A5 -i 'dualsense\|xbox'
Если в выводе есть устройство с именем DualSense Wireless Controller, но игры его не видят, проблема почти всегда в правах доступа или в том, что приложение запущено в контейнере.
DualSense: USB и Bluetooth
По кабелю DualSense работает сразу, включая тачпад как обычную мышь и встроенный динамик в некоторых играх. По Bluetooth нужна пара. Включите геймпад комбинацией PS + Create, затем выполните поиск:
bluetoothctl
power on
agent on
default-agent
scan on
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
connect XX:XX:XX:XX:XX:XX
После сопряжения геймпад переподключается сам. Если он числится в списке, но не соединяется, удалите устройство через remove и спарьте заново, предварительно выключив и включив контроллер. Адаптивные триггеры и точная вибрация доступны только в играх, которые сами их поддерживают; Steam Input умеет эмулировать часть эффектов, но не заменяет нативную реализацию.
Заряд удобно смотреть через upower: драйвер hid-playstation публикует батарею как power_supply. Если утилита ничего не показывает, проверьте ls /sys/class/power_supply/ — там должно появиться устройство с именем вроде sony_controller_battery_....
Xbox: кабель, Bluetooth и адаптер
Контроллер Xbox Series по USB работает через xpad стабильно. По Bluetooth нужен модуль xpadneo: он добавляет вибрацию, корректные мёртвые зоны и более надёжное переподключение. В Arch модуль есть в AUR, а универсальный способ — сборка из репозитория:
git clone https://github.com/atar-axis/xpadneo.git
cd xpadneo && sudo ./install.sh
sudo modprobe hid_xpadneo
dmesg | grep -i xpadneo
Официальный USB-адаптер Xbox подключается через драйвер xone, а не xpad. Если адаптер не определяется, проверьте, что модуль загружен: lsmod | grep xone. Для клонов адаптеров и старых ревизий поведение может отличаться, и тогда проще использовать кабель.
Раскладка кнопок Xbox в Linux совпадает с физическими подписями, но некоторые игры показывают подсказки PlayStation. Это косметика: Steam Input умеет подменять иконки под тип контроллера в настройках игры.
Проверка ввода без игр
Прежде чем лезть в настройки игры, убедитесь, что кнопки доходят до системы. evtest показывает события в реальном времени, jstest — оси и кнопки джойстика. Установите пакеты evtest и joystick из репозитория дистрибутива.
sudo evtest
jstest /dev/input/js0
jstest --event /dev/input/js0
ls -l /dev/input/by-id/ | grep -i gamepad
В evtest выберите устройство по имени и нажимайте кнопки: в консоли должны появляться строки EV_KEY и EV_ABS. Если события идут, а игра молчит — виновато приложение, а не драйвер. Если событий нет, смотрите права: пользователь должен входить в группу input или получать доступ через uaccess от systemd-logind.
Права доступа и udev
На десктопе с GNOME или KDE доступ обычно выдаётся автоматически. В минимальной системе или при запуске игр из скрипта помогает правило udev. Создайте файл /etc/udev/rules.d/99-gamepad.rules:
SUBSYSTEM=="input", ATTRS{name}=="*DualSense*", TAG+="uaccess"
SUBSYSTEM=="input", ATTRS{name}=="*Xbox*", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="054c", MODE="0660", TAG+="uaccess"
После сохранения выполните sudo udevadm control --reload-rules и переподключите геймпад. Тег uaccess выдаёт доступ активному пользователю сеанса, поэтому не нужно добавлять всех в группу input и ослаблять систему.
Steam Input: главный инструмент
Steam видит большинство контроллеров и умеет превращать их в виртуальный Xbox-геймпад. Настройки находятся в Steam → Настройки → Контроллер. Включите поддержку PlayStation и Xbox, затем настройте раскладку для рабочего стола: она пригодится в играх без поддержки геймпада и в меню.
Для каждой игры Steam Input включается отдельно в свойствах. Если игра сама поддерживает DualSense, выберите нативный ввод — так работают адаптивные триггеры. Если поддержки нет, включите Steam Input и назначьте гироскоп на мышь или правый стик. Комбинация клавиш Shift+Tab открывает оверлей, где можно быстро проверить, какое устройство видит Steam.
Владельцам Flatpak-версии Steam нужно открыть доступ к устройствам ввода:
flatpak override --user --device=all com.valvesoftware.Steam
flatpak run com.valvesoftware.Steam
ls /dev/input/by-id/ | grep -i steam
Без --device=all контейнер может не увидеть геймпад, хотя в системе он работает.
Типичные проблемы
- Двойной ввод. Игра и Steam Input одновременно обрабатывают одно устройство. Отключите Steam Input для этой игры или наоборот включите его и уберите нативный режим.
- Нет вибрации по Bluetooth. Для Xbox поставьте
xpadneo, для DualSense проверьте, что игра поддерживает haptic feedback, а не только rumble. - Геймпад отваливается. Чаще всего виноват USB-хаб без питания или слабый Bluetooth-адаптер. Подключите контроллер к порту на задней панели и уберите источники помех.
- Стик уходит в сторону. Увеличьте мертвую зону в Steam Input на 5–10%, а не правьте драйвер.
- Неверные кнопки в эмуляторе. В RetroArch выберите профиль контроллера вручную и проверьте привязки в меню Input.
Итог
В 2026 году геймпад в Linux — это в первую очередь вопрос правильного подключения, а не драйверов. DualSense работает через hid-playstation, Xbox по кабелю — через xpad, а по Bluetooth — через xpadneo. Steam Input закрывает остальное: гироскоп, макросы и игры без нативной поддержки. Начните с evtest, настройте права через uaccess и не включайте два обработчика ввода одновременно — и большинство проблем исчезнет.