title: Triggering udev rule for particular keyboard
body: <p>I need to write a udev rule for a particular keyboard which does not seem to have any unique attribute against which to match. </p>
  
  <p>The lines below are the output of <code>udevadm monitor</code> upon insertion of the device. Is there something here I could use to uniquely identify this keyboard?</p>
  
  <pre><code>KERNEL[58443.215701] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2 (usb)
  KERNEL[58443.218536] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0 (usb)
  KERNEL[58443.218662] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:04B3:3025.0005 (hid)
  KERNEL[58443.221610] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input15 (input)
  KERNEL[58443.221669] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input15/event4 (input)
  KERNEL[58443.221868] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:04B3:3025.0005/hidraw/hidraw0 
  UDEV  [58443.236718] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2 (usb)                                       
  UDEV  [58443.238026] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0 (usb)
  UDEV  [58443.239532] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:04B3:3025.0005 (hid)
  UDEV  [58443.240670] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:04B3:3025.0005/hidraw/hidraw0 
  UDEV  [58443.288767] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input15 (input)             
  UDEV  [58443.319799] add      /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input15/event4 (input)
  </code></pre>
  
  <p>Edit:</p>
  
  <p>Below are the lines from plugging the keyboard into a different usb port. As far as I can tell, it seems that there is no information that remains constant. </p>
  
  <pre><code>KERNEL[59428.187673] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1 (usb)
  KERNEL[59428.190323] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0 (usb)
  KERNEL[59428.190494] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:04B3:3025.0006 (hid)
  KERNEL[59428.193088] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input16 (input)
  KERNEL[59428.193266] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input16/event4 (input)
  KERNEL[59428.193426] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:04B3:3025.0006/hidraw/hidraw0 
  UDEV  [59428.300690] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1 (usb)                                       
  UDEV  [59428.301790] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0 (usb)
  UDEV  [59428.302553] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:04B3:3025.0006 (hid)
  UDEV  [59428.303130] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:04B3:3025.0006/hidraw/hidraw0 
  UDEV  [59428.319082] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input16 (input)             
  UDEV  [59428.321444] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input16/event4 (input)
  </code></pre>
  
  <p>Edit: Using lsusb -v, I was able to find the <code>idVendor</code> and <code>idProduct</code>. </p>
  
  <pre><code>Bus 002 Device 009: ID 04b3:3025 IBM Corp. 
  Device Descriptor:
    bLength                18
    bDescriptorType         1
    bcdUSB               1.10
    bDeviceClass            0 (Defined at Interface level)
    bDeviceSubClass         0 
    bDeviceProtocol         0 
    bMaxPacketSize0         8
    idVendor           0x04b3 IBM Corp.
    idProduct          0x3025 
    bcdDevice            1.09
    iManufacturer           1 LITE-ON Technology
    iProduct                2 USB NetVista Full Width Keyboard.
    iSerial                 0 
    bNumConfigurations      1
    Configuration Descriptor:
      bLength                 9
      bDescriptorType         2
      wTotalLength           34
      bNumInterfaces          1
      bConfigurationValue     1
      iConfiguration          4 HID Keyboard
      bmAttributes         0xa0
        (Bus Powered)
        Remote Wakeup
      MaxPower               70mA
      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 EP1 Interrupt
          HID Device Descriptor:
            bLength                 9
            bDescriptorType        33
            bcdHID               1.10
            bCountryCode            0 Not supported
            bNumDescriptors         1
            bDescriptorType        34 Report
            wDescriptorLength      65
           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              24
  Device Status:     0x0000
    (Bus Powered)
  </code></pre>
  
  <p>So I have created the following udev rule:</p>
  
  <pre><code>SUBSYSTEM=="usb", ATTR{idVendor}=="0x04b3", ATTRS{idProduct}=="0x3025", RUN+="/home/myuser/bin/udev_jap.sh"
  </code></pre>
  
  <p>However, nothing is triggered so far. And strangely, the <code>idVendor</code> and <code>idProduct</code> information doesn't show up on <code>udevadm monitor</code>. Does this mean udev can't match against these attributes?</p>