在构建 linux 内核之前只清理选定的模块

Clean only selected modules before building linux kernel

我这里有一种情况,我需要针对不同的配置构建相同的内核。现在我试图在不执行 make clean 的情况下构建内核,但这给了我问题。一个配置可能有一些内置的驱动程序,而其他配置可能具有与模块相同的驱动器。 就我而言,我想避免 make clean 以节省时间!编译一个新的内核需要一定的时间,因为我以前编译过同一个内核,只改变了几个 driver/modules,我想知道除了清理整个内核之外还有什么替代选择。

谢谢!

假设您只想编译无线模块。 现在它的文件在 Linux_kernel/net/wireless 文件夹下

只编译无线模块。

cd Linux_kernel
make ARCH=arm modules M=$(pwd)/net/wireless/

会生成两个模块

Linux_kernel/net/wireless/cfg80211.ko

Linux_kernel/net/wireless/lib80211.ko

现在清理这些模块

make ARCH=arm modules M=$(pwd)/net/wireless/ clean

如果您只处理几个模块,则不必重建完整的内核。但是,如果您的模块需要对 .config 进行更改,则每次都执行以下步骤以获得针对特定 .config

构建的模块
modify/copy the .config as per the requirement into the src dir
make prepare
make scripts
make modules_prepare
make M=drivers/<some driver>
make M=drivers/<some driver> clean