Question

If I use a modified usb skeleton driver on Linux and I insmod the module with the USB device already plugged in, the probe function doesn't get called. I need to unplug and replug the device in order for the driver to be activated. This is not the case for e.g. the serial drivers, I made some tests. Is there a reason for this? How do I get the probe function to get called?

Was it helpful?

Solution 3

Some software from us was opening the device from /proc/bus/usb and the device was claimed by the usbfs driver, so the new driver couldn't claim the device.

OTHER TIPS

Almost all USB HID devices are automatically managed by usbhid driver. Try the following:

sudo rmmod usbhid
sudo insmod your_driver
sudo insmod usbhid

You probably need to unbind your device from usbhid and bind it to your driver:

  • try to find the thief driver in : /sys/bus/usb/drivers/usbhid/
  • unbind it : echo -n "1-1:1.0" > /sys/bus/usb/drivers/usbhid/unbind
  • bind your device :
    • echo <vendor> <product> > /sys/bus/usb/drivers/my_driver/new_id or if you already have a bus id :
    • echo -n "1-1:1.0" > /sys/bus/usb/drivers/my_driver/bind

see http://www.ha19.no/usb/ see http://lwn.net/Articles/143397/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top