キーボードドライバは文字デバイスドライバですか?

キーボードドライバは文字デバイスドライバですか?

デバイスドライバについて学んでいますが、質問があります。キーボードドライバは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
  • タイプ
  • コード(キーを押す)
  • 値(押すか離す)

おすすめ記事