Come si può assumere la proprietà di un dispositivo HID?
-
18-09-2019 - |
Domanda
Quello che mi piacerebbe assumere la proprietà di un dispositivo HID che potrebbe già essere stato inserito, consumare il suo output, evitando altri (X11 o terminale) dal consumo di esso.
Se posso farne a meno, non voglio far finta di essere un terminale, ma piuttosto di monopolizzare un particolare dispositivo HID o carattere. L'idea è che alcuni dispositivi HID possono essere riconosciuti come mouse / tastiere di x / terminale, ma un secondo mouse o la tastiera potrebbe essere utilizzato per qualcos'altro, ma per fare questo è necessario assicurarsi che essi non sono l'invio di input spurio in un terminale aperto.
Qualcuno ha qualche comprensione quanto a come questo potrebbe essere fatto?
Soluzione
L'ho fatto -. La mia domanda specifica era un demone che leggono gli eventi da un USB HID lettore di codice a barre (che presenta come un dispositivo USB HID tastiera)
Per fare questo ho utilizzato l'interfaccia dispositivo evento, aprendo il dispositivo /dev/input/event*
corrispondente al dispositivo ero dopo. È quindi possibile rilasciare l'ioctl EVIOCGRAB
sul dispositivo, che lo afferra per uso esclusivo, e leggere gli eventi (che rappresentano tasti premuti, i movimenti del mouse, ecc) dal dispositivo non appena saranno disponibili.
(Quando il dispositivo viene afferrato ad uso esclusivo, solo l'applicazione vedrà gli eventi da esso).