2009-11-08 9 views
18

Co chciałbym przejąć na własność ukryte urządzenie, które może być już podłączone, zużywać jego wyjście, jednocześnie uniemożliwiając korzystanie z niego innym (X11 lub terminalowi).Jak możesz przejąć na własność ukryte urządzenie?

Jeśli mogę pomóc, nie chcę udawać, że jestem terminalem, ale raczej zmonopolizować określone urządzenie ukryte lub znakowe. Chodzi o to, że niektóre ukryte urządzenia mogą być rozpoznawane jako myszy/klawiatury przez x/terminal, ale druga mysz lub klawiatura może być użyta do czegoś innego, ale aby to zrobić, musisz upewnić się, że nie wysyłają fałszywych danych wejściowych do otwarty terminal.

Czy ktoś ma wgląd w to, w jaki sposób można to zrobić?

Odpowiedz

22

Zrobiłem to - moją konkretną aplikacją był demon, który odczytywał zdarzenia z czytnika kodów paskowych USB HID (który przedstawia się jako urządzenie klawiatury USB HID).

W tym celu użyłem interfejsu urządzenia zdarzenia, otwierając urządzenie /dev/input/event* odpowiadające urządzeniu, którego szukałem. Następnie można wydać urządzenie ioctl na urządzeniu, które pobiera je do wyłącznego użytku, i odczytywać zdarzenia (które reprezentują naciśnięcia klawiszy, ruchy myszy itp.) Z urządzenia, gdy tylko będą dostępne.

(Gdy urządzenie zostanie pobrane do wyłącznego użytku, tylko aplikacja będzie widzieć zdarzenia z niego).

+1

Pracował jak urok. Dzięki. – Catskul

+1

Brzmi tak, jak potrzebuję czytnika RFID, który odczytuje 10-cyfrowy numer ze znacznika i przedstawia informacje jako dane wejściowe z klawiatury, aby używać go jako urządzenia kontroli dostępu w połączeniu z projektem automatyki domowej Raspberry Pi - i nadal być w stanie zalogować się za pomocą klawiatury/myszy/monitora do innych celów (debugowania). – SlySven

+0

Czasami zastanawiam się, czy stackexchange został wysłany na Ziemię, aby nas wszystkich uratować! Czy twój projekt jest Open source? Czy chcesz udostępnić źródła? Chciałbym kontrolować kilka rzeczy za pomocą niestandardowych drukowanych kodów QR. –

Powiązane problemy