c - 在运行模块中获取 Linux 内核模块 ko 文件名

标签 c linux linux-kernel kernel-module

在运行的 Linux 内核模块中,是否有一种简单的方法来确定 .ko 文件的完整文件名(即:/lib/modules/$(uname - r)/kernel/drivers/mymodule.ko) 与模块关联,无需遍历 procfs,而是仅依赖内核空间代码中可用的内部结构/列表?

最佳答案

无法获取模块文件的路径在内核中:内核不存储它。此外,内核甚至不知道该路径。

有两个系统调用用于加载内核模块:init_modulefinit_module(均在 kernel/module.c 中定义)。第一个接受指向模块镜像所在的用户空间区域的指针(用户空间应该先将模块文件读入该区域)。第二个接受模块文件的描述符,但此描述符仅用于读取文件内容,不会存储。

关于c - 在运行模块中获取 Linux 内核模块 ko 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882918/

相关文章:

android - 如何在 Android 启动前挂载 ramdisk?

linux-kernel - ksoftirqd 的下半部在中断或进程上下文中?

linux - 由于参数过多,Perl 命令未执行,我该如何修复它以允许更多参数?

c - 了解 socket() 输出

python - 附加路径但 python 找不到模块

android - 为 android 4.1 设备编译和构建 “iw”?

c - 搜索二叉搜索树的最有效方法是什么?

c - 在函数内声明 struct timeval time

c - 使用 gotoxy 换行?

C : Search functionality in Linked List