我想在 /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/