有了.config配置文件以後,內核就可以根據這個配置文件來編譯內核,比如控制某些驅動編譯進內核,或者控制某些驅動不編譯內核。那他是怎麼實現的呢?
.config會通過syncconfig目標將.config作爲輸入然後輸出需要文件,這裏我們重點更關注auto.conf和autoconf.h。如下圖(圖7-19)所示:
在auto.conf文件中,存放的是配置信息。如下圖(圖7-20)所示:
在內核源碼的頂層Makefile中會包含auto.conf文件,以此引用其中的變量來控制Makefile的動作,如哪些驅動編譯,哪些驅動不編譯。如:
auto.conf文件中
Makefile中包含auto.conf文件
內核源碼下drivers/A/Makefile引用這個變量
注:obj-y就是編譯進內核,obj-m就是編譯成ko文件。
在autoconf.h中,是C語言代碼。用來配合編譯時的條件選擇。如下圖(圖7-21)所示:
更多內容可以B站搜索北京迅爲/CSDN搜索迅爲RK3568開發板