gpt4 book ai didi

c - 插入 USB 设备时如何加载模块(不是驱动程序)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:12 26 4
gpt4 key购买 nike

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

/*
* Version information
*/
#define DRIVER_VERSION ""
#define DRIVER_DESC "Hello World module"
#define DRIVER_LICENSE "GPL"

MODULE_LICENSE(DRIVER_LICENSE);
MODULE_AUTHOR(DRIVER_AUTHOR);

static void __exit hello_world_exit(void)
{
pr_debug("Bye!\n");
}

static int __init hello_world_init(void)
{
pr_debug("Hello, USB!");
return 0;
}

static struct usb_device_id usb_kbd_id_table[] = {
{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID,
USB_INTERFACE_SUBCLASS_BOOT,
USB_INTERFACE_PROTOCOL_KEYBOARD) },
{}
};

MODULE_DEVICE_TABLE(usb, usb_kbd_id_table);

module_init(hello_world_init);
module_exit(hello_world_exit);

插入 USB 鼠标时如何让内核加载此模块(使用用户空间热插拔工具)?现在,我已将 hello_world.ko 文件放入/lib/modules/$(uname -r) 并运行 depmod -a。

最佳答案

在现代 Linux 中,每当检测到新硬件时加载驱动程序/模块(或调用任何其他命令)的功能由 udev 处理。您必须为您的设备编写一个 udev 规则,该规则将指示内核在检测到您的设备并发生相应事件时加载您的模块。了解更多信息 here .

关于c - 插入 USB 设备时如何加载模块(不是驱动程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28369300/

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