问题标签 [insmod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2021 浏览

c - 为什么不能正确全局导出 Linux 内核模块符号?

我们编写了许多内核模块,其中许多带有导出的符号,除了 2 个符号(令人费解)之外,它们都可以正常工作。我们已将它们与其他所有符号一样导出,但是这两个符号在插入内核后不会全局导出。

在我们的 C 代码中(在 wdt.ko 中):

如果我们nm在生成的内核对象上运行,它们会正确显示:

这应该意味着这些符号是全局导出的。一旦我们 insmod 内核对象:

如果我们看一下 kallsyms:

一旦它们进入内核,它们就不是全局的。

我们已经确认正确的文件被插入内核并且函数在同一个模块中是可见的,但我们无法解释为什么这些符号突然变成本地而不是像nm建议的那样是全局的。

有谁知道我们的错误可能在哪里?

0 投票
2 回答
3307 浏览

makefile - can we install kernel module with make file

I have working kernel module which I install manually with insmod/modprobe command as learnt by reading book. however I was wondering if there is way to do it automatically after compiling - So basically how to automate insmod/modprobe command ?

My modprobe has a dependent file thread_module.o as well

My make file so far

output after running : make install

Edit: After going through comments and https://www.kernel.org/doc/Documentation/kbuild/modules.txt I tried to add install command but I dont see any modules in the build path - Also at high level I get what we write in cmd prompt we type in Makefile but if someone can give an example it would help me to understand with nice base case to refer.

0 投票
0 回答
3772 浏览

c - 错误:无法插入模块无效的模块格式

root@vm# insmod ./test01.ko

我的 c 文件 test01.c

基于模块的 test01.c

生成文件

使 modinfo 的工作正常输出

我的内核版本 uname -a

dmseg 输出

我觉得问题是我来自 modinfo 的 vermagic 是 4.0,而内核版本是 3.19。前段时间我编译了内核源代码(不知道是哪个)并通过以下方式安装它make -j2 && sudo make modules_install

我不知道为什么内核版本不匹配?

0 投票
3 回答
69770 浏览

c - 对于在另一个模块中定义的符号,insmod 失败并显示“模块中的未知符号”

我在 Ubuntu 工作。我正在尝试制作两个使用彼此功能的内核模块。我的问题是我得到了正确编译的模块,但是其中一个没有解析符号。

为简单起见,我们将这些模块称为m1m2

m2 是导出功能void func_m2(void)m1正在调用此函数。两个模块都能正确编译。

全部编译完成后,我需要先加载m2模块(因为它具有导出func_m2功能),然后再加载m1模块。所以,让我们实现它:

现在,让我们加载m1正在尝试使用的模块func_m2

以下是我在日志中看到的内容:

因此,似乎对符号的引用func_m2没有解决。有趣的。让我们检查它是否存在于符号表中:

如您所见,func_m2实际上存在于符号表中。那么为什么m1加载不出来呢?

我已经为我的内核和 Linux 源正确安装了 Linux 头文件。我没有对内核进行任何修改,它没有被修改,它的版本是:2.6.31-16-generic(我运行 x64)

现在,为了向您展示全貌,我将源代码和 Makefile 我用于此测试的源代码和 Makefile 放在m1这里m2

m1模块:

m1.c:

生成文件:

m2模块:

m2.c:

生成文件:

基本上我的问题是:为什么不能m1加载?

如果有人能回答会很有帮助。

0 投票
0 回答
316 浏览

linux-kernel - 在linux模块中读取文件时出错

编辑:我已经编写了以下模块来过滤网站。我能够嗅探Domain Name用户请求的 DNS 数据包(问题字段)并与block[]="www.facebook.com". 如果匹配,则丢弃数据包。现在我插入了一个读取代码(请参阅//Read File here下面的代码)来读取写入文件中的网站列表(而不是硬编码块 []=)并将其与 DNS 问题进行比较。现在我可以了成功编译模块但无法正确加载它。是因为make 下面给出警告而模块代码是。(我请求您请阅读代码,谢谢您的时间。)

但是我遇到了错误insmod,错误是

我还想知道一种在 linux-module 中读取文件的安全方法。我已经经历了一些以前的例子这种方式经常阅读安全吗?谢谢你的回复

0 投票
2 回答
3607 浏览

linux - 无法在 debian 8 中安装 hello_world 内核模块

我不明白为什么 insmod 给出Invalid parameters错误(在 中看不到任何内容dmesg):

我的模块中没有参数。这只是你好世界的例子。

我的环境:

我已经安装了所有可能的内核头包:

我的代码:

我使用以下内容Makefile

make输出:

$ 制作

更新:与 14.04.1-Ubuntu 的结果相同

0 投票
1 回答
662 浏览

c++ - 内核模块周期性调用用户空间程序

我想定期从内核模块调用用户空间程序。但是内核程序正在冻结系统,而我尝试加载它。以下是程序,

test.sh 是一个仅回应评论的脚本。我已经单独测试了 call_usermodehelper 部分和计时器部分,它工作正常。但是,当我结合这两个代码时,系统会挂起。任何人都可以帮我解决这个问题。

0 投票
1 回答
5542 浏览

android - android insmod init_module 失败(所需的密钥不可用)

有人能帮我吗?

我已经像这样运行 imsmod:

但我得到一个错误:

我用谷歌搜索了很多,但没有一个完美的答案。

提前致谢。

0 投票
0 回答
564 浏览

linux-kernel - 挂系统的网络挂钩

我正在测试https://en.wikipedia.org/wiki/Hooking中给出的网络挂钩代码。我的内核版本是 3.11。

但是在加载之后,上面的代码会冻结系统。谁能告诉我,这是什么原因?我认为上面的代码可能已经在一些较低版本的内核中测试过了。所以我怀疑,一些内核参数或特性已经改变了。

0 投票
0 回答
2277 浏览

linux - insmod:无法插入'./intrpt.ko':功能未实现

我正在编写一个内核模块来接收 mpc8308 (PowerPC) 板的中断。当我为 Ubuntu 和我当前版本的内核编写代码时,它可以很好地处理键盘中断,但是当我为 mpc8308 板(2.6.29.6 内核)交叉构建它并且我想用insmod命令将它加载到内核中时,我得到了错误:

insmod: cannot insert './intrpt.ko': Function not implemented

我的代码是:

和输出modinfo ./intrpt.ko是: