0

基本上,我想要一个配置文件,例如“myconfigfile”,其中包含一串字符,例如“abcdefg”。

我想在我的内核模块中读取这个字符串作为一个值。也就是说,我想char*在我的代码中有一个从该文件中获取值“abcdefg”。据我了解,我应该使用 sysfs。以下是我的问题:

  1. 我只是创建文件并将其移动到/sys/module/path/to/my/module目录中吗?
  2. 如果我有可用的文件,我该如何准确读取该值?假设该文件名为“myconfigfile”。我阅读了此文档,但坦率地说,我不明白。
4

1 回答 1

4

你的实际问题是你想在你的模块中配置一些东西。

读取配置文件并不能解决这个问题,它只会引入另一个问题。

要在模块中配置某些内容,请使用模块参数:

#include <linux/kernel.h>
#include <linux/module.h>

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Sefu");

static char *my_param = "default";
module_param(my_param, charp, 0444);
MODULE_PARM_DESC(my_param, "my little configuration string");

int init_module(void)
{
    printk(KERN_INFO "The parameter is: %s\n", my_param);
    return 0;
}

void cleanup_module(void)
{
}

要设置该值,请使用类似的内容加载您的模块

modprobe mymodule my_param=whatever

或将此行放入某些 .conf 文件中/etc/modprobe.d/

options mymodule my_param=whatever
于 2013-11-26T09:41:32.730 回答