zoukankan      html  css  js  c++  java
  • udev更改按键映射

    通过更改udev的规则实现敲击a键获得s的输出

    安装evtest


      首先安装evtest检测键盘的扫描码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # apt install evtest
    # sudo evtest
    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0: Power Button
    /dev/input/event1: Lid Switch
    /dev/input/event2: Power Button
    /dev/input/event3: AT Translated Set 2 keyboard
    Select the device event number [0-3]:

    选择device的数字后,敲击a键可以得到一下信息:

    1
    2
    3
    4
    5
    6
    Event: time 1521361797.053598, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e
    Event: time 1521361797.053598, type 1 (EV_KEY), code 30 (KEY_A), value 1
    Event: time 1521361797.053598, SYN_REPORT
    aEvent: time 1521361797.148844, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e
    Event: time 1521361797.148844, type 1 (EV_KEY), code 30 (KEY_A), value 0
    Event 大专栏  udev更改按键映射: time 1521361797.148844, SYN_REPORT

      结果进行了简化,第一个SYN_REPORT代表a键按下,第二个SYN_REPORT代表a键松开,其中可以得到a的扫描码为1e

    修改udev


      使用编辑器编辑udev规则

    1
    # sudo vim /lib/udev/hwdb.d/60-keyboard.hwdb

    在文件最后添加以下几行

    1
    2
    evdev:input:b0011v0001p0001*
    KEYBOARD_KEY_1e=a

      第一行为一系列规则代表匹配的设备,其中evdev:input:代表输入设备,后面为一些ID,在evtest中输入device的数字之后会有一行输出为

    1
    Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab41

    其中’b0011’,’v000v’,’p0001’分别与bus,vendor,product对应,’*’代表了之后的通配符号

      第二行为对设备的映射,行首需要空格否则无效,KEYBOARD_KEY_后跟扫描码,=号右为键值

    更新udev


      使用以下命令更新,需要将event3换为自己输入的数字

    1
    sudo udevadm hwdb --update && sudo udevadm trigger /dev/input/event3
  • 相关阅读:
    WIF基本原理(4)联合身份验证实例
    Open XML应用安全(4)文档校验
    WIF基本原理(5)WIF的功能简介
    Open XML应用安全(3)隐藏数据
    WIF基本原理(3)安全令牌服务
    Open XML应用安全(5)数字签名
    Open XML应用安全(1)宏安全
    WIF基本原理(2)基于声明的标识模型
    搭建基于Android和PhoneGap的开发环境
    定位flash上传出现IO Error #2038的错误
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12262569.html
Copyright © 2011-2022 走看看