添加insmod内核HID模块

发布于 2024-07-26 20:44:32 字数 393 浏览 4 评论 0原文

我对hid模块做了一些修改。

我可以成功地在内核 v 2.6.27.14 上制作并加载(insmod)它

现在我愿意在内核 v 2.6.27.11 上加载相同的内核模块,

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

我可以成功,但我无法在此 .11 内核版本中添加 / insmod

**

                ERROR: Module myhid does not exist in /proc/modules

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

**

问候,

I made certain modifications in hid module.

I can make it and load (insmod) it on kernel v 2.6.27.14 sucessfully

Now I am willing to load the same kernel module on kernel v 2.6.27.11

As there is no differance in the kerbel source files for both the kernel versions

I can make it sucessfully, but I cannot add / insmod in this .11 kernel version

**

                ERROR: Module myhid does not exist in /proc/modules

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

**

Regards,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

且行且努力 2024-08-02 20:44:32

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

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

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

You can't load a module compiled for another kernel version. That the source code of the module did not change does not mean that the binary will be the same for another kernel version. Any interface change of kernel internal APIs (even when not directly visible) will break the module...

Therefore, the kernel stays on the safe side by disallowing loading of modules that were built for another kernel version. Alternatively, you can set the MODVERSIONS configuration option when building your kernel. This will embed version information into all symbols used by your module and with luck you can load it on another kernel version.

If any interface used by your module changed, the result will be the same though.

橘虞初梦 2024-08-02 20:44:32

看看“modinfo”告诉你关于你的模块的信息:

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

$ 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 身份)来重建模块依赖关系。

see what "modinfo" tells you about your module:

Check that it's compiled properly, linked to the right kernel.

$ 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)

When you compile/install modules, don't forget that you have to run "depmod" (as root) to rebuild the modules dependancies before running insmod/modprobe.

苍风燃霜 2024-08-02 20:44:32

谢谢 ! 这是生成文件。 我下载 HID.O 的所有依赖源文件并将其重命名为

MAKEFILE

obj-m := myhid.o

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

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

PWD := $(shell pwd)

默认值:

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

Thanks ! Here is the make file . I dowload all the dependent source files for HID.O and rename them

MAKEFILE

obj-m := myhid.o

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

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

PWD := $(shell pwd)

default:

$(MAKE) -C $(KDIR) M=$(PWD) modules
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文