问题标签 [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 回答
2491 浏览

c - insmod:错误:无法插入模块 kprobe_example.ko:不允许操作

我指的是: http : //www-users.cs.umn.edu/~boutcher/kprobes/kprobes.txt.html 来了解kprobe。我使用了文档中给出的 kprobe_example.c。

我使用 makefile 编译它(代码取自同一个文档)

我收到编译错误,因为我的内核版本是 4.2,并且 struct pt_regs 中的某些字段已更改。因此,我将 eip 替换为 ip 并将 eflag 替换为 kprobe_example.c 中的标志,即https://gist.github.com/murlee417/87c2eb43a6afa1954b05404a07813e81。然后我能够成功编译它。

现在,作为 root 用户,我做了:

我得到了:

我的消息缓冲区有:

请帮助我解决此错误并使 insmod 工作。

0 投票
1 回答
3177 浏览

linux - 我应该在哪个文件夹中添加我编译的 .ko 文件?

所以我已经为我的 USB 无线适配器编译了驱动程序。
现在我需要知道应该将 .ko 文件复制到哪里。问题实际上如下:


/lib/modules/(uname -r)/build

/lib/module/(uname -r)/kernel/drivers有什么区别

谢谢你

0 投票
0 回答
75 浏览

linux-kernel - 什么在 wm8350-i2c.c 中调用 wm8350_i2c_probe()?

我正在编写一个多功能内核驱动模块,基于http://lxr.free-electrons.com/source/drivers/mfd/wm8350-i2c.c?v=4.4http://lxr.free- electrons.com/source/drivers/mfd/wm8350-core.c?v=4.4

我对如何/何时/为什么wm8350_i2c_probe()调用该函数感到困惑。

i2c_add_driver()调用将 a 注册struct i2c_driver到 i2c 子系统,并且该结构包含.probe指向该wm8350_i2c_probe()函数的指针。

我自己制作了这些模块的类似物。被xxx_i2c_init()调用insmod但 i2c 子系统不调用该xxx_i2c_probe()函数。

这里有一些我不明白的地方。为什么 i2c 子系统不wm8350_i2c_probe()通过 register 调用该函数.probe

0 投票
1 回答
1453 浏览

linux - Linux Driver -> insmod -> lsmod 显示驱动程序,但 /dev 中没有条目?

只是在创建 Linux 驱动程序方面迈出了第一步。终于得到了这个工作:

仍在测试中,所以到目前为止内容/目的并不是那么重要,但是......在安装 GetMonth.ko 之后,我可以在 lsmod-List 中看到它。我还看到了 kprintft 工作和 /proc 文档。

但是我很震惊在 /dev 中没有看到我的驱动程序的任何内容?!

怎么可能?不是每个驱动程序都在这个目录中创建一个文件吗?

0 投票
1 回答
182 浏览

linux - Linux内核次要编号vermagic比较

我对 linux 内核中的模块有一个简单的问题。

是否保证我编译的模块在整个 XY 内核版本中都能正常工作。

X:内核版本 Y:主要版本 Z:次要版本

例如:

我用 4.9 内核的树编译我的 module.ko。那么insmod我的模块可以使用 4.9.24, 4.9.31,4.9.34,...?

那么,vermagic 比较是否会跳过主要数字之后的所有内容?

0 投票
0 回答
987 浏览

linux - 尝试使用operaFS时出现“insmod:无效的模块格式”

我想构建和安装 Linux 文件系统驱动程序OperaFS。编译源代码后,“insmod”显示错误消息“模块无效格式”,虽然我确实下载了“linux-source”包,所以我希望源是我当前使用的内核的源。

到目前为止我做了以下工作:

我究竟做错了什么?

0 投票
1 回答
275 浏览

linux-device-driver - 内核模块插入问题

我们在 raspberry pi 板上运行最新的 raspibian,并有一个用于 USB 外围设备的内核驱动程序,它在启动后通过使用 ssh 连接到硬件(它是一个无头系统)从外部添加(sudo insmod driverx.ko)。

问题如下: 如果设备上电时已经连接到系统,运行sudo insmod driverx.ko会导致终端卡住(无响应,Ctrl+C不起作用)。通过启动另一个 ssh 会话来运行 lsmod 表明该模块正在使用中,即使没有正在运行的代码会使用它。

如果我在系统启动后插入 USB 设备,则 sudo insmod driverx.ko 工作正常,(终端仍然处于活动状态)。随后运行 lsmod 会显示该模块已加载但未被任何人使用。然后我可以运行我的用户代码,一切都很好。运行我的用户代码 lsmod 显示内核模块正在使用中,用户数为 1。

在我们的系统中,USB 设备将始终插入。内核版本和驱动程序版本相同。
我可以填写更多详细信息,但不希望有偏见或使此查询不可读。请告知可能是什么问题。

感谢您的时间和帮助。

0 投票
1 回答
995 浏览

kernel - insmod 自定义模块失败并显示消息:不同意符号版本

我想为自己制作一个 netfilter conntrack 模块。所以我将所有关于 netfilter conntrack 的源代码从内核源代码树复制到我的外部目录。编译后可以insmod。然后我在struct nf_conn中添加了一些成员,编译成功。但是,它不能是 insmod。系统给我消息“不同意符号的版本......”。

谁能帮我 ?

0 投票
2 回答
127 浏览

c - 内核模块加载导致错误

我是内核模块开发的新手,并决定今天编写我的第一个内核模块。

我的模块应该接收 2 个数字作为输入,用空格分隔并将这些数字加在一起。

内核模块通过名为 calc (/proc/calc) 的 proc 条目进行通信,因此从文件中读取将返回输出,写入该文件将提供新输入(2 个数字由空格分隔)

加载模块(insmod)时,我的 shell 卡住了,当中断它并查看 dmesg 时,我看到了内核 BUG 行, 这是跟踪

我不确定这是否是我的代码中的错误,还是 linux 内核中的实际错误,并且很想了解我做错了什么以及如何使用给定的 dmesg 日志开始调试我的模块。

这是我的模块的源代码

我的makefile是非常标准的,

非常感谢提前!

编辑:我使用的是 ubuntu 16.04.02,版本 4.10.0-28,非常标准。

0 投票
1 回答
700 浏览

linux - Linux键盘延迟

所以我想构建一个内核模块(我想),它会在按下键盘键后插入一点延迟(比如说 500 毫秒)。我设法通过钩子在 Windows 中做到了这一点,但在 Linux 中似乎有所不同。请注意,我不希望使用 x11 方法,因为我希望它也可以从 linux 控制台工作(即使没有运行 X 服务器)。据我所知,它需要构建一个内核模块并使用 insmod 将其动态插入内核。我设法构建了一个按键记录器,它将每个按下的按键转储到内核日志中,但是插入延迟需要将处理键盘中断处理程序的线程发送到睡眠状态,这是一个非常糟糕的主意,并且还要重写整个 USB_KBD驱动程序,因为当前脚本调用设置了 IRQF_SHARED 标志的 request_irq 函数,

我目前正在请求这样的中断处理程序

关于如何处理这个(任何其他方式)的任何建议?