Während der Ausführung make
werden keine Warnungen oder Fehler angezeigt. Wenn ich jedoch das grundlegende USB-Gerätetreibermodul in den ausgeführten Kernel einbaue, wird die Meldung "Abgebrochen" angezeigt.
Hier ist mein Code:
#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
user3604591
quelle
quelle
dmesg
,/var/log/syslog
,var/log/messages
für alle Informationen?Antworten:
Gemäß der Dokumentation "Schreiben eines USB-Treibers" müssen Sie mindestens 5 Parameter in der Struktur usb_driver definieren :
Die Registrierungsaktion versucht wahrscheinlich, eines dieser Felder zu lesen.
quelle