需先确保蓝牙服务运行、hci0为UP RUNNING,再通过控制中心配对,若无响应则用Blueman信任连接并执行bluez-test-input强制绑定HID profile,最后用jstest-gtk验证输入生效。

在统信UOS系统中连接游戏手柄并实际用于游玩Steam或Lutris中的游戏,需先确保手柄被系统识别为输入设备,再完成配对绑定与HID profile激活;若仅显示为蓝牙设备但无按键响应,说明底层uinput模块未加载或profile未切换成功。
确认蓝牙服务就绪并启用HCI控制器
这一步是所有后续操作的基础。若bluez服务未运行、hci0被软封锁或未UP,手柄连扫描都不可见,更谈不上输入响应。
按Ctrl+Alt+T打开终端,执行systemctl status bluetooth,确认输出中包含active (running)。
若状态非运行中,依次执行:sudo systemctl start bluetooth → sudo systemctl enable bluetooth。
执行rfkill list,检查Bluetooth条目下Soft blocked是否为yes;若为yes,执行sudo rfkill unblock bluetooth后再重启服务:sudo systemctl restart bluetooth。
执行hciconfig -a,确认出现hci0且其状态为UP RUNNING。【若无hci0或状态为DOWN,请先排查硬件开关、Fn快捷键或BIOS中蓝牙是否被禁用】
通过控制中心完成标准蓝牙配对
该方法适用于Xbox Wireless Controller、PS4 DualShock 4、Nintendo Switch Pro Controller等主流手柄,路径最直观,但依赖原生蓝牙模块兼容性。
点击屏幕右下角任务栏中的控制中心图标,进入控制中心面板首页。
在左侧功能列表中点击“蓝牙”,确保顶部开关已开启;若开关灰色不可点,需进入“设备管理器”确认蓝牙硬件是否被识别。
将手柄置于配对模式:关机状态下长按配对键(Xbox手柄为小圆点、PS4为中央触控板+共享键、Switch Pro为顶部小圆点)5–10秒,直至指示灯红蓝交替快闪或白色双闪。
点击控制中心蓝牙界面中的“刷新设备”按钮,等待3–5秒,观察“其他设备”列表是否出现设备名称(如“Xbox Wireless Controller”“Wireless Controller”)。
在列表中点击对应设备名称,系统弹出配对请求窗口;若提示输入PIN码,统一输入0000或1234,点击确认。
使用Blueman强制绑定HID profile
当控制中心配对成功但手柄无按键响应、jstest-gtk检测不到轴/按钮时,大概率是BlueZ未自动切换至HID profile——这是UOS常见问题,必须手动干预。
方法一:安装并启动Blueman管理器
终端执行sudo apt install blueman,安装完成后在启动器中搜索并打开“Bluetooth Manager”。
在Blueman主界面左下角点击“搜索”按钮,确保手柄处于红蓝快闪配对态。
扫描结束后,在设备列表中右键目标手柄 → 选择“配对”,顶部通知栏弹出确认窗口后点击“确认”。
配对成功后,再次右键该设备 → 选择“信任”,然后右键 → “连接”。此时若仍无响应,进入下一步。
方法二:手动加载uinput并绑定HID profile
终端执行sudo modprobe uinput,确保内核支持用户空间输入设备模拟。
执行sudo apt install bluez-tools,安装底层调试工具。
运行sudo bluez-test-input --connect XX:XX:XX:XX:XX:XX(将XX部分替换为手柄MAC地址),强制绑定HID profile。【此命令必须在配对完成后立即执行,否则bluez会回落至通用SPP profile,导致按键失效】
验证手柄输入是否生效
打开终端,执行jstest-gtk,若未安装则先运行sudo apt install joystick。
启动后点击“刷新”按钮,查看设备列表中是否出现手柄名称;选中后晃动摇杆、按下按键,观察对应轴值与按钮状态是否实时变化。
若jstest-gtk中无设备,说明uinput未加载或profile未绑定成功,返回上一节重试bluez-test-input命令。
若jstest-gtk中能识别但Steam游戏内无响应,进入Steam → Settings → Controller → General Controller Settings,勾选“Enable Steam Input”,并确保“Xbox Configuration Support”已启用。











