3

我在这里有一种情况,我需要针对不同的配置构建相同的内核。现在我正在尝试构建内核而不进行清理,但这给我带来了问题。有可能一个配置有一些内置驱动程序,其他驱动程序可能与一个模块相同。 在我的情况下,我想避免干净以节省时间!编译一个新的内核需要分配时间,因为之前我编译过相同的内核,只有很少的驱动程序/模块发生了变化,我想知道除清理整个内核之外的其他选项。在构建Linux内核之前只清理选定的模块

谢谢!

回答

3

如果您只是在使用几个模块,则不必重新构建完整的内核。但是,如果你的模块需要改变.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 
+0

谢谢!你的建议可以肯定地适用于一个或两个模块。但我有四个配置文件。我的脚本一个接一个地复制配置文件并进行编译。被改变的驱动程序/模块很多。我不能一个一个干净的去做那些。无论如何,make clean命令只会清除配置已更改的那些驱动程序/模块? –

+1

您在这里有几个选择,将上述步骤放入构建脚本中,并且每次都为不同的配置文件运行脚本。或者,如果您使用git /版本控制,您可以将代码签出到四个单独的文件夹中,并使用单独的配置构建每个文件夹。没有办法可以提供多个配置在同一时间你需要使用你的构建脚本自动化这听起来很简单。 – askb

2

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

只编译无线模块。

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

它将产生两个模块

Linux_kernel /网/无线/ cfg80211.ko

Linux_kernel /网/无线/ lib80211.ko

现在清理这些模块

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

由于内置的​​模块!你的建议可以肯定地适用于一个或两个模块。但我有四个配置文件。我的脚本一个接一个地复制配置文件并进行编译。被改变的驱动程序/模块很多。我不能一个一个干净的去做那些。无论如何,make clean命令只会清除配置已更改的那些驱动程序/模块? –

+0

首先,“感谢”在stackoverflow是upvote。如果你使用多个.config文件,那么我建议你每次清理所有模块。因为你所说的是gona在内核编译中造成了很多混乱。 –