2011-11-21 28 views
1

我有Qt Embedded 4.7.4在ARM系統上工作,以便在觸摸屏上顯示圖形應用程序。對於ts​​lib和framebuffer,一切都很好,沒有關於顯示器和觸摸屏的問題。Qt Embedded 4.7.4:無法管理USB鍵盤(使用TTY)

但我也想能夠使用USB鍵盤找到我的方式通過應用程序。我已經有一個連接到我的ARM系統的鍵盤,這很好。它的驅動程序是一個基本的tty驅動程序,我可以通過讀取/ dev/tty0來讀取我輸入的信息。

所以我認爲Qt可以通過導出QWS_KEYBOARD =/dev/tty0來做同樣的事情;我嘗試了很多東西,但似乎沒有任何工作。 Qt沒有檢測到任何事件;我嘗試了另一件事,因爲我看到我的鍵盤事件也發送到/ dev/event1。所以我輸出QWS_KEYBOARD = TTY:/ dev/event1,這次Qt檢測到一些輸入。但他們並不好,事實上即使我沒有按任何鍵,也有所有時間輸入。

你有什麼想法嗎?也許原因是/ dev/tty0有一個緩衝區,而這無法正常工作?

回答

1

今天我面臨類似的問題,儘管採用了英特爾凌動處理器。我的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 

這對我很有用。

希望這有助於...