我正在研究Linux內核模塊,並希望跟蹤我的內核 配置更改(例如,啓用其他模塊,激活動態調試等)以備將來參考。如何跟蹤linux內核配置更改?
git add .config
感覺不對。
有沒有更好的方法來做到這一點?
我正在研究Linux內核模塊,並希望跟蹤我的內核 配置更改(例如,啓用其他模塊,激活動態調試等)以備將來參考。如何跟蹤linux內核配置更改?
git add .config
感覺不對。
有沒有更好的方法來做到這一點?
有.config
下的Git是糟糕的主意,因爲你正確提到(主要是因爲它的make distclean
後消失了,所以這個解決方案不是productizable)。另外,如果您的電路板已經有defconfig
文件,則不應再創建另一個文件,這可能被認爲是不好的做法。
而是看看scripts/kconfig/merge_config.sh腳本。您可以創建自己的配置文件,該文件只包含對某些現有defconfig文件的更改,然後將該文件與您正在使用的基本defconfig
文件合併。
查看TI kernel branch例如,他們只是用配置塊和腳本創建另一個目錄(ti_config_fragments/
)以生成最終的.config
文件。
使用merge_config.sh
腳本的另一種方法是修改Makefile
爲你的架構,增加了一些新的規則,以合併您的配置片段已經存在.config
文件,就像它是kvmconfig
規則做過arch/x86/Makefile。
無論如何,其主要思想是保持你的配置增量在單獨的文件(在某處arch/.../configs/
或在全新的目錄),然後合併與現有.config
文件你的配置片段(這通常是由一些defconfig
文件生成)。當然你可以在Git下跟蹤你的配置片段文件。
爲您的開發板(硬件)添加新的defconfig。
PATH:arch/arm/configs /用於ARM架構。
您可以通過添加新的菜單make menuconfig→保存。應用自己的配置只運行make your_board_defconfig
首先,所有使用* .config *的操作都是一個壞主意。由於一個好的做法是在自己的分支中開發,開發人員可以將任何現有的* defconfig *作爲(一組)修補程序進行更改。在我們的團隊中,我們正在做這樣的內部共享存儲庫。作爲一個例子,你可以看看https://github.com/andy-shev/linux/commits/eds – 0andriy
是的,但是如果你想把你的改變發送到上游呢?與現有的'defconfig'文件混淆無法進行生產。那麼爲什麼不使用'merge_config.sh'來代替原來的'defconfig'文件(爲了生成最終的'.config'),而使用一些小的delta配置文件(「fragment」)呢? –
唯一需要發送到上游的是當你添加一個新的板支持,對吧?在這種情況下,最好的方式是按照已經在那裏完成的方式進行:配置的任何一部分(您的術語中的「delta」)或整個* defconfig *。任何其他用例我錯過了? – 0andriy