2009-11-08 10 views
18

Quello che mi piacerebbe prendere possesso di un dispositivo nascosto che potrebbe essere già stato collegato, consumare la sua uscita, mentre impedisce ad altri (X11 o terminale) di consumarlo.Come si può diventare proprietari di un dispositivo nascosto?

Se posso aiutarlo, non voglio fingere di essere un terminale, ma piuttosto di monopolizzare un particolare dispositivo nascosto o di carattere. L'idea è che alcuni dispositivi nascosti possono essere riconosciuti come mouse/tastiere da x/terminal, ma un secondo mouse o tastiera potrebbe essere usato per qualcos'altro, ma per far ciò è necessario assicurarsi che non stiano inviando input spuri in un terminale aperto.

Qualcuno ha qualche idea su come questo potrebbe essere fatto?

risposta

22

Ho fatto questo - la mia specifica applicazione era un demone che legge gli eventi da un lettore di codici a barre HID USB (che si presenta come un dispositivo USB HID con tastiera).

Per fare ciò ho utilizzato l'interfaccia del dispositivo evento, aprendo il dispositivo /dev/input/event* corrispondente al dispositivo che cercavo. È quindi possibile rilasciare il dispositivo ioctl EVIOCGRAB sul dispositivo, che lo acquisisce per uso esclusivo e leggere gli eventi (che rappresentano pressioni di tasti, movimenti del mouse, ecc.) Dal dispositivo non appena diventano disponibili.

(Quando il dispositivo viene afferrato per l'uso esclusivo, solo l'applicazione vedrà gli eventi da esso).

+1

Ha funzionato come un fascino. Grazie. – Catskul

+1

Sembra proprio quello di cui ho bisogno per un lettore RFID che legge un numero di 10 cifre da un tag e presenta le informazioni come input da tastiera in modo da utilizzarlo come dispositivo di controllo degli accessi in combinazione con un progetto di automazione della casa Raspberry Pi - e ancora essere in grado di accedere con una tastiera/mouse/monitor per altri scopi (debug). – SlySven

+0

A volte mi chiedo se lo stackexchange sia stato inviato sulla Terra per salvarci tutti! Il tuo progetto è open source? Ti dispiace condividere le fonti? Mi piace controllare alcune cose usando codici QR stampati personalizzati. –

Problemi correlati