Является ли драйвер клавиатуры драйвером символьного устройства?

Установите LD _LIBRARY _PATH, чтобы он указывал на расположение локальной библиотеки:

экспорт LD _БИБЛИОТЕКА _ПУТЬ= ~/lib

0
26.07.2020, 22:16
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
  • Отметка времени _ДЕК
  • 0
  • тип
  • код (нажата клавиша)
  • значение (нажать/отпустить)
1
18.03.2021, 23:17

Теги

Похожие вопросы