【问题标题】:What dev do I use to read a USB keyboard in an embedded Linux system?我在嵌入式 Linux 系统中使用什么开发工具来读取 USB 键盘?
【发布时间】:2011-03-23 07:59:47
【问题描述】:

我已编译内核以支持 USB HID 和键盘设备。当我插入 USB 键盘时,内核会识别它,并在我按下同一个键时锁定/解锁 NUMLOCK LED。

我可以创建一个 dev 文件条目,以便我可以从 USB 键盘读取 (cat /dev/input/...) 数据吗?

感谢我可能正在查看扫描代码。

我用鼠标测试了 USB HID,虽然它在控制台上产生了垃圾,但我知道它是使用我找到的信息连接的 here


EDIT-Ignacio

如何将以下内容映射到 dev 条目,具体来说,我在哪里收集次要修订号?

# cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c316 Version=2800
N: Name="Logitech Logitech USB Keyboard"
P: Phys=usb-at91rm9200-1.1/input0
H: Handlers=kbd
B: EV=120003
B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe
B: LED=1f

I: Bus=0003 Vendor=046d Product=c316 Version=2800
N: Name="Logitech Logitech USB Keyboard"
P: Phys=usb-at91rm9200-1.1/input1
H: Handlers=kbd
B: EV=3
B: KEY=9f01 400 40000 401878 d800d508 1e0000 0 0 0

【问题讨论】:

    标签: linux console-application


    【解决方案1】:

    扫描/proc/bus/input/devices 以查找适当的事件设备后,您可以使用MAKEDEV 来创建它(字符、主要编号13、次要编号64+)和access it as usual

    【讨论】:

    • 感谢您的回复,但我有后续问题,我无法在此评论中充分格式化。 (参见 EDIT-Igancio。)
    • 我实际上已经尝试过所有大于 64 的次要设备号:for (( i=64; i<=255; i++)) do; mknod /dev/input/test-$i c 13 $i && cat test-$i,并且对于循环中的每次迭代,我得到:cat: /dev/input/test: No such device
    • 看起来你的内核不支持事件。您需要构建并插入模块或重新构建内核。
    • 活动支持?我不知道它实际上可以在内核中被禁用?我在哪里可以找到该选项? (为什么鼠标还能工作?)
    • 如果您指的是CONFIG_EPOLL 选项,它被设置为"yes"(在“小型系统的常规/配置”中)。
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    相关资源
    最近更新 更多