如何将两个键盘的输入直接发送到一台计算机上的两个相应终端?

如何将两个键盘的输入直接发送到一台计算机上的两个相应终端?

我想将两个 USB 键盘连接到同一台计算机 (Linux)。然后我想打开 2 个控制台 #1 和 #2,并在每个控制台上执行一个进程。然后我想接收来自控制台#1上键盘#1的输入和来自控制台#2上键盘#2的输入,即每个键盘将输入提交到特定进程。如何才能实现这一目标?假设代码是用 C 编写的。谢谢!

答案1

要让程序从特定键盘读取输入,您可以使其从正确的输入设备读取原始事件。输入设备是(具有典型的 udev 设置) ,您可以通过和/dev/event[0-9]*找出您正在寻找的设备。通过设备标识(供应商和序列号)查找以匹配设备,或通过插入的 USB 端口进行匹配。/dev/input/by-id/*-kbd/dev/input/by-path/*-kbdby-idby-path

您可能需要微调在/dev/*/by-*/.您可以通过运行找到 udev 所拥有的信息udevadm info -a -n /dev/input/event42(如果您有一个报告有关设备的更多信息的程序,您也可以告诉 udev 使用其他程序的输出)。如果您无法区分两个键盘,请查看输出udevadm info以区分特征。您还可以运行udevadm test /class/input/event42来查看 udev 当前正在应用哪些规则。

相关内容