【问题标题】:Qt Embedded 4.7.4 : unable to manage USB keyboard (using TTY)Qt Embedded 4.7.4:无法管理 USB 键盘(使用 TTY)
【发布时间】:2011-12-16 02:54:11
【问题描述】:

我在 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 无法工作?

【问题讨论】:

    标签: qt keyboard arm


    【解决方案1】:

    我今天遇到了类似的问题,尽管是使用 Intel Atom 处理器。我的 linux 发行版是ptxdist。我注意到插入 USB 键盘会在 /dev/input 中创建两个 event* 条目,其中只有一个产生了有用的输入。使用udevadm,我发现它们的属性字段略有不同,因此我可以找到正确的。我的 udev 规则归结为

    KERNEL=="event*", SUBSYSTEM=="input", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceClass}=="03", SYMLINK+="keyboard"
    

    创建符号链接/dev/keyboard 到正确的设备。为了使用这个设备,我使用了

    export QWS_KEYBOARD=LinuxInput:/dev/keyboard
    

    这对我有用。

    希望这会有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      相关资源
      最近更新 更多