insmod를 실행하는 동안 USB 장치 드라이버 모듈이 종료됩니까?


0

를 실행하는 동안 make경고 또는 오류가 표시되지 않지만 실행중인 커널에 기본 USB 장치 드라이버 모듈을 삽입하면 "killed"메시지가 나타납니다.

내 코드는 다음과 같습니다.

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

MODULE_LICENSE("GPL");

#ifndef DEBUG
#define DEBUG
#endif

static struct usb_driver skel_driver = {

};

static void __exit usb_deregister_func(void)
{
    #ifdef DEBUG
        printk(KERN_INFO "Begin : %s",__func__);
        #endif

    usb_deregister(&skel_driver);

    #ifdef DEBUG
        printk(KERN_INFO "End : %s",__func__);
        #endif  
}

static int __init usb_register_func(void)
{
    int ret_val;

    ret_val = 0;    

    #ifdef DEBUG
    printk(KERN_INFO "Begin : %s",__func__);
    #endif

    ret_val = usb_register(&skel_driver);
    if(ret_val)
    {
        #ifdef DEBUG
        printk(KERN_ERR "ERROR : usb_register().");
        #endif

        return -1;
    }

    #ifdef DEBUG
    printk(KERN_INFO "End : %s",__func__);
    #endif

    return 0;
}
module_exit(usb_deregister_func);
module_init(usb_register_func);

당신은 확인 했나 dmesg, /var/log/syslog, var/log/messages어떤 내용?
jcoppens

yaa, var / log / messages 파일을 검사하여 NULL 포인터 역 참조를 처리 할 수 ​​없다고 말합니다.
user3604591

답변:


0

"USB 드라이버 작성"문서에 따르면 usb_driver 구조 에서 5 개 이상의 매개 변수를 정의해야합니다 .

static struct usb_driver skel_driver = {
    .owner = THIS_MODULE,
    .name = "skeleton",
    .id_table = skel_table,
    .probe = skel_probe,
    .disconnect = skel_disconnect,
};

등록 조치가 아마도이 필드 중 하나를 읽으려고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.