相关文章推荐
苦闷的围巾  ·  CVE-2020-14386 —— ...·  2 天前    · 
俊秀的牙膏  ·  CVE-2020-14386: Linux ...·  2 天前    · 
千杯不醉的剪刀  ·  Linux ...·  1 年前    · 
没人理的骆驼  ·  Python: ...·  1 年前    · 
细心的鼠标垫  ·  新闻·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I'm working on a device driver for Linux. It's a USB pen tablet. The problem is that the driver's probe callback never gets called. dmesg just shows:

generic-usb: probe of 0003:099A:2620.000F failed with error -22

and i never get to connect to the device. It seems like the systems drivers are overriding my driver in some way?

My code is registering & unregistering correctly using insmod / rmmod:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/usb.h>
#include <linux/slab.h>
MODULE_DEVICE_TABLE (usb, id_table);
struct usb_device_id id_table[] =
    {USB_DEVICE(0x099a, 0x2620)}, //Zippy Technology Corp. Digi Tablet
void dt_disconnect(struct usb_interface *interface)
    printk("dt_disconnect called\n");
int dt_probe(struct usb_interface *interface, const struct usb_device_id *id)
    printk("dt_probe called\n");
    return 0;
static struct usb_driver dt_driver =
    .name = "Zippy Technology Corp. Digi Tablet",
    .probe = dt_probe,
    .disconnect = dt_disconnect,
    .id_table = id_table
static int __init dt_init(void)
    //0 means success
    int error = usb_register(&dt_driver);
    if(error)
        printk("dt_init failed\n");
    return 0;
static void __exit dt_exit(void)
    //void
    usb_deregister(&dt_driver);
module_init(dt_init);
module_exit(dt_exit);
MODULE_LICENSE("GPL");

dt_probe is never called. I'm using Linux 2.6.40 (Fedora 15's version of 3.0) and most documentation about this stuff is very old so I thought I'd ask here. Any thoughts?

modprobe -r usbhid did not work but i get the idea. I did some more research and found that the pen tablet has three interfaces: HID Keyboard, HID Mouse and HID something using protocol 0x3 (this is the pen-mode protocol i have sniffed from Windows). So it just got messed up with that usbhid overriding my driver. usbhid seems to get the mouse and keyboard installed into xinput but it doesn't really work. Do you think i should dig into usbhid for a patch or just try to override usbhid in some other way? Im not sure usbhid needs to be patched but i just can't get the tablet to work. – Alex Aug 26, 2011 at 17:19

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.