在运行的 Linux 内核模块中,是否有一种简单的方法来确定 .ko
文件的完整文件名(即:/lib/modules/$(uname - r)/kernel/drivers/mymodule.ko
) 与模块关联,无需遍历 procfs,而是仅依赖内核空间代码中可用的内部结构/列表?
最佳答案
您无法获取模块文件的路径在内核中:内核不存储它。此外,内核甚至不知道该路径。
有两个系统调用用于加载内核模块:init_module
和 finit_module
(均在 kernel/module.c
中定义)。第一个接受指向模块镜像所在的用户空间区域的指针(用户空间应该先将模块文件读入该区域)。第二个接受模块文件的描述符,但此描述符仅用于读取文件内容,不会存储。
关于c - 在运行模块中获取 Linux 内核模块 ko 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882918/