gpt4 book ai didi

linux - 热插拔设备驱动模块的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:33:22 27 4
gpt4 key购买 nike

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

[ 7367.238560] helwor_mod: disagrees about version of symbol module_layout

这是我的代码

#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);
}

我google了一下午,还是不知道怎么解决。我希望有人能帮助我,谢谢。

最佳答案

这是相关的: module_layout version incompatibility

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

关于linux - 热插拔设备驱动模块的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23484528/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com