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



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

我是在很晚的时候偶然发现的。

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

cat /proc/bus/input/devices

使用sudo evtest非常有帮助。它将按名称和相应的事件编号列出所有输入设备。然后,您可以输入您感兴趣的设备事件号并监视其事件。

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

此外,我认为这将是有帮助的,所有谁遇到这个页面找到这个有用的链接到一些代码捕获键盘事件。

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

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

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

" mice "包含鼠标输入数据,但要找到与键盘相关的文件,我们需要检查文件夹" 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的休息时间代码的一部分

根据其他提示和一些试验和错误,因为我不是bash向导,这就是我如何使用我的蓝牙控制器的输入,以使用xboxdrv工具。任何其他使用/dev/input/eventXX并显示在cat /proc/bus/input/devices中的情况也可以工作。

#!/bin/bash
event="`sudo cat /proc/bus/input/devices | grep -Poz '("STK-7007F1"[sS]+?)Keventd+'`"
echo $event #event26, for example

您可以使用其他命令来代替echo。"stk - 7007 fi"是我的控制器在运行cat /proc/bus/input/devices时的命名方式。脚本会抛出一个关于空字符的警告,或者一些超出我的linux命令知识的原因,但它工作得很好,即使有它。

grep中的-Poz标志是使用多行正则表达式。K是向后看的有效替代方法。也许有更好的方法,但这就是我想出来的。

至少NTFS-3G禁止这样的名称,因为它们可能会产生问题:

https://github.com/tuxera/ntfs-3g/blob/a4a837025b6ac2b0c44c93e34e22535fe9e95b27/libntfs-3g/unistr.c L1517

从您的fuseblk挂载点判断,您正在使用ntfs-3g挂载这些分区。我还没有充分研究代码,以确定是否有一种方法可以关闭此检查