RK3568驅動指南|第二篇 字符設備基礎-第7章 menuconfig圖形化配置實驗(三)

7.3 .config配置文件介紹
我們在圖形化配置界面配置好了以後,會得到一個.config配置文件。在編譯內核的時候會根據這個.config文件來編譯內核。這樣是不是就實現了通過圖像化界面的配置來配置內核呀。用通俗的話來說,Kconfig就是飯店的菜單,.config就是客人點完的菜。然後廚師會根據客人點的菜,也就是.config來做菜,對應的操作就是編譯內核。
那.config是如何產生的呢?對應上面的例子就是要有服務員給我們點菜呀。
當我們使用make menuconfig的時候,會通過mconf程序去解析Kconfig文件,然後生成對應的配置文件.config。所以這個mconf就是服務員。
mconf程序源碼在內核源碼scripts/kconfig目錄下,如下圖所示,這裏不對Kconfig文件的解析流程進行分析,感興趣的同學可以自行分析下mconf的源碼。

有了.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開發板

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章