- 论坛徽章:
- 0
|
学习驱动开发,在usb鼠标插入或拔出时,检测下。代码如下:- #include <linux/module.h>
- #include <linux/types.h>
- #include <linux/kernel.h>
- #include <linux/sched.h>
- #include <linux/init.h>
- #include <linux/slab.h>
- #include <linux/input.h>
- #include <linux/usb.h>
- #include <linux/usb_input.h>
- #include <asm/uaccess.h>
- #include <linux/kref.h>
- MODULE_LICENSE("GPL");
- static struct usb_device_id um_id_table[] =
- {
- {USB_INTERFACE_INFO(3, 1, 2)},
- { }
- };
- MODULE_DEVICE_TABLE(usb, um_id_table);
- static int um_probe(struct usb_interface *intf, const struct usb_device_id *id)
- {
- printk("----found test's usb mouse\n");
-
- return 0;
- }
- static void um_disconnect(struct usb_interface *intf)
- {
- printk("----disconnect test's usb driver\n");
- }
- static struct usb_driver usbmouse_drv =
- {
- .owner = THIS_MODULE,
- .name = "usbmouse_test",
- .id_table = um_id_table,
- .probe = um_probe,
- .disconnect = um_disconnect,
- };
- static void usbmouse_exit(void)
- {
- printk(KERN_NOTICE "usbmouse driver unloading...\n");
- usb_deregister(&usbmouse_drv);
- }
- static int usbmouse_init(void)
- {
- int retval;
- printk(KERN_NOTICE "usbmouse driver init....\n");
-
- retval = usb_register(&usbmouse_drv);
- printk("my usbmouse driver register, the return value is %d\n", retval);
- return 0;
- }
- module_init(usbmouse_init);
- module_exit(usbmouse_exit);
复制代码 编译成功,加载驱动后,当插入鼠标时,驱动检测不到,错在哪里呢? |
|