2009-11-08 48 views
18

我想擁有一個可能已經被插入的隱藏設備的所有權,消耗它的輸出,同時防止其他人(X11或終端)使用它。如何取得隱藏設備的所有權?

如果我能幫上忙,我不想假裝成爲終端,而是要壟斷一個特定的隱藏或字符設備。這個想法是,一些隱藏設備可能會被x /終端識別爲鼠標/鍵盤,但第二個鼠標或鍵盤可能用於其他事情,但要做到這一點,您需要確保它們不會將假輸入發送到開放的終端。

有沒有人有任何見識,如何做到這一點?

回答

22

我已經完成了這項工作 - 我的特定應用程序是一個從USB HID條形碼讀取器(它表現爲USB HID鍵盤設備)讀取事件的守護程序。

爲此,我使用事件設備接口,打開對應於我之後設備的/dev/input/event*設備。然後,您可以在設備上發佈EVIOCGRAB ioctl,該設備抓取專用的設備,並在設備可用時從設備讀取事件(表示按鍵,鼠標移動等)。

(當設備被獨佔使用時,只有您的應用程序會看到它發生的事件)。

+1

工作就像一個魅力。謝謝。 – Catskul 2009-11-09 07:07:33

+1

聽起來就像我需要一個RFID閱讀器,它從標籤中讀取一個10位數字的數字,並將這些信息作爲鍵盤輸入呈現,以便作爲訪問控制設備與Raspberry Pi家庭自動化項目結合使用,而且仍然能夠使用鍵盤/鼠標/顯示器登錄以進行其他(調試)目的。 – SlySven 2016-01-10 03:15:01

+0

有時候我想知道stackexchange是否發送到地球上拯救我們所有人!你的項目是開源的嗎?你介意分享消息來源嗎?我喜歡用自定義打印的QR碼來控制一些東西。 – 2017-01-12 22:49:07