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在內核編譯中造成了很多混亂。 –