简单的USB鼠标驱动(1)

本文介绍了一个针对QT210 USB鼠标的Linux内核模块驱动程序实现。该驱动程序通过usb_interface_info接口信息匹配鼠标设备,并在插入和拔出时分别执行probe和disconnect函数。实现了基本的设备注册与注销功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/usb/input.h>

#include <linux/hid.h>

static int qt210_usb_mouse_probe(struct usb_interface *intf, const struct usb_device_id *id)
{
printk("qt210_usb_mouse_probe\n");
return 0;
}

static void qt210_usb_mouse_disconnect(struct usb_interface *intf)
{
printk("qt210_usb_mouse_disconnect\n");
}

static struct usb_device_id qt210_usb_mouse_id_table [] = {
{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,
USB_INTERFACE_PROTOCOL_MOUSE) },
{ } /* Terminating entry */
};

/×分配/设置结构体×/
static struct usb_driver qt210_usb_mouse_driver = {
.name = "qt210usbmouse",
.probe = qt210_usb_mouse_probe,
.disconnect = qt210_usb_mouse_disconnect,
.id_table = qt210_usb_mouse_id_table,
};




static int qt210_usb_mouse_init(void)

{

//注册结构体

int retval = usb_register(&qt210_usb_mouse_driver);
if(retval == 0)
{
printk("usb_register succeeded!\n");
}
return retval;
}


static void qt210_usb_mouse_exit(void)
{
usb_deregister(&qt210_usb_mouse_driver);
}


module_init(qt210_usb_mouse_init);
module_exit(qt210_usb_mouse_exit);
MODULE_LICENSE("GPL");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值