我是个 Linux 新手。我想开发一个通过 libusb 与 Sony PS2-Buzzcontrollers 通信的应用程序,但发现 linux 内核已经为该控制器提供了开箱即用的支持
https://github.com/torvalds/linux/blob/master/drivers/hid/hid-sony.c#L302
例如,我可以通过 控制控制器 LED echo 255 | tee /sys/class/leds/*buzz*/brightness
。
我不知道是否还有一种简单的方法来听按键。是否有一个文件/文件夹/无论它们被称为什么,我可能只是tail -f
?
由于我不知道如何调用这些系统公开的接口,因此我很难在网络上搜索我想要的内容。
答案1
通过查看输出,cat /proc/bus/input/devices
我发现它们只是普通的输入设备。
I: Bus=0003 Vendor=054c Product=0002 Version=0111
N: Name="Logitech Logitech Buzz(tm) Controller V1"
P: Phys=usb-0000:00:14.0-4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:054C:0002.0008/input/input29
U: Uniq=
H: Handlers=event12 js0
B: PROP=0
B: EV=13
B: KEY=fffff 0 0 0 0 0 0 0 0 0 0 0
B: MSC=10
所以回答我的问题:一种方法是cat /dev/input/event12
.
为了希望找到更简单的解决方案,我将问题留得更久一些。
对于其他想要更深入地了解这些设备的 Linux 概念的人来说,它们被称为 evdevicses:https://en.wikipedia.org/wiki/Evdev