Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 热插拔设备驱动程序模块出现问题_Linux_Usb - Fatal编程技术网

Linux 热插拔设备驱动程序模块出现问题

Linux 热插拔设备驱动程序模块出现问题,linux,usb,Linux,Usb,我正在编写一个模块,当你插入usb鼠标时,它会打印“hello world”。当我插入鼠标时出现问题,dmesg会打印六次以下消息: [7367.238560]helwor_mod:对符号的版本不一致 模块布局 这是我的密码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/usb.h> #include <linux/usb/input.h> #include

我正在编写一个模块,当你插入usb鼠标时,它会打印“hello world”。当我插入鼠标时出现问题,dmesg会打印六次以下消息:

[7367.238560]helwor_mod:对符号的版本不一致 模块布局

这是我的密码

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/usb.h>
#include <linux/usb/input.h>
#include <linux/hid.h>

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Isaac Lleida <isakyllr@opmbx.org>");
MODULE_VERSION("0.1");


static struct usb_device_id usb_mouse_id_table [] = {
    { USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,
            USB_INTERFACE_PROTOCOL_MOUSE) },
    { }
};
MODULE_DEVICE_TABLE(usb, usb_mouse_id_table);


static int mouse_probe(struct usb_interface *iface,
    const struct usb_device_id *id)
{
    pr_info("Hello World!");
    return 0;
}

static void mouse_disconnect(struct usb_interface *iface)
{
    pr_info("Bye World!");
}


static struct usb_driver mouse_driver = {
    .name  = "usbmouse",
    .probe = mouse_probe,
    .disconnect = mouse_disconnect,
    .id_table = usb_mouse_id_table,
};
module_usb_driver(mouse_driver);

static int __init hello_init(void)
{
    int res = 0;
    res = usb_register(&mouse_driver);

    if(res)
        pr_err("usb_register failed with error %d", res);
    return res;
}

static void __exit hello_exit(void)
{
    pr_debug("USB Mouse Removed...");
    usb_deregister(&mouse_driver);
}
#包括
#包括
#包括
#包括
#包括
模块许可证(“GPL”);
模块作者(“Isaac Lleida”);
模块_版本(“0.1”);
静态结构usb_设备id usb_鼠标id_表[]={
{USB接口信息(USB接口类隐藏,USB接口子类启动,
USB_接口_协议_鼠标)},
{ }
};
模块\设备\表(usb、usb \鼠标\ id \表);
静态int鼠标探头(结构usb接口*iface,
常量结构usb_设备_id*id)
{
公关信息(“你好,世界!”);
返回0;
}
静态无效鼠标断开连接(结构usb接口*iface)
{
公关信息(“再见世界!”);
}
静态结构usb_驱动程序鼠标_驱动程序={
.name=“usbmouse”,
.probe=鼠标探针,
.disconnect=鼠标\断开连接,
.id_table=usb_鼠标_id_table,
};
usb驱动模块(鼠标驱动);
静态int\uu init hello\u init(void)
{
int res=0;
res=usb_寄存器(&鼠标_驱动程序);
如果(res)
pr_err(“usb_寄存器失败,错误为%d”,res);
返回res;
}
静态无效\uuu退出你好\u退出(无效)
{
pr_调试(“USB鼠标已移除…”);
usb_注销器(&鼠标_驱动程序);
}
我整个下午都在谷歌上搜索,但仍然不知道如何解决这个问题。 我希望有人能帮助我,谢谢。

这是相关的:


我敢打赌,您用来编译模块的内核源(头)与您正在运行的内核版本不同。

问题已解决。产生此问题的原因是设备由另一个驱动程序控制,并加载到系统中。只需卸载它并加载驱动程序模块


很抱歉Gilles没有主题。

更好的地方是代码交换站点。@enedil非工作代码没有主题。编程问题在这里是离题的。这个问题适合我。