一直以來保存編譯內核生成的.config文件都是cp .config arch/arm/configs/xxx_defconfig來保存的。但是這其實是一個錯誤的方法。
以前一直沒有在意過這個問題,直到遇到了make xxx_defconfig生成的.config與原xxx_defconfig有差異並解決後,引發我的對.config保存方式的疑惑。原來在arch/arm/configs/中保存的默認xxx_defconfig文件並不是一個完整的.config文件。其實執行過make xxx_defconfig後產生的.config會比原來的多近2000行配置。這些配置在執行make xxx_defconfig自動添加進去的。
一些通用的內容並不會保存,怎樣剔出掉這些在.config通用的內容?內核中提供了 make savedefconfig 這個命令。
這樣做的優點相當多了就,節省空間以至於Linux內核的代碼量不會太大,第二對比差異的時候好對比一些。更重要的是這個是一個正統的方式。完整命令:
# make savedefconfig && mv defconfig arch/arm/configs/xxx_defconfig
參考:https://blog.csdn.net/kangear/article/details/39553337