Ubuntu 24.04(内核6.8.0-36-generic x86_64)下全类型手柄映射异常问题求助
老哥,你这情况太闹心了——不管是有线/蓝牙的Switch手柄、JoyCon还是Xbox手柄全出问题,右摇杆没反应、按键乱飘、肩键失灵,而且之前都好好的,就是清了NVIDIA驱动之后才炸的,还连带搞坏过WiFi,这十有八九是清驱动的时候顺带把系统里管输入设备的组件给误删了,或者配置被冲乱了。我给你整理了几个排查修复的步骤,你一步步来试:
先把输入设备相关的核心组件补一遍
你之前purge NVIDIA的时候,可能顺带删掉了一些依赖的系统库,其中就可能包含手柄驱动相关的包。打开终端,运行下面的命令把常用的输入设备组件装一遍(如果已经装了会提示是最新版本,不用管):sudo apt install xserver-xorg-input-all joystick jstest-gtk xboxdrv给你简单说下这些包的作用:
xserver-xorg-input-all是Xorg的全输入驱动集合,能覆盖大部分输入设备;joystick和jstest-gtk是用来检测和测试手柄的工具;xboxdrv本来是Xbox手柄的适配驱动,但对Switch手柄也有兼容加成。先确认系统能正常识别手柄硬件
先排除手柄本身硬件故障,看看系统能不能正确读取手柄的原始输入。先运行:ls /dev/input/js*这个命令会列出系统识别到的所有手柄节点,一般是
js0、js1这类。然后选其中一个节点(比如第一个手柄是js0),运行测试命令:jstest /dev/input/js0打开测试界面后,你按手柄的按键、推摇杆,看终端里的数值有没有实时变化——如果数值能正常对应你的操作,说明硬件识别没问题,是上层的映射配置出了问题;如果数值没反应,那就是驱动没装对,得先解决驱动识别的问题。
重置手柄的Xorg配置文件
有时候系统的输入配置会因为组件被删改而错乱,你可以试试重置相关的配置:- 先备份现有配置(以防万一,改坏了还能还原):
sudo cp /usr/share/X11/xorg.conf.d/50-joystick.conf /usr/share/X11/xorg.conf.d/50-joystick.conf.bak - 然后重新生成默认的手柄配置:
sudo dpkg-reconfigure xserver-xorg-input-joystick
做完这两步后,重启下系统,再试试手柄能不能正常用。
- 先备份现有配置(以防万一,改坏了还能还原):
蓝牙手柄额外检查:蓝牙服务状态
如果你用的是蓝牙手柄,还要确认系统的蓝牙服务正常运行。运行:systemctl status bluetooth如果显示的状态不是
active (running),就重启蓝牙服务:sudo systemctl restart bluetooth另外,Ubuntu 24.04的蓝牙有时候会因为内核更新出小问题,你可以试试删除之前的蓝牙配对记录,重新和手柄配对一次。
Switch手柄专属适配:装Steam输入组件
Switch手柄(包括JoyCon)在Linux下本来就需要一点额外的适配,你可以装steam-devices包——这是Steam的输入设备组件,即使你不用Steam玩游戏,装了这个包也能自动修复Switch手柄的映射问题:sudo apt install steam-devices装完后重启系统,再试试JoyCon或者Pro手柄。
备注:内容来源于stack exchange,提问作者spaced




