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

c - 如何查看对内核模块所做的更改

我是 Linux 内核的新手,我在我的 Linux 机器上运行了模块,并且可以使用 lsmod 命令看到它,现在我对此模块进行了一些更改(添加了一些 printk),重新编译并获得了 .ko。现在我做了 rmmod删除这个模块(一些其他模块也在使用这个模块)并执行 insmod xxx.ko 并重新启动系统。

现在我在哪里看到使用 printk 添加的语句,我尝试查看使用

dmesg grep | “SPI RW”

但是找不到任何东西。有人可以让我知道我在这里做错了什么吗?

0 投票
1 回答
23668 浏览

c - 使用 insmod 时出错“无法插入模块 hello_world.ko:模块格式无效”

我正在尝试在 Raspberry Pi 上使用 C 和 Bash制作一个hello_world内核模块。

我成功使用make命令生成了一个hello_world.ko文件。

但是,当我尝试使用该insmod hello_world.ko命令时,出现以下错误:

错误:无法插入模块 hello_world.ko:模块格式无效

我尝试按照Raspberry Pi 论坛上描述的步骤进行操作,但运气不佳。

我认为这可能是由于我的内核和 Linux 头文件之间的版本不匹配。这些头文件在这个过程中扮演什么角色,我如何获得与我的内核匹配的版本?

0 投票
1 回答
162 浏览

c - 无法安装或使用内核间模块

我在内核驱动程序 1 (KD1.ko) 中有一个函数:

在内核驱动程序 2 (KD2.ko) 中:

我试着叫它。

我设法 insmod KD1.ko,但我无法 insmod KD2.ko。我错过了什么吗?

0 投票
0 回答
127 浏览

module - 带空格的 insmod 字符串参数

嗨,我这些天学习模块。今天我写了一个简单的模块,在使用 insmod 时将采用字符串参数,这里是代码片段:

当我输入命令行时

没关系

但是当我输入

有错误

你知道为什么吗?

0 投票
2 回答
1544 浏览

linux-kernel - 如何确保 insmod 因错误而失败?

我为 Linux 开发了一个外围驱动程序。.probe 函数执行常见的错误检查,如内存分配失败,并尝试与硬件通信,并在任何类型的错误中解除分配任何内存并返回错误代码,如 -ENOMEM 或 -EIO。

问题是,虽然模块探测函数在硬件不可达时返回 -EIO,但我仍然看到模块在lsmod输出中列出。当初始化过程中出现问题时,是否可以确保insmod完全失败?

这是我当前的探测功能。所有特定于设备的函数在失败时都会返回适当的错误代码,通常是 -EIO。

0 投票
1 回答
2467 浏览

linux-device-driver - insmod 错误“模块中的未知符号”

我正在编写并行 LED 板驱动程序,.ko 已成功生成。

我正面临这个问题

[63722.594233] LED:未知符号 parport_register_device(错误 0)

[63722.594264] led: 未知符号 parport_register_driver (err 0)

0 投票
1 回答
1257 浏览

android - 在文件系统挂载到 Android 之前 init.rc 中的 insmod helloworld

我正在尝试修改已植根的 Nexus 7 设备上的 init.rc 文件。我想在挂载 /userdata/ 分区之前安装一个简单的 hello world 模块。我尝试过的事情:

  1. 从设备中提取 boot.img,提取 ramdisk,对 init.rc 进行更改(不起作用),重新创建 boot.img(使用 mkbootimg 工具),然后再次将其刷新到设备上

  2. 我已经将为内核编译的 hello.ko 放置在 2 个位置:一个是放置 init.rc 的当前目录,这样我就可以执行类似 insmod hello.ko 的操作,它会找到它。其次,我创建了 /lib/modules/ 目录并将其放在其中

  3. 在我的 init.rc 中,我在 on_boot 之后放置了 insmod /lib/modules/hello.ko。我还更改了 init.flo.rc 并将 insmod 放置在 ./mount_all 之前和之后,它会挂载文件系统。但是,我根本看不到我的模块加载。权限集是 0644 (我也尝试过 0777 )

  4. 我在 /etc/folder 中创建了 init.d 并放置了一个 loadmodule.sh ,它执行 insmod /lib/modules/hello.ko 并且该模块加载但一旦启动过程完成。

理想情况下,我想在安装 /userdata/ 分区之前立即执行此操作。

有人可以帮我弄这个吗?

我的设备是 Nexus 7,安装了 flo_kernel 和 root、busybox 等。

0 投票
1 回答
499 浏览

linux - insmod lkm.ko 在可加载内核模块中调用 cleanup_module 而不是 init_module

我正在尝试在 debian wheezy 7.5 上制作我的第一个可加载内核模块。我尝试了一些来自网络上不同教程的示例代码,但它并不像我认为的那样对我有用。

这是我的代码:

我正在用一个看起来像这样的 Makefile 编译它

所以它编译得很好,但是当我用"$ sudo insmod lkm.ko"加载 LKM然后查看日志消息时,它会返回"exit LKM...",所以看起来 insmod 调用了 cleanup_module 系统调用而不是 init_module。同样的事情发生了,当我使用"$ sudo rmmod lkm"时,我在日志消息中得到了"loading LKM.." 。所以我真的不知道为什么会这样,我在网上找到的只是,insmod 通过 init_module() 加载 LKM 等等......

我会很感激一些帮助或解释,因为我真的不知道出了什么问题。

谢谢

0 投票
1 回答
87 浏览

linux-kernel - 在删除驱动程序之前,内核日志不会显示“Hello kernel”

我刚刚开始编写一个字符驱动程序。所以,当我插入我的第一个驱动程序代码时,它从 init_module1 打印“hello kernel”,从内核日志中的退出模块打印“Bye kernel”。当我插入驱动程序并使用 dmesg 查看内核日志时,我找不到“Hello kernel”消息,但是当我删除驱动程序(使用 rmmod)时,我在日志中同时得到“Hello kernel”和“Bye kernel”。无法弄清楚如何以及为什么。这是我的代码...

头文件.h

初始化文件

退出.c

生成文件-

0 投票
1 回答
6945 浏览

linux-kernel - insmod 模块参数:无效参数

我正在开发示例内核模块driver.ko。我想data_node用模块参数指定结构的块大小BlockSize。当我insmod driver.ko单独运行时,它可以工作,但是当我指定 BlockSize 时,insmod driver.ko BlockSize = 10我得到了这个错误:

modinfo -p ./driver.ko命令给我这个:

驱动程序.c

..