【问题标题】:__setup macro not working__setup 宏不起作用
【发布时间】:2014-04-12 18:49:24
【问题描述】:

我正在尝试修改我的 android 手机的 linux 内核中的一个模块。我对内核很陌生。我在这里读到了__setup() 宏:http://www.e-reading.ws/chapter.php/101551/103/Hallinan_-_Embedded_Linux_Primer__A_Practical,_Real-World_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 中看不到任何日志输出。 我确定该模块正在编译和加载,因为它工作正常。

【问题讨论】:

    标签: android c linux linux-kernel


    【解决方案1】:

    内核命令行参数在加载内核时处理,即在加载模块之前。

    要处理模块中的参数,请使用模块参数。 (仍然可以通过使用mymodule.dt2w=xxx 之类的方式在内核命令行上提供模块参数。)

    【讨论】:

      猜你喜欢
      • 2017-02-14
      • 1970-01-01
      • 2018-04-05
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多