linux-kernel - 如何在/proc/driver 下创建 proc 条目?

标签 linux-kernel kernel-module procfs

我想在 /proc/driver 下创建一个文件目录。我想使用像 proc_root_driver 这样的宏(或提供的其他东西)而不是明确使用“驱动程序/模块名称”。我用 create_proc_entry :

struct proc_dir_entry *simpleproc_fops_entry;
simpleproc_fops_entry = create_proc_entry(MODULE_NAME, 0400, NULL /* proc_root_dir */);

谷歌搜索后,我发现建议使用 proc_root_driver ,但是当我使用它时,我得到了错误

proc_root_driver undeclared in this function



还有,proc_root_driver在 linux/proc_fs.h 中不可用。

我试图声明这样的结构:
struct proc_dir_entry proc_root;
struct proc_dir_entry *proc_root_driver = &proc_root;

编译错误消失了,但文件没有出现在 /proc/driver 下或 /proc .如何在 /proc 中创建条目?

最佳答案

查看 proc_fs.h,proc_root_driver 定义为:

extern struct proc_dir_entry *proc_root_driver;

只要启用 CONFIG_PROC_FS。如果您在配置内核时选择了 CONFIG_PROC_FS,您应该能够按照您自己的建议使用它,即:
#include <linux/proc_fs.h>
struct proc_dir_entry * procfile
procfile = create_proc_entry("myprocfile", 0400, proc_root_driver);

如果这不起作用,请检查您是否设置了 CONFIG_PROC_FS。为确保,您可以使用 -E 选项编译源文件并检查 create_proc_entry 调用是否包含非 NULL 参数作为最后一个参数。如果它为 NULL,或者调用根本不存在,则不启用 CONFIG_PROC_FS。

关于linux-kernel - 如何在/proc/driver 下创建 proc 条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/588848/

相关文章:

c - 使用 procfs 的内核用户输出在哪里?

linux - 如何修改linux内核中的kvm模块?

c - 使内核模块在运行时可加载

c++ - 如何用C/C++语言在Linux/UNIX中查找一个进程的所有读写内存地址?

Linux 内核 : get information of page cache distribution over NUMA nodes

linux - 在 Linux 内核配置上执行 insmod 的选项有哪些?

Linux文件系统架构

linux - 监视 linux 上的系统(内核)负载

linux - 从 proc_fops.open 访问 proc_dir_entry?

linux - RHEL 6.8 上的 mprotect() Permission Denied 错误