2014-02-26 296 views
2

編譯linux內核時有沒有辦法將參數傳遞給內建內核模塊?如果是的話,你能解釋一下嗎? 我想將max_bonds的值傳遞給內核中內置模塊的bonding驅動程序。在編譯時將參數傳遞給內建內核模塊

Linux內核版本 - 2.6

+0

開機時間:https://stackoverflow.com/questions/17659798/how-to-pass-a-value-to-builtin-kernel-module-at-boot-time –

回答

4

,可以使用兩個內核的特性來實現:

  • 您可以通過內核命令行爲「modulename.param =值」傳遞模塊參數值,以內置模塊。所以在你的情況下,你需要在內核命令行中使用類似「bonding.max_bonds = 50」的東西。
  • 從2.6.28左右開始(希望你的內核不會比這更老),內核支持在編譯時通過CONFIG_CMDLINE_BOOL(「內置內核命令行」)和CONFIG_CMDLINE設置默認命令行。你設置CONFIG_CMDLINE_BOOL = y,然後在你的內核命令行中設置CONFIG_CMDLINE爲你想要的任何值(例如「bonding.max_bonds = 50」)。您的引導加載程序傳遞給內核的任何其他命令行選項都會附加到您在內核配置中設置的默認命令行。

通過使用這兩個功能,我認爲你幾乎可以得到你想要的東西,而無需修改任何內核源代碼,只需調整你的配置文件即可。

+0

偉大的工作。感謝羅蘭。這就是我一直在尋找的東西。 – tshah06

0

我認爲這是可以通過更改模塊源。每個模塊參數的默認值都在源代碼中進行編碼 - 只需修改它即可。

+0

我不打算改變代碼越遠越好。因此在編譯內核時檢查傳遞參數的可能性。 – tshah06