Podczas pracy make
nie wyświetla ostrzeżeń ani błędów, ale kiedy wkładam podstawowy moduł sterownika urządzenia USB do działającego jądra, pojawia się komunikat „zabity”.
Oto mój kod:
#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);
linux
usb
drivers
linux-kernel
użytkownik3604591
źródło
źródło
dmesg
,/var/log/syslog
,var/log/messages
za jakiekolwiek informacje?Odpowiedzi:
Zgodnie z dokumentacją „Pisanie sterownika USB” musisz zdefiniować co najmniej 5 parametrów w strukturze usb_driver :
Działanie rejestru prawdopodobnie próbuje odczytać jedno z tych pól.
źródło