首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加insmod内核HID模块

添加insmod内核HID模块
EN

Stack Overflow用户
提问于 2009-07-15 14:10:39
回答 3查看 2.2K关注 0票数 0

我在hid模块中做了一些修改。

我可以成功地将它加载到内核v2.6.27.14上。

现在,我愿意在内核v2.6.27.11上加载相同的内核模块

因为两个内核版本的kerbel源文件没有区别

我可以成功地实现它,但是我不能在这个.11内核版本中添加/ insmod

**

代码语言:javascript
复制
                ERROR: Module myhid does not exist in /proc/modules

               insmod: error inserting 'myhid.ko': -1 Invalid module format

**

致以敬意,

EN

回答 3

Stack Overflow用户

发布于 2009-07-15 14:24:02

您不能加载为另一个内核版本编译的模块。模块的源代码没有改变并不意味着二进制文件对于另一个内核版本是相同的。内核内部API的任何接口更改(即使不是直接可见的)都会破坏模块...

因此,内核通过禁止加载为另一个内核版本构建的模块来保持安全。或者,您可以在构建内核时设置MODVERSIONS配置选项。这会将版本信息嵌入到模块使用的所有符号中,幸运的是,您可以将其加载到另一个内核版本中。

如果您的模块使用的任何接口发生了更改,结果将是相同的。

票数 3
EN

Stack Overflow用户

发布于 2009-07-15 14:21:19

看看"modinfo“告诉你什么关于你的模块:

检查它是否被正确编译,是否链接到正确的内核。

代码语言:javascript
复制
$ modinfo hid
filename:       /lib/modules/2.6.27.7/kernel/drivers/hid/hid.ko
license:        GPL
depends:        
vermagic:       2.6.27.7 mod_unload 486 
parm:           pb_fnmode:Mode of fn key on Apple keyboards (0 = disabled, 1 = fkeyslast, 2 = fkeysfirst) (int)

在编译/安装模块时,不要忘记在运行insmod/modprobe之前,必须运行"depmod“(以root身份)来重新构建模块依赖项。

票数 0
EN

Stack Overflow用户

发布于 2009-07-15 14:25:56

谢谢!这是make文件。我下载了HID.O的所有依赖源文件并重命名它们

MAKEFILE

obj-m := myid.o

myhid-objs := my-iddraw.o my-hid-core.o my-hid-input.o my-hid-input-quirk.o

KDIR模块/lib/ := /$(shell uname -r)/build

PWD := $(外壳pwd)

默认值:

代码语言:javascript
复制
$(MAKE) -C $(KDIR) M=$(PWD) modules
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1131650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档