我怎么知道哪个/ dev / input / eventX(X = 0..7)有Linux输入流?

时间:2011-08-09 03:06:43

标签: linux events input

我正在尝试捕获linux键盘/鼠标输入,我正在阅读类似/dev/input/event2的事件。但似乎输入有时指向/dev/input/event2,有时指向/dev/input/event3。我想知道是否有一个地方我可以找出哪个流有输入?

5 个答案:

答案 0 :(得分:66)

偶然发现了这一点 - 当天晚些时候。

您可以使用以下方法查找不同设备的名称和其他属性:

cat /proc/bus/input/devices

答案 1 :(得分:17)

使用evtest非常有帮助。 它可以按名称列出所有输入设备,并允许您监控每个设备的事件。

答案 2 :(得分:11)

要找到答案,请转到/dev/input/by-id/dev/input/by-path并执行操作 ls -l找出哪个符号链接指向哪个event<*>

此外,我认为对于所有遇到此页面的人来说,找到有用的link来捕获键盘事件的代码会很有帮助。

答案 3 :(得分:4)

在终端中运行它,它可以正常工作:

cat /proc/bus/input/devices | awk '/keyboard/{for(a=0;a>=0;a++){getline;{if(/kbd/==1){ print 
$NF;exit 0;}}}}'

Source

答案 4 :(得分:0)

我知道现在回复有点晚了,但是我希望这对朋友有帮助。

“鼠标”包含鼠标输入数据,但是要查找与键盘相关的文件,我们需要检查“ by-path”文件夹中的文件,键盘文件名以“ event-kbd ”结尾”。我们需要找到键盘的链接,然后才能找到键盘事件文件。以下命令可以为我们自动执行此操作:

kbdEvents=($(ls /dev/input/by-path | grep "event-kbd"))     
for forCounter in "${kbdEvents[@]}"
do
    eventFile=$(readlink --canonicalize "/dev/input/by-path/${forCounter}")     
    # do anything ...
done

此代码是我个人网站mazKnez.com

上的休息时间代码的一部分。