Drivers
鍵盤驅動程序是字元設備驅動程序嗎?
我正在學習設備驅動程序,我有這個疑問,鍵盤驅動程序是 Linux 中的字元設備驅動程序嗎?
是的,鍵盤驅動程序是一個字元設備。如果你這樣做:
$ cat /proc/bus/input/devices
然後你會看到一個設備列表,其中應該是你的鍵盤。這將包括以下內容:
H: Handlers=sysrq kbd event18
從那裡,請參閱
/dev/input/event18
:$ ls -l /dev/input/event18 crw-rw---- 1 root input 13, 82 Jul 9 15:44 /dev/input/event18
請注意,這是一個字元設備。
如果你 cat 那個設備,然後輸入一些東西,你會看到活動:
$ sudo cat /dev/input/event18 ... type something, see the byte stream as characters
有關可以使用這些字節並解釋它們的簡單 Python 腳本,請參閱此連結;我將在這裡重現腳本:
#!/usr/bin/env python3 import struct f = open("/dev/input/event18", "rb"); # Open the file in the read-binary mode while True: data = f.read(24): print(struct.unpack('4IHHI', data))
根據我引用的網站,從左到右的欄位代表:
- 時間戳_INT
- 0
- 時間戳_DEC
- 0
- 類型
- 程式碼(按鍵)
- 價值(按下/發布)