Как подключить контроллер Xbox One к Raspberry Pi

Ретро-геймеры любят удобство — и контроллер Xbox One отлично подходит для игр на Raspberry Pi. Многие эмуляторы (RetroPie, Recalbox и другие) автоматически распознают контроллер и предлагают профили управления. Но чтобы всё работало корректно, важно правильно подключить устройство и, при нужде, установить драйверы.
Краткий план действий
- Обновите систему Raspbian.
- По возможности используйте USB для простоты или официальный адаптер для лучшей совместимости.
- Для Bluetooth-паринга отключите ERTM и используйте bluetoothctl.
- Проверьте ввод с помощью jstest.
Обновите Raspbian и установите драйверы
Перед началом убедитесь, что у вас актуальная версия системы. Откройте терминал и выполните:
sudo apt update
sudo apt upgradeДождитесь окончания выполнения каждой команды и подтвердите установки, если потребуется.
В большинстве случаев специальный драйвер для Xbox One не нужен — поддержка вклю чена в ядро. Но некоторые старые эмуляторы или игры могут некорректно распознавать устройство. В таких случаях установите пользовательский драйвер xboxdrv:
sudo apt install xboxdrvДождитесь завершения установки.
Важно: в Linux есть два подхода к поддержке контроллеров Xbox — встроенный модуль ядра xpad и пользовательский xboxdrv. xpad обеспечивает базовую работу без дополнительной настройки. xboxdrv даёт больше гибкости в переназначении кнопок и калибровке, но может конфликтовать с xpad — при установке xboxdrv убедитесь, что xpad не мешает (в редких случаях требуется отключать xpad).
Способы подключения
Существует три основных метода подключения контроллера Xbox One к Raspberry Pi:
- Подключение по USB (простой и надёжный способ).
- Официальный адаптер Microsoft Xbox Wireless Adapter (для беспроводного соединения через проприетарный протокол).
- Подключение по встроенному Bluetooth (только для контроллеров с поддержкой Bluetooth и для Raspberry Pi 3 и новее).
1) Подключение по USB
Самый простой способ — подключить контроллер кабелем. Зарядный кабель Xbox One (micro‑USB) подойдёт для передачи данных, если у вас проводной контроллер, он также работает сразу. Если кабеля нет, приобретите качественный кабель. Длина 2.7 м удобна для игр на ретро-системах, но подойдёт любой рабочий кабель.
Преимущества USB:
- Минимальная задержка ввода.
- Отсутствие настроек Bluetooth.
- Не требует батарей при использовании проводного питания.
Недостатки:
- Ограничение по длине кабеля.
- Нет преимуществ беспроводного управления.
2) Официальный адаптер Microsoft Xbox Wireless Adapter
Если вы хотите сохранить беспроводной опыт и не заморачиваться с Bluetooth-совместимостью, используйте официальный USB-адаптер Xbox Wireless Adapter. Подключите адаптер к Raspberry Pi, включите питание и выполните синхронизацию:
- Вставьте адаптер в USB-порт Raspberry Pi.
- Подождите, пока индикатор адаптера загорится.
- Нажмите кнопку синхронизации на адаптере и удерживайте.
- Нажмите кнопку синхронизации на контроллере Xbox One.
- Ждите, пока индикаторы перестанут мигать — соединение установлено.
Адаптер работает через проприетарный радиопротокол и часто обеспечивает более стабильное соединение, чем Bluetooth на тех устройствах, где Bluetooth-адаптация контроллера ограничена.
3) Подключение по встроенному Bluetooth
Для беспроводного соединения без адаптера можно использовать встроенный Bluetooth на Raspberry Pi 3 и новее. У этого способа есть нюансы: некоторые контроллеры Xbox One используют проприетарный протокол (требует адаптер), а другие — стандартный Bluetooth. Кроме того, для успешного паринга может потребоваться отключить ERTM.
Шаг 1. При необходимости установите xboxdrv (см. выше).
Шаг 2. Отключите ERTM (Enhanced Re-Transmission Mode), иначе паринг может не сработать:
echo 'options bluetooth disable_ertm=Y' | sudo tee -a /etc/modprobe.d/bluetooth.confШаг 3. Перезагрузите Raspberry Pi:
sudo rebootШаг 4. Запустите инструмент bluetoothctl:
sudo bluetoothctlВы увидите приглашение вида [Bluetooth]# и информацию о том, что агент зарегистрирован. Введите команды:
agent on
default-agent
scan onВключите контроллер Xbox One и удерживайте кнопку синхронизации (обычно рядом с micro‑USB). Когда кнопка Xbox начнёт мигать, контроллер станет обнаруживаемым. В списке в терминале появится строка вида:
[NEW] Device 5C:BA:37:4D:1D:95 Xbox Wireless ControllerЗапомните или скопируйте MAC-адрес (шесть пар символов, разделённых двоеточиями). Подключитесь командой (здесь и далее используйте ваш адрес):
connect 5C:BA:37:4D:1D:95После успешного подключения выполните команду, чтобы доверить устройство и упростить последующие подключения:
trust 5C:BA:37:4D:1D:95Завершите сеанс bluetoothctl сочетанием Ctrl + D или командой quit.
Как протестировать контроллер
После подключения установите пакет joystick и проверьте показания джойстика:
sudo apt install joystick
sudo jstest /dev/input/js0В терминале откроется окно с перечнем кнопок и осей. При нажатии кнопок и движениях стиков вы должны видеть изменяющиеся значения. Быстрая и корректная реакция означает, что устройство работает.
Критерии приёмки
- Контроллер корректно подключается по USB или беспроводно.
- jstest показывает отклик на все кнопки и оси без постоянных нулевых или зашумлённых значений.
- В эмуляторе можно назначить кнопки и играть без критических задержек.
- После доверия устройства (trust) контроллер автоматически подключается при запуске.
Типичные проблемы и способы их устранения
- Контроллер не обнаруживается по Bluetooth
- Убедитесь, что контроллер поддерживает Bluetooth. Некоторые ранние версии Xbox One использовали только проприетарный радиопротокол.
- Отключите ERTM (команда выше) и перезагрузите Pi.
- Проверьте уровень заряда батарей в контроллере.
- Попробуйте использовать официальный адаптер.
- Контроллер подключается, но кнопки не реагируют в эмуляторе
- Установите xboxdrv и попробуйте запустить его вместо встроенного драйвера.
- Проверьте, что в настройках эмулятора выбрана правильная карта контроллера.
- Периодические отключения по USB
- Используйте активный USB-хаб с собственным питанием. Raspberry Pi может не выдавать достаточно тока для бесперебойной работы.
- Конфликты между xpad и xboxdrv
- Если вы используете xboxdrv, убедитесь, что модуль xpad не мешает. При необходимости заблокируйте загрузку xpad (требует аккуратности и понимания системы).
Быстрая методология диагностики
- Проверка питания и кабеля.
- Подключение по USB — если работает, проблема в беспроводной части.
- Если Bluetooth: отключить ERTM, перезагрузить, проверить bluetoothctl.
- Установить xboxdrv, если эмулятор не видит контроллер.
- Проверить jstest для подтверждения аппаратного ввода.
Таблица совместимости (ориентир)
- Raspberry Pi 1 / Zero: USB-подключение — надёжный вариант. Встроенного Bluetooth нет (Zero W — с Bluetooth).
- Raspberry Pi 2: зависит от версии; лучше использовать USB или адаптер.
- Raspberry Pi 3 и новее: USB, встроенный Bluetooth и адаптер — все варианты возможны.
- Официальный адаптер Xbox Wireless Adapter: совместим с Pi при подключении через USB.
(Эта таблица даёт практическое руководство, но конкретная совместимость зависит от модели контроллера и версии прошивки.)
Чек-лист по ролям
Gamer (игрок):
- Кабель micro‑USB или беспроводной адаптер под рукой.
- Обновлённый Raspbian.
- Установлен joystick для тестирования.
- Настроены профили в RetroPie/Recalbox.
Sysadmin / энтузиаст:
- Проверил модуль xpad и наличие конфликтов с xboxdrv.
- Отключил ERTM для Bluetooth-паринга.
- Настроил trust для автоматического подключения.
- Прописал автозапуск xboxdrv при необходимости.
Альтернативы и когда это не работает
- Если у вас старый беспроводной контроллер Xbox (первых поколений), он может не поддерживать Bluetooth. В этом случае используйте официальный адаптер.
- Если вы видите задержки по беспроводному соединению, переход на USB может решить проблему.
- Для двух игроков и более рассмотрите специализированные USB-контроллеры или проводные версии контроллеров — они проще в настройке.
Безопасность и конфиденциальность
При подключении по Bluetooth вы доверяете устройству на уровне ОС (команда trust). Не доверяйте неизвестные контроллеры и не включайте обнаруживаемость в публичных местах.
Короткая инструкция/плейбук: быстрый порядок действий
- Обновите систему: sudo apt update && sudo apt upgrade.
- Подключите по USB и проверьте jstest.
- Если хотите Bluetooth: отключите ERTM, reboot, sudo bluetoothctl -> agent on, default-agent, scan on -> включите контроллер -> connect
-> trust . - Если эмулятор не видит устройство, попробуйте sudo apt install xboxdrv и настройте xboxdrv.
Итог
Подключение контроллера Xbox One к Raspberry Pi — решаемая задача тремя способами: USB, официальный адаптер и Bluetooth (для Pi 3+). Начните с обновления системы и проверки по USB. Для беспроводного паринга отключите ERTM и используйте bluetoothctl или официальную приемную точку Xbox Wireless Adapter. После подключения подтвердите работоспособность с помощью jstest и настройте профили в вашей ретро-системе.
Важное: если что-то не работает сразу — проверьте питание, версии драйверов и модель контроллера. Часто достаточно переключиться на USB или установить xboxdrv, чтобы вернуть стабильную работу.
Короткое объявление: поддержка контроллеров Xbox One делает Raspberry Pi отличной платформой для ретро‑игр. Подключение доступно как по кабелю, так и беспроводно, а несколько простых команд помогут настроить соединение и проверить устройство.
Похожие материалы
Круговая диаграмма в Excel: создание и настройка
Работа после судимости: как получить второй шанс
Добавление и безопасность ботов в Discord
Отключение SmartScreen в Windows: пошагово
Защитить настольный ПК от кражи и сохранить данные