【发布时间】:2015-09-18 15:35:52
【问题描述】:
我有一个在 BeagleBone Black 上运行的经过交叉编译的嵌入式 Qt 应用程序。它工作正常,但有一件事 - 如果我不直接在 BeagleBone Black 上运行,它不接受键盘输入,前面有 sudo。这是一个问题,因为:
- 我无法远程调试应用程序并使用连接的键盘,因为它不起作用,
- 当应用程序位于
rc.local文件中以在启动时启动时,我无法使用键盘(即使在那里使用了sudo)。
目前这对我来说很重要,我很长时间都找不到解决问题的方法。对于这方面的所有帮助,我真的很感激。
我的/etc/enviroment 内容在这里:
QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mouse0
QWS_KEYBOARD=LinuxInput:/dev/tty
TSLIB_CONFFILE=/etc/ts.conf
TSLIB_PLUGINDIR=/usr/lib/ts
虽然我已经为QWS_KEYBOARD 尝试了许多不同的配置。我想使用的键盘是/dev/input/event1。
【问题讨论】:
-
然后检查 /dev/input/event1 的权限?
-
crwxrwxrwx 1 root root 13, 65 Mar 1 21:45 event1 -
您需要 Qt 的调试版本,并且您需要跟踪平台代码以找出键盘访问失败的原因。这可能是一个非常简单的问题来解决。我不明白为什么如果键盘不起作用,远程调试将不起作用。您从主机而不是目标控制调试器。
-
我不是这个意思。只有当我在板上运行应用程序并输入
sudo ./myapp -qws时,键盘才能工作。如果我使用远程 pc 上的 ssh 远程调试或运行同一行,它们的键盘将不起作用。我可以按键盘键,但它们没有在应用程序中注册,而是在应用程序后面进入控制台(没有 x 服务器)。我不知道如何解决这个问题。最大的问题是,当我从rc.local' usingsudo ./myapp -qws` 运行应用程序时,键盘也无法正常工作......如果应用程序看不到它,我该如何调试键盘输入? -
我会在 myapp 上运行 strace,然后看看它对 /dev/input/event1 做了什么。
标签: c++ linux qt keyboard beagleboneblack