代码之家  ›  专栏  ›  技术社区  ›  Igor Liferenko

HID扫描码如何映射到evdev代码?

  •  0
  • Igor Liferenko  · 技术社区  · 6 年前

    要发送字母“a”,HID设备会发送以下扫描代码: 00 00 04 00 00 00 00 00

    与字符“a”对应的值为 <AC01> (发现于 /usr/share/X11/xkb/symbols/us ). 根据 /usr/share/X11/xkb/keycodes/evdev , < 按按钮代码映射到 38

    evtest /dev/input/event# 显示代码 30 . 为什么?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Igor Liferenko    6 年前

    键入代码 /usr/share/X11/xkb/keycodes/evdev 钥匙码来自 evtest +8(见 MIN_KEYCODE 在里面 evdev.c

    这是如何找到与给定键码对应的扫描码:

    https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07

    注:除键码外,还使用扫描码,原因如下:

    Linux内部事件子系统定义了一组独立于硬件的标准键代码,能够表示来自任何类型的键盘(无论是AT、XT还是USB)的任何扫描代码。根据常见的美国ASCII密钥帽标签,为密钥代码分配了名称。键代码在中定义 /usr/include/linux/input-event-codes.h . 举个例子 #define KEY_A 30 .