Qt Embedded 4.7.4:无法管理 USB 键盘(使用 TTY)
我在 ARM 系统上运行 Qt Embedded 4.7.4,以便在触摸屏上显示图形应用程序。 tslib 和framebuffer 一切都工作得很好,显示器和触摸屏没有问题。
但我还希望能够使用 USB 键盘来找到我的应用程序。我已经有一个连接到我的 ARM 系统的键盘,效果很好。它的驱动程序是一个基本的 tty 驱动程序,我可以通过读取 /dev/tty0 来读取我键入的信息
所以我认为 Qt 也可以通过导出 QWS_KEYBOARD=/dev/tty0 来执行相同的操作;我尝试了很多东西,但似乎没有任何效果。 Qt 没有检测到任何事件;我尝试了另一件事,因为我看到我的键盘事件也发送到/dev/event1。所以我导出 QWS_KEYBOARD=TTY:/dev/event1 ,这次 Qt 检测到了一些输入。但它们并不好,事实上,即使我不按任何键,也一直有输入。
你有什么想法吗?也许原因是 /dev/tty0 有一个缓冲区,这使得 Qt 无法工作?
I have Qt Embedded 4.7.4 working on an ARM system, in order to display graphics application on a touchscreen. Everything works pretty good with tslib and framebuffer, no problem concerning the display and the touchscreen.
But I would also like to be able to use an USB Keyboard to find my way through the application. I already have a keyboard linked to my ARM system, that works great. Its driver is a basic tty driver, I can read the information I typed by reading /dev/tty0
So I thought Qt would be able to do the same, by exporting QWS_KEYBOARD=/dev/tty0 ; I tryed many things but nothing seems to work. Qt doesn't detect any events ; I tried another thing, 'cause I saw that my keyboard events were also send to /dev/event1. So I export QWS_KEYBOARD=TTY:/dev/event1 and this time Qt detected some inputs. But they are not good, in fact there is all the time inputs even if I don't press any key.
Do you have any idea ? Maybe the reason is that /dev/tty0 has a buffer, and this unable Qt to work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我今天遇到了类似的问题,尽管使用的是英特尔凌动处理器。我的 Linux 发行版是 ptxdist。我注意到插入 USB 键盘会在
/dev/input
中创建两个event*
条目,并且只有其中一个产生有用的输入。使用 udevadm ,我发现它们的属性字段略有不同,因此我可以找到正确的字段。我的 udev 规则归结为创建一个指向正确设备的符号链接
/dev/keyboard
。为了使用这个设备,我使用了适合我的设备。
希望这有帮助...
I faced a similar problem today, albeit with an Intel Atom processor. My linux distribution is ptxdist. I noticed that plugging in a USB keyboard creates two
event*
entries in/dev/input
and only one of them yielded useful input. Usingudevadm
, I figured out that they differ slightly in their attribute fields, so that I could find the right one. My udev rule boils down towhich creates a symlink
/dev/keyboard
to the correct device. To use this device, I usedwhich works for me.
Hope this helps...