Необходимо перехватить события HID Keyboard (а затем заблокировать их)

У меня есть RFID USB-устройство, которое регистрируется как HID-устройство (клавиатура USB более или менее).

Я ищу способ захватить этот ввод и заблокировать / отфильтровать его, прежде чем он попадет в обычный обработчик событий клавиатуры (и выведет 10-значный код RFID на консоль).

Я бы, конечно, должен был захватить только это устройство и оставить реальный ввод с клавиатуры в одиночку (или передать его).

Моя первоначальная идея состояла в том, чтобы заблокировать устройство в UDEV (чтобы модуль ядра usbhid / event / kbd не привязывался к нему) и написать свой базовый драйвер для этого устройства - но я не знаю, с чего начать, или если это буду даже работать.

Что было бы здорово (и я не уверен, что такое можно сделать) - это если я напишу модуль фильтра событий, который может находиться в очереди с драйвером событий, и получит (затем отфильтрует) соответствующий входной сигнал из Блок RFID, но пусть все остальное проходит. Я предполагаю, что такой модуль не потребовал бы большого количества кода, и был бы самым практичным.

Помогите?

[EDIT: я должен добавить, что 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)

Ответы на вопрос(3)

Ваш ответ на вопрос