You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04.1 LTS下移除/dev/input/js0-js3虚拟手柄设备的求助

Ubuntu 22.04.1 LTS下移除/dev/input/js0-js3虚拟手柄设备的求助

嗨,我最近在做项目的时候碰到了一堆SFML相关的报错,具体内容如下:

Unable to get name for joystick /dev/input/js0
Failed to get vendor ID of joystick /dev/input/js0
Failed to get product ID of joystick /dev/input/js0
Unable to get name for joystick /dev/input/js1
Failed to get vendor ID of joystick /dev/input/js1
Failed to get product ID of joystick /dev/input/js1
Unable to get name for joystick /dev/input/js2
Failed to get vendor ID of joystick /dev/input/js2
Failed to get product ID of joystick /dev/input/js2
Unable to get name for joystick /dev/input/js3
Failed to get vendor ID of joystick /dev/input/js3
Failed to get product ID of joystick /dev/input/js3

这些报错对应的是/dev/input下的js0到js3这几个手柄设备,我查了/proc/bus/input/devices文件,发现它们是虚拟的Xbox 360无线接收器设备,相关内容截取如下:

...
I: Bus=0003 Vendor=045e Product=0719 Version=0100
N: Name="Xbox 360 Wireless Receiver"
P: Phys=
S: Sysfs=/devices/virtual/input/input26
U: Uniq=
H: Handlers=event15 js0
B: PROP=0
B: EV=b
B: KEY=f 0 0 0 0 0 0 7fdb000000000000 0 0 0 0
B: ABS=1b

I: Bus=0003 Vendor=045e Product=0719 Version=0100
N: Name="Xbox 360 Wireless Receiver"
P: Phys=
S: Sysfs=/devices/virtual/input/input27
U: Uniq=
H: Handlers=event16 js1
B: PROP=0
B: EV=b
B: KEY=f 0 0 0 0 0 0 7fdb000000000000 0 0 0 0
B: ABS=1b

I: Bus=0003 Vendor=045e Product=0719 Version=0100
N: Name="Xbox 360 Wireless Receiver"
P: Phys=
S: Sysfs=/devices/virtual/input/input28
U: Uniq=
H: Handlers=event17 js2
B: PROP=0
B: EV=b
B: KEY=f 0 0 0 0 0 0 7fdb000000000000 0 0 0 0
B: ABS=1b

I: Bus=0003 Vendor=045e Product=0719 Version=0100
N: Name="Xbox 360 Wireless Receiver"
P: Phys=
S: Sysfs=/devices/virtual/input/input29
U: Uniq=
H: Handlers=event18 js3
B: PROP=0
B: EV=b
B: KEY=f 0 0 0 0 0 0 7fdb000000000000 0 0 0 0
B: ABS=1b
...

但这个/proc下的文件是只读的,根本没法编辑。我自己已经试过两个方法都没解决:

  • 直接删除/dev/input下的js0-3文件,结果报错还是存在,后来我还手动新建了空的js0-3文件,也没用
  • 尝试编辑/proc/bus/input/devices文件,因为是只读的完全改不了

现在想问问大家,我该怎么彻底移除这些虚拟手柄设备呢?我用的是Ubuntu 22.04.1 LTS系统。


可能的解决方案

  • 临时移除设备(重启后恢复):这些设备是由xpad驱动模块生成的,你可以先卸载这个模块试试:

    sudo rmmod xpad
    

    如果提示模块被占用无法卸载,用强制卸载命令:

    sudo rmmod -f xpad
    

    执行完后去/dev/input目录看看,js0-3应该就消失了,对应的报错也会解决。

  • 永久禁用这些设备:如果不想每次开机都手动卸载驱动,可以把xpad加入黑名单,让系统不再自动加载它:

    1. 打开黑名单配置文件:
      sudo nano /etc/modprobe.d/blacklist.conf
      
    2. 在文件末尾添加一行:
      blacklist xpad
      
    3. 保存退出后,更新initramfs:
      sudo update-initramfs -u
      
    4. 重启系统后,这些虚拟手柄设备就不会再生成了。
  • 清理手动创建的空文件:之前你手动新建的空js0-3文件可以删掉,因为/dev目录下的设备文件是系统自动管理的,手动创建的空文件可能会干扰正常识别,执行命令删除:

    sudo rm /dev/input/js0 /dev/input/js1 /dev/input/js2 /dev/input/js3
    

备注:内容来源于stack exchange,提问作者C0sM1n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:19:08