insmod: ERROR: could not insert module lin_mouse_drive.ko: Device or resource busy

insmod: ERROR: could not insert module lin_mouse_drive.ko: Device or resource busy。

  • [ 申明,本人是刚接触驱动的幼鸟,写博客是为了分享和学习新的知识,如果内容有什么需要补充的,请联系我QQ:13169909394。

  • [

  • 这是个低级错误,我们写驱动的时候会调用到相关的注册函数和注销函数,如果你只注册,而没有注销函数,很多资源都没有释放,这时候,就会出现Device or resource busy。设备繁忙。
    这段代码是鼠标代码,在ubuntu下执行之后,发现是不能rmmod卸载的,因为ubuntu下本身就是鼠标,当你在卸载时候,就会出现设备冲突。(这是我的猜测,因为开发板刚好坏了,没有机会测试。日后会继续完善这篇博客的)

  • ] List item

] List item

#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>

/*
   usb总线结构体usb_driver,

*/
#if 1



static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_id *id)
{
	
	printk(" ------>usb_mouse_probe\n");
	printk(KERN_INFO KBUILD_MODNAME " ------>usb_mouse_probe\n");
	return 0;
}



static void usb_mouse_disconnect(struct usb_interface *intf)
{
  	printk(KERN_INFO KBUILD_MODNAME " ------>usb_mouse_disconnect\n");
}

static struct usb_device_id usb_mouse_id_table [] = {
	{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,
		USB_INTERFACE_PROTOCOL_MOUSE) },
		
		/*
	{
              //USB_DEVICE(厂家id,产品id);  //只支持某家生产的usb鼠标
 	},

	{}	// Terminating entry 
	*/
};

#endif
static struct usb_driver usb_mouse_driver = {
	.name		= "usbmouse",
	.probe		= usb_mouse_probe,
	.disconnect	= usb_mouse_disconnect,
	.id_table	= usb_mouse_id_table,
};


static int __init usb_mouse_init(void)
{


	
	int retval = usb_register(&usb_mouse_driver);
	if (retval == 0)
		printk(KERN_INFO "DRIVER_DESC \n");

	return retval;
}

static int __exit usb_mouse_exit(void)
{
	
   usb_deregister(&usb_mouse_driver);  //------->如果这个函数没有的话,                       加载卸载几次驱动之后就会出现上面的问题

   return 0;
}



module_init(usb_mouse_init);
module_exit(usb_mouse_exit);

MODULE_LICENSE("GPL");				// 描述模块的许可证
MODULE_AUTHOR("lin");				// 描述模块的作者
MODULE_DESCRIPTION("usb mourse module test");	// 描述模块的介绍信息
MODULE_ALIAS("no");			// 描述模块的别名信息


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值