我有一个RFID USB设备注册为HID设备(或多或少的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
Run Code Online (Sandbox Code Playgroud)
更多信息:
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 …Run Code Online (Sandbox Code Playgroud) 我正试图查看我从eBay下车的这台IP摄像机(是的,是的,我知道).型号BL-5720IPW-L4MM.
无论如何,它们带有非常糟糕的基于Windows的应用程序,主要使用中文,而且功能非常差.我已经问过供应商我是否可以使用视频流的格式,所以我可以为他们提供Linux替代品 - 但是他们拒绝了...无论如何,它们非常昂贵,我需要从我的Linux读取视频流服务器(No X)并计划将流集成到linux应用程序'motion'中.但我无法弄清楚原始视频的开始位置,以及它的流媒体格式.
From what I can gather (in byte offset/length - desc - example):
0/4 Firmware Version - 8.4.4.5
5/2 H-res - 1280
7/2 V-res - 720
And what I know about the stream:
* 264/MPEG4 based codec
* 25fps
Run Code Online (Sandbox Code Playgroud)
以下是从TCP 9001捕获的原始数据(一旦连接就开始流式传输).如果任何人能够帮助我掌握这种格式,我们将不胜感激.完整的24MB(约60秒)捕获在这里可用,如果解码正确,应该显示我非常凌乱的桌子.
hexdump -n 1024 -C camera-capture.raw
00000000 08 04 04 05 00 05 d0 02 b0 01 f0 00 00 00 00 00 |................|
00000010 00 00 00 00 42 66 00 00 00 …Run Code Online (Sandbox Code Playgroud)