天天看點

Kconfig .config Makefile 差別聯系felix的認識:

felix的認識:

(1)Kconfig為make menuconfig提供配置選項;

(2).config是由make menuconfig産生的配置檔案;

(3)make核心的時候,會根據.config檔案,向Kbuild系統下的makefile檔案傳遞配置參數,決定是否加載driver module。

轉自:https://blog.csdn.net/qq_27840681/article/details/77335168

Kconfig .config Makefile 差別聯系felix的認識:

一、Kconfig

1.定義:

一個文本形式的檔案,其中主要作用是在核心配置時候,作為配置選項。

即:在Kconfig檔案中添加配置選項。

Kconfig .config Makefile 差別聯系felix的認識:

2.文法:

config symbol //是個新的标記的菜單項

   options //是在這個新的菜單項下的屬性和選項

例:config HELLO_MODULE

     bool “hello test module”

     depends on ARCH_PXA

     help

      XXXX

3.options5種類型:

bool布爾類型/tristate三态/string字元串/hex十六進制/integer整型

其中,bool:菜單項顯示為[],.config中生成一個 CONFIG_XXX=y/n (選中/不選中)

   tristate:菜單項顯示為<>, .config中生成一個 CONFIG_XXX=y/m/n(編譯成核心映像/編譯成核心子產品/不編譯)

4.目錄層次疊代 :

通過source “/…/…/Kconfig”連結,這樣便可以使各個目錄管理各自的配置内容,使不必把那些配置都寫在同一個檔案裡,友善修改和管理

5.依賴關系:

例:

config HELLO_MODULE

    bool “hello test module”

    depends on ARCH_PXA

    help

     XXXX

表示 HELLO_MODULE 依賴于ARCH_PXA

6.make menuconfig:會出現核心的配置界面

Kconfig .config Makefile 差別聯系felix的認識:

二、.config

在選擇後會生成.config

Kconfig .config Makefile 差別聯系felix的認識:

三、Makefile

2.6核心的Makefile分為5個組成部分:

1. 最頂層的Makefile :讀取 .config檔案的内容,并總體上負責build核心和子產品。

2. 核心的.config配置檔案

3. 在arch/$(ARCH) 目錄下的體系結構相關的Makefile:提供補充體系結構相關的資訊

4. 在s目錄下的 Makefile.* 檔案:包含了所有用來根據kbuild Makefile 建構核心所需的定義和規則。

5. 各級目錄下的大概約500個kbuild Makefile檔案

最頂層的Makefile會調用.config負責編譯核心和子產品。