デバイスドライバについて学んでいますが、質問があります。キーボードドライバはLinuxの文字デバイスドライバですか?
ベストアンサー1
はい、キーボードドライバは文字デバイスです。これにより:
$ 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
これは文字デバイスであることに注意してください。
デバイスをキャプチャして何かを入力すると、アクティビティが表示されます。
$ 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
- タイプ
- コード(キーを押す)
- 値(押すか離す)