我试图在我的android手机的linux内核中修改一个模块。我对内核很陌生。我在这里读到了关于__setup()
宏的文章:Approach.html。
到目前为止,这是我的代码:
/* Read cmdline */
static int __init read_cmdline(char *dt2w)
{
if (strcmp(dt2w, "1") == 0) {
pr_info(LOGTAG" Enabled. | dt2w='%s'\n", dt2w);
dt2w_switch = 1;
} else if (strcmp(dt2w, "0") == 0) {
pr_info(LOGTAG" Disabled. | dt2w='%s'\n", dt2w);
dt2w_switch = 0;
} else {
pr_info(LOGTAG" No valid input found. Going with default: | dt2w='%u'\n", dt2w_switch);
}
return 1;
}
__setup("dt2w=", read_cmdline);
但是,当我执行dt2w=<some int>
时,在dmesg
中看不到任何日志输出。我确信该模块正在编译和加载,因为它运行良好。
发布于 2014-04-14 09:30:53
内核命令行参数是在加载内核时,即在加载模块之前处理的。
若要处理模块中的参数,请使用模块参数。(仍然可以使用类似于mymodule.dt2w=xxx
的方法在内核命令行上提供模块参数。)
https://stackoverflow.com/questions/23034664
复制相似问题