当前设置

当前设置

我正在尝试设置皮斯特罗莫这样我就可以重新映射我的Belkin N52TE 游戏手柄

Pystromo 基本上会捕获按键,然后将重新映射的按键输出到 uinput 设备。但是,目前它只是吞下输入,什么也不输出。

我已将问题追溯到我的 uinput 设备出了问题,其确凿证据如下:

# ls -l /dev/input/uinput
crw-rw---- 1 root plugdev 10, 223 Dec 31  2009 /dev/input/uinput
# cat /dev/input/uinput
cat: /dev/input/uinput: No such device

uinput 模块已加载,可以通过 清楚看到lsmod。有人见过这种情况吗,或者能想到值得尝试的方法吗?

当前设置

  • Gentoo Linux
  • 内核 2.6.32(Gentoo 源 2.6.32-r1)
  • HP DV7 笔记本

输出

消息

dmesg | grep uinput什么都不做,如果我运行,也不会出现新行modprobe -r uinput && modprobe uinput。然而,运行 lsmod 时可以清楚地看到 uinput 模块:

# lsmod | grep uinput
uinput                  6200  0

系统盘

# lsusb
Bus 005 Device 003: ID 050d:0200 Belkin Components
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 1532:0101 Razer USA, Ltd
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 5986:0143 Acer, Inc
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 03f0:171d Hewlett-Packard Wireless (Bluetooth + WLAN) Interface [Integrated Module]
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb-v

粘贴箱

更新

嗯,更新 evdev 和 hal 似乎已部分修复该问题。/dev/input/uinput 仍然无法访问,但 Pystromo 现已成功重新映射键。

我对这里发生的事情有点困惑,但似乎我对这一切如何运作的理解是有缺陷的。

由于我已经发布了悬赏,因此我将把这个留在这里,以便有人能够发布关于用户空间输入设备在后台如何工作的解释。

答案1

您不应该从 uinput 读取,因为 uinput 用于创建用户空间设备并向它们发送事件,所以该No such device消息是正常的。

我认为这要么是一个简单的权限问题,要么是 uinput 设备本身位置的变化(即预期是 /dev/uinput,但它在 /dev/input/uinput 中),这两个问题在 Ubuntu 中都已经发生了变化,因此预期旧行为的程序可能会感到困惑。

相关内容