Drivers

鍵盤驅動程序是字元設備驅動程序嗎?

  • July 26, 2020

我正在學習設備驅動程序,我有這個疑問,鍵盤驅動程序是 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
  • 類型
  • 程式碼(按鍵)
  • 價值(按下/發布)

引用自:https://unix.stackexchange.com/questions/600461