在编译时将参数传递给内置内核模块

tsh*_*h06 3 linux linux-device-driver linux-kernel

有没有办法在编译 linux 内核时将参数传递给内置内核模块?如果是,你能解释一下如何吗?我想将 max_bonds 的值传递给我内核中内置模块的绑定驱动程序。

Linux 内核版本 - 2.6

Rol*_*and 6

您可以使用两个内核功能来完成此操作:

  • 您可以通过内核命令行将模块参数值作为“modulename.param=value”传递给内置模块。因此,在您的情况下,您需要在内核命令行中使用“bonding.max_bonds=50”之类的内容。
  • 从 2.6.28 左右开始(希望您的内核不会比那个旧),内核支持在编译时通过 CONFIG_CMDLINE_BOOL(“内置内核命令行”)和 CONFIG_CMDLINE 设置默认命令行。您设置 CONFIG_CMDLINE_BOOL=y,然后在内核命令行中将 CONFIG_CMDLINE 设置为您想要的任何内容(例如,“bonding.max_bonds=50”)。引导加载程序传递给内核的任何其他命令行选项都会附加到您在内核配置中设置的默认命令行。

通过使用这两个功能,我认为您几乎可以得到您想要的东西,而无需修改任何内核源代码,只需调整您的配置文件。