linux 键盘过滤,linux – 需要拦截HID Keyboard事件(然后阻止它们)

我有一个RFID USB设备,注册为HID设备(A USB键盘或多或少).

我正在寻找一种方法来捕获此输入,并在它碰到普通键盘事件处理程序(并将10位数的RFID代码输出到控制台)之前对其进行阻塞/过滤.

我当然必须专门捕获这个设备,并且将真正的键盘输入单独留下(或传递给它).

我最初的想法是在UDEV中阻止设备(所以usbhid / event / kbd内核模块没有绑定到它),并为这个设备编写自己的基本驱动程序 – 但是我不知道从哪里开始,甚至会工作

什么是伟大的(我不知道这样的事情可以做到) – 是如果我写一个事件过滤器模块,可以与事件驱动程序保持一致,并捕获(然后过滤)适当的输入从RFID单元,但让其他一切通过.我想象这样一个模块不需要太多的代码,这将是最实际的.

帮帮我?

[编辑:我应该补充说,Xorg没有安装 – 仅控制台]

cat /proc/bus/input:

I: Bus=0003 Vendor=0419 Product=0912 Version=0100

N: Name="NewRoad Sem. NewRoad System PS2 Interface"

P: Phys=usb-0000:00:1d.3-2/input0

S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/input/input20

U: Uniq=

H: Handlers=sysrq kbd mouse0 event3

B: PROP=0

B: EV=120017

B: KEY=70000 0 0 e080ffdf01cfffff fffffffffffffffe

B: REL=103

B: MSC=10

B: LED=1f

更多信息:

lsusb -d 0419:0912 -v

Bus 005 Device 019: ID 0419:0912 Samsung Info. Systems America, Inc.

Device Descriptor:

bLength 18

bDescriptorType 1

bcdUSB 1.00

bDeviceClass 0 (Defined at Interface level)

bDeviceSubClass 0

bDeviceProtocol 0

bMaxPacketSize0 8

idVendor 0x0419 Samsung Info. Systems America, Inc.

idProduct 0x0912

bcdDevice 0.01

iManufacturer 1 NewRoad Sem.

iProduct 2 NewRoad System PS2 Interface

iSerial 0

bNumConfigurations 1

Configuration Descriptor:

bLength 9

bDescriptorType 2

wTotalLength 34

bNumInterfaces 1

bConfigurationValue 1

iConfiguration 4

bmAttributes 0xa0

(Bus Powered)

Remote Wakeup

MaxPower 100mA

Interface Descriptor:

bLength 9

bDescriptorType 4

bInterfaceNumber 0

bAlternateSetting 0

bNumEndpoints 1

bInterfaceClass 3 Human Interface Device

bInterfaceSubClass 1 Boot Interface Subclass

bInterfaceProtocol 1 Keyboard

iInterface 5

HID Device Descriptor:

bLength 9

bDescriptorType 33

bcdHID 1.00

bCountryCode 0 Not supported

bNumDescriptors 1

bDescriptorType 34 Report

wDescriptorLength 119

Report Descriptors:

** UNAVAILABLE **

Endpoint Descriptor:

bLength 7

bDescriptorType 5

bEndpointAddress 0x81 EP 1 IN

bmAttributes 3

Transfer Type Interrupt

Synch Type None

Usage Type Data

wMaxPacketSize 0x0008 1x 8 bytes

bInterval 10

Device Status: 0x0000

(Bus Powered)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鱼c论坛python课后作业_三日速成python?打工人,小心钱包,别当韭菜

随着人工智能的热度越来越高,许多非计算机专业的同学们也都纷纷投入到学习编程的道路上来。而Python,作为一种相对比较容易上手的语言,也越来越受欢迎。网络上各类网课层出不穷,各式广告令人眼花缭乱。某些课程甚至卖出“天价”&a…

Linux shell的输入输出

echo --echo命令可以显示文本行或变量,或者把字符串输入到文件 --echo [option] string-e 解析转义字符 例如:echo -e "nimenhao\nasfdsaf" 打印发生换行-n 回车不换行 详解:一般在命令行打印字符串,光标会…

区块链共识算法的发展现状与展望

来源:平行区块链摘 要 共识算法是区块链技术的核心要素, 也是近年来分布式系统研究的热点. 本文系统性地梳理和讨论了区块链发展过程中的 32 种重要共识算法, 介绍了传统分布式一致性算法以及分布式共识领域的里程碑式的重要研究和结论, 提出了区块链共识算法的一种…

python预测发展趋势_Python中的趋势“预测器”?

对于预测时间序列数据,我觉得最好的选择是LSTM,它是一种递归神经网络,非常适合于时间序列回归。在如果您不想深入研究神经网络的后端,我建议您使用Keras库,它是Tensorflow框架的包装器。在假设你有一个一维数组&#x…

iphone打字怎么换行_iPhone电池保养指南

虽然手机电池的使用寿命会随着用户的日常使用慢慢减少、但需要注意的是、一些不恰当的操作方法,会导致电池寿命快速下降。这时候会有人说,那我可以换电池呀虽然换电池之后,一开始确实还可以,但是随着不恰当的使用,又开…

vc2017 linux printf,C/C++中自定义信息输出——printf与宏的配合使用

在C/C中,提起“宏”多少有些皱眉,至少我在入门C时旁人好心提醒:尽可能地使用typedef与const常量定义来替代“宏”的使用:1. 类型宏定义#define HANLE void*//可以替换为:typedef void *HANLE;2. 常量定义#define MAX_L…

SVN需要忽略的文件类型

自己在用的,有问题的话欢迎指正,直接复制粘贴即可。(一般人我都不告诉他) *.lo,*.la,*.al,*.so,*.so.[0-9]*,*.pyc,*.pyo,*.rej,.*.swp,.DS_Store,*.xcscmblueprint,xcuserdata,*.xcuserdatad,*.xcuserstate,*.xcuserdata,xcschem…

这是我看过,最好懂的神经网络

来源:图灵教育猜一猜,下图中是什么动物?图1 看图猜动物尽管图中的动物胖得出奇,你也应该能够猜到它是一只长颈鹿。人类的大脑拥有强大的辨识能力,它是一个由差不多 800 亿个神经元组成的复杂网络。即使某物并非我们熟知…

python atm作业详解_Python学习day5作业-ATM和购物商城

Python学习day5作业Python学习day5作业ATM和购物商城作业需求ATM:指定最大透支额度可取款定期还款(每月指定日期还款,如15号)可存款定期出账单支持多用户登陆,用户间转帐支持多用户管理员可添加账户、指定用户额度、冻结用户等购物车&#xf…

linux咋socket编程,linux中socket编程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼客户端:include #include #include #include #include #include #include #include #include #define SERVPORT 1234#define MAXDATASIZE 1000 /**/ int main(int argc, char *argv[]){int sockfd, recvbytes;int clien…

redis 简单应用

Incr $views Redis::incr(views); $article_views Redis::incr(article: . $article_id . :views); zIncrBy 有序集合 Sorted sets public function set($id){Redis::zIncrBy(articleViews, 1, article:.$id);}public function get(){$hots Redis::zRevRange(articleViews…

上位机软件用什么写的_python7天训练营 | 为什么大家都开始用python写论文了?...

谈及保研,“内卷”被大家吵得沸沸扬扬。但其实,不仅是夏令营申请竞争、推免资格评比等环节,就连最基本的论文,也开始卷了起来。就以大家最常写的实证类论文为例:前两年,很多社科和经管的学科,夏…

美国如何发展脑科技

来源:蓝海长青智库作者:王小理、韩雪、薛淮大脑是理解自然和人类本身的“终极疆域”,脑科技是科研领域“皇冠上的明珠”。相比欧洲“人类脑计划”的迟缓,美国“推进创新神经技术脑研究计划”(BRAIN)进展颇为…

python 类初始化参数校验_如何规避python参数的初始化次数?

我们在内存不足的时候,除了增加内存的可用度,可以进行一个清理内存的初始化操作,当然这种是最后迫不得已的选择。我们在python中也有需要用到初始化的地方,鉴于参数和函数的关系密不可分,本篇我们会简单的说一下参数的…

spring版本 jdk8_从JDK8升级到JDK11,看这篇就足够了

原文地址:https://blog.codefx.org/java/java-11-migration-guide/。 在原文的基础上,增加了一些我遇到的具体的坑还有在特定场景下的解决方案,供大家参考一些背景在背景知识,我们会讨论一些关于新的JDK Release周期,O…

关于mysql ERROR 1045 (28000)错误的解决办法

错误情景: 使用Navicat打开mysql的时候弹出错误框 错误代码: ERROR 1045 (28000): Access denied for user ODBClocalhost (using password: NO) ERROR 1045 (28000): Access denied for user ODBClocalhost (using password: YES) 解决步骤: 1.找到配置文件my.ini &#xff0…

欧洲将研究具备自学习能力的无人机“蜂群”

来源:空天防务观察2019年10月23日,美国《防务新闻》网站报道称:芬兰将发展人工智能列为其领导欧洲联盟理事会六个月任期的关键目标,并提出了“压制防空无人机蜂群”(SEAD Swarm)项目,以迷惑、瘫…

表格打印没有左边线_office办公软件Excel表格的打印技巧,建议收藏

很多新手使用办公软件过程中,对于Excel的打印出现了诸多问题,今天我们就一起来看看表格打印的几个技巧!打印预览时网格线怎么不见了?如何调整打印区域的页边距?如何设置单色打印?......这些打印时遇到的麻烦…

符号说明表怎么做_能看懂这些房屋施工图,说明你家装修没问题了

一、基本知识1、标高1.1绝对标高亦称绝对高程或海拔高度,我国把青岛附近黄海的平均海平面定为绝对标高的零点,全国各地的标高均以此为基准。1.2标高是把某地点对应的绝对标高定义为0.000,(如名辉12#楼27.5)也称相对标高。建筑中一般以一层室内地面对应的绝对标高为0…

c语言字符数组不写,C语言数组

数组的基本使用数组的定义格式:类型 数组名[元素个数];int ages[5] {19, 29, 28, 27, 26};数组的注意事项存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)数组名的作用,查看元素地址数组越界的注…