我们都知道可以通过insmod给内核模块传递参数,例子可以参考这篇博文:
Linux内核module_param的实现原理_tugouxp的专栏-CSDN博客
Busybox使能insmod传递参数,需要打开选项:
CONFIG_BUSYBOX_CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS
选项特别长,我们来解释一下这个选项是做什么用的:
我们随便下载一份busybox代码, 看一下这个选项是如何控制insmod传递参数的。
在busybox代码中,CONFIG_BUSYBOX_CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS
化身为ENABLE_FEATURE_CMDLINE_MODULE_OPTIONS,核心在控制parse_cmdline_module_options函数的实现中。
在使能ENABLE_FEATURE_CMDLINE_MODULE_OPTIONS的情况下,parse_cmdline_module_options是个函数,会解析inmod的参数:
在关闭ENABLE_FEATURE_CMDLINE_MODULE_OPTIONS的情况下,parse_cmdline_module_options只是一个空的字符串
所以,总结一下,CONFIG_BUSYBOX_CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS
通过控制parse_cmdline_module_options函数的实现,来达到支持insmod传参与否的目的。