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

2183 단어
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 
    #include 
    #include 
    #include 
    #include 
    #include 
    
    /*
       usb usb_driver,
    
    */
    #if 1
    
    
    
    static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_id *id)
    {
    	
    	printk(" ------>usb_mouse_probe
    "); printk(KERN_INFO KBUILD_MODNAME " ------>usb_mouse_probe
    "); return 0; } static void usb_mouse_disconnect(struct usb_interface *intf) { printk(KERN_INFO KBUILD_MODNAME " ------>usb_mouse_disconnect
    "); } 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
    "); 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"); //

    좋은 웹페이지 즐겨찾기