Precisa interceptar eventos do teclado HID (e depois bloqueá-los)

Tenho um dispositivo USB RFID que é registrado como dispositivo HID (um teclado USB mais ou menos

Estou procurando uma maneira de capturar essa entrada e bloqueá-la / filtrá-la antes que ela atinja o manipulador de eventos de teclado normal (e envie o código RFID de 10 dígitos para o console

É claro que eu teria que capturar exclusivamente esse dispositivo e deixar a entrada real do teclado em paz (ou transmiti-la

Minha idéia inicial era bloquear o dispositivo no UDEV (para que o módulo do kernel usbhid / event / kbd não se ligasse a ele) e escrever meu próprio driver básico para este dispositivo - mas não sei por onde começar, ou se isso vai funcionar.

O que seria ótimo (e não tenho certeza se isso pode ser feito) - é se eu escrever um módulo de filtro de eventos que possa ficar alinhado com o driver de eventos e capturar (filtrar) a entrada apropriada de RFID, mas deixe todo o resto passar. Imagino que esse módulo não exija muito código e seria o mais prátic

Socorro

[EDIT: Devo acrescentar que o Xorg NÃO está instalado - somente console]

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

Mais informações

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)

questionAnswers(3)

yourAnswerToTheQuestion