Ubuntu
來自 bash 腳本的 Ubuntu 鍵盤檢測
請原諒我對 linux 作業系統/硬體問題的無知…我只是一個程序員 :)
我有一個應用程序呼叫一些 bash 腳本來啟動外部應用程序,在本例中為 Firefox。該應用程序在具有觸摸屏功能的資訊亭上執行。在啟動 Firefox 時,我還啟動了一個虛擬鍵盤應用程序,允許使用者進行鍵盤輸入。
然而,資訊亭也有 PS/2 和 USB 插槽,允許使用者插入鍵盤。如果插入了鍵盤,如果我不必啟動虛擬鍵盤並為 Firefox 視窗提供更多螢幕空間,那就太好了。
有沒有辦法讓我檢測是否從 bash 腳本插入了鍵盤?它會出現在 /dev 中嗎?如果是,它會出現在一致的位置嗎?如果使用者使用 PS/2 或 USB 鍵盤會有所不同嗎?
謝謝!
對於 USB 設備,您可以使用
lsusb
並蒐索具有鍵盤協議(介面協議 1)的人機介面設備(介面類 3),例如$ lsusb -v ... loads of stuff deleted ... Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 ... loads of stuff deleted ...
此外,你可以讓
udev
幫助你。列出下面的設備/dev/input/by-path/
和鍵盤設備-kdb
(至少在 Ubuntu 中,其中 udev 規則指定它),例如$ ls -l /dev/input/by-path/*-kbd lrwxrwxrwx 1 root root 9 2010-03-25 09:14 /dev/input/by-path/pci-0000:00:1a.2-usb-0:1:1.0-event-kbd -> ../event4 $ ls -l /dev/input/by-path/*-kbd lrwxrwxrwx 1 root root 9 2009-08-29 09:46 /dev/input/by-path/platform-i8042-serio-0-event-kbd -> ../event1