linux卸载键盘模块,linux – 加载模块的键盘热插拔

博主在尝试为Linux系统编写一个USB键盘驱动模块,代码包括USB设备ID匹配、probe和disconnect函数。模块编译无误并已复制到正确目录,但热插拔键盘时模块并未加载。问题可能在于内核配置或加载步骤。已经尝试了insmod和modprobe命令,dmesg显示调试消息,但模块未在键盘插入时自动加载。
摘要由CSDN通过智能技术生成

我正在尝试学习如何为Linux系统编写模块和驱动程序.类似于

this的问题,我试图在USB键盘热插拔(代码如下)上运行一个简单的“Hello World”模块.即使通过命令insmode和modprobe初始化模块似乎工作(dmesg显示调试消息),模块插入键盘时不加载.

我做了什么:

>运行make来生成hellomodule.ko文件.

>将hellomodule.ko文件复制到/ lib / modules /“my_kernel_version”/

>运行depmod -a comand.

在这三个步骤之后,我将模块添加到modules.alias和modules.dep文件中.它仍然不起作用

这个内核配置错误还是完全不一样的?

系统:Ubuntu 14.04 LTS;内核:3.14.0

hellomodule.c:

#include

#include

#include

#include

#include

#include

MODULE_AUTHOR("author");

MODULE_DESCRIPTION("helloworld module\n");

MODULE_LICENSE("GPL");

static struct usb_device_id hello_id_table [] = {

{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID,

USB_INTERFACE_SUBCLASS_BOOT,

USB_INTERFACE_PROTOCOL_KEYBOARD) },

{ } /* Terminating entry */

};

MODULE_DEVICE_TABLE (usb, hello_id_table);

static int hello_probe(struct usb_interface *interface,

const struct usb_device_id *id)

{

pr_debug("HelloModule: USB keyboard probe function called\n");

return 0;

}

static void hello_disconnect(struct usb_interface *interface)

{

pr_debug("HelloModule: USB keyboard disconnect function called\n");

}

static struct usb_driver hello_driver = {

//.owner = THIS_MODULE,

.name = "hello_driver",

.probe = hello_probe,

.disconnect = hello_disconnect,

.id_table = hello_id_table

};

static int __init hello_init(void)

{

int retval = 0;

pr_debug("HelloModule: Hello World!\n");

retval = usb_register(&hello_driver);

if (retval)

pr_debug("HelloModule: usb_register failed. Error number %d", retval);

return 0;

}

static void __exit hello_exit(void)

{

usb_deregister(&hello_driver);

pr_debug("HelloModule: exit\n");

}

module_init(hello_init);

module_exit(hello_exit);

Makefile文件:

obj-m := hellomodule.o

CFLAGS_hellomodule.o := -DDEBUG

KDIR := /lib/modules/`uname -r`/build

default:

make -C $(KDIR) M=$(PWD) modules

clean:

make -C $(KDIR) M=$(PWD) clean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值