On Mon, 11 Jun 2012, Noam Yorav-Raphael wrote: > Hello, > > I have a device (a microscope automation controller) which has a USB > port which uses a standard RS232 to USB converter, by Cypress. They > just changed their vendor id and product id from the standard cypress > ID. I added their IDs to the cypress_m8 source, compiled, and put the > updated cypress_m8.ko file in /lib/modules/. > > When I plug the device the cypress_m8 driver isn't being used. > Instead, the generic usbhid driver is used, which isn't what I wanted. That doesn't make much sense. The usbhid driver binds only to devices that advertise an HID interface, whereas you're talking about a serial interface. > If I run: > > modprobe -r usbhid cypress_m8 > modprobe cypress_m8 > modprobe usbhid > > then when I plug the device, the cypress_m8 driver is being used, and > I can use /dev/ttyUSB0, just as I wanted. > > It seems that the order in which drivers are loaded affects the > priority: the driver which was loaded first gets to catch the device. There is no priority; it's simply a matter of order. > So my question is, is there a way to permanently change the driver > priority, so that the right driver will be loaded by default? There is not, since there are no priorities. However, there _is_ a way to permanently change the usbhid driver and prevent it from ever binding to your device. You merely have to add an entry to the hid_ignore_list array in drivers/hid/hid-core.c. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html