Article 5ASG3 udev rules for HID binding/unbinding of custom driver

udev rules for HID binding/unbinding of custom driver

by
crok
from LinuxQuestions.org on (#5ASG3)
I am working on a kernel driver for a device based on the FT260, which uses the HID class. The driver is working, but needs to be manually bound on kernels earlier than 4.16.

I have tried the following script to unbind the device from hid-generic and rebind it to my driver:

Code:KERNEL=="0003:0403:6030.*", \
RUN+="/bin/bash -c 'echo $kernel > /sys/bus/hid/drivers/hid-generic/unbind'", \
RUN+="/bin/bash -c 'echo $kernel > /sys/bus/hid/drivers/my-driver/bind'"However, it also seems to be unbinding the keyboard and mouse!

Running udevadm monitor, I see this when I unplug and insert a mouse:

Code:KERNEL[613.092889] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0007 (hid)
KERNEL[613.092939] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
KERNEL[613.094532] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
UDEV [613.107006] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0007 (hid)
UDEV [613.113208] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
UDEV [613.127480] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
KERNEL[615.373844] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
KERNEL[615.377050] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
KERNEL[615.392034] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008 (hid)
KERNEL[615.392596] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13 (input)
KERNEL[615.392812] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/mouse0 (input)
KERNEL[615.392954] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/event6 (input)
KERNEL[615.393088] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/hidraw/hidraw0 (hidraw)
UDEV [615.403503] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
UDEV [615.424075] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
KERNEL[615.427240] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/mouse0 (input)
KERNEL[615.436234] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/event6 (input)
KERNEL[615.448137] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13 (input)
KERNEL[615.448301] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/hidraw/hidraw0 (hidraw)
UDEV [615.451498] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008 (hid)
UDEV [615.459099] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13 (input)
UDEV [615.461991] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/hidraw/hidraw0 (hidraw)
UDEV [615.467173] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/mouse0 (input)
UDEV [615.470729] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/event6 (input)
UDEV [615.473388] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/hidraw/hidraw0 (hidraw)
UDEV [615.475658] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/mouse0 (input)
UDEV [615.478074] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13/event6 (input)
UDEV [615.483318] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0008/input/input13 (input)Performing the same remove/insert operation without the script gives this:
Code:KERNEL[554.600754] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/input/input10/mouse0 (input)
UDEV [554.602661] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/input/input10/mouse0 (input)
KERNEL[554.612152] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/input/input10/event6 (input)
UDEV [554.614022] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/input/input10/event6 (input)
KERNEL[554.624459] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/input/input10 (input)
KERNEL[554.625051] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/hidraw/hidraw0 (hidraw)
KERNEL[554.625185] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005 (hid)
KERNEL[554.625282] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
KERNEL[554.625654] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
UDEV [554.627182] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/input/input10 (input)
UDEV [554.627235] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005/hidraw/hidraw0 (hidraw)
UDEV [554.628495] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0005 (hid)
UDEV [554.629203] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
UDEV [554.631596] remove /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
KERNEL[555.710090] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
KERNEL[555.713002] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
KERNEL[555.728281] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006 (hid)
KERNEL[555.728688] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/input/input11 (input)
KERNEL[555.728809] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/input/input11/mouse0 (input)
KERNEL[555.729035] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/input/input11/event6 (input)
KERNEL[555.729223] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/hidraw/hidraw0 (hidraw)
UDEV [555.735248] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4 (usb)
UDEV [555.737867] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0 (usb)
UDEV [555.739634] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006 (hid)
UDEV [555.742635] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/input/input11 (input)
UDEV [555.746129] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/input/input11/mouse0 (input)
UDEV [555.748140] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/hidraw/hidraw0 (hidraw)
UDEV [555.833725] add /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1.1/5-1.1.1/5-1.1.1.4/5-1.1.1.4:1.0/0003:047D:101F.0006/input/input11/event6 (input)latest?d=yIl2AUoC8zA latest?i=5d9Ijkanv34:WxA_NTtYpZQ:F7zBnMy latest?i=5d9Ijkanv34:WxA_NTtYpZQ:V_sGLiP latest?d=qj6IDK7rITs latest?i=5d9Ijkanv34:WxA_NTtYpZQ:gIN9vFw5d9Ijkanv34
External Content
Source RSS or Atom Feed
Feed Location https://feeds.feedburner.com/linuxquestions/latest
Feed Title LinuxQuestions.org
Feed Link https://www.linuxquestions.org/questions/
Reply 0 comments