基本上,我想要一个配置文件,例如“myconfigfile”包含一串字符,例如“abcdefg”。
我想在我的内核模块中读取此字符串作为值。也就是说,我希望在我的代码中有一个char*
,从该文件中获取值“abcdefg”。据我所知,我应该使用sysfs。以下是我的问题:
/sys/module/path/to/my/module
目录?答案 0 :(得分: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
或将此行放入/etc/modprobe.d/
中的某个.conf文件中:
options mymodule my_param=whatever