3.1 本章導讀 Linux 驅動(dòng)工程師一定要掌握 Linux 內核的編譯方法,也就是將 Linux 內核源碼,編譯成針對特定硬件的二進(jìn)制鏡像。 在前面入門(mén)視頻“01-燒寫(xiě)、編譯以及基礎知識視頻”→“實(shí)驗 10-搭建編譯環(huán)境uboot_linux_Android”中,簡(jiǎn)單的介紹過(guò)如何將 Linux 源碼編譯生成二進(jìn)制 zImage在本章中,將更加詳細的介紹這部分內容,然后介紹 Kconfig 配置文件,Kconfig 文件是和編譯的 Makemenuconfig 工具配合使用的。最后還需要掌握“.config”文件的作用。 3.1.1 工具 3.1.1.1 硬件工具 1)PC 機 3.1.1.2 軟件工具 1)虛擬機 Vmware 2)Ubuntu12.04.2 3)Ubuntu 系統下解壓生成的 Linux 源碼 3.1.2 預備課程 入門(mén)視頻“01-燒寫(xiě)、編譯以及基礎知識視頻”→“實(shí)驗 10-搭建編譯環(huán)境uboot_linux_Android”或者使用手冊“五 Android 開(kāi)發(fā)環(huán)境搭建以及編譯” 3.1.3 視頻資源 本節配套視頻為“視頻 03_Menuconfig_Kconfig” 3.2 學(xué)習目標 本章需要學(xué)習以下內容: 掌握 Menuconfig 的用法 理解 Kconfig 文件并掌握修改 Kconfig 的方法 理解配置文件“.config” Linux 內核配置裁減 3.3 Linux 內核配置系統 Linux 內核配置系統由三個(gè)部分組成。 Makefile 文件:分布在 Linux 內核源碼中的 Makefile 文件,定義了 Linux 內核的編譯規則。 Kconfig 文件:給用戶(hù)提供配置選擇的功能。 配置工具:這里使用的是 menuconfig,相比其它工具,這個(gè)工具使用的比較多,也比較 容易上手,無(wú)論哪個(gè)機構發(fā)布的 Linux 版本應該都是支持 menuconfig 的。 3.4 Menuconfig 的操作 Linux 的裁減配置是通過(guò) menuconfig 工具來(lái)實(shí)現的,本節介紹如何使用這個(gè)工具。 3.4.1 Menuconfig 發(fā)展歷史簡(jiǎn)介 在 Linux 發(fā)展過(guò)程中,配置內核可以使用以下工具。 #make config 這是基于文本的最為傳統的配置界面,不推薦使用 #make menuconfig 基于文本菜單的配置界面,現在大部分都是使用這個(gè)工具來(lái)裁減配置內核的,本章節也是 介紹這種方法。 #make xconfig 要求 QT 被安裝,用的比較少。 #make gconfig 要求 GTK,用的比較少。 上面不同的命令代表使用不同的工具,如下圖所示,在源碼目錄下,輸入命令“make config”。 ![]() 如上圖所示,這是一個(gè)文本類(lèi)型的配置工具,根據提示“scripts/kconfig/conf --oldaskconfig Kconfig”可以知道,這種方法是舊的配置方法,雖然 Linux 內核可能會(huì )長(cháng)時(shí)間的支持,但是不人性化的操作方式,會(huì )降低效率,所以現在幾乎淘汰了。 使用“Ctrl+c”可以退出配置界面,退出后,如下圖所示。 ![]() 3.4.2 Menuconfig 操作方法 前面實(shí)驗提到過(guò) menuconfig 實(shí)現的代碼在源碼“scripts”目錄下,不過(guò)這里根本不用關(guān)心它是怎么實(shí)現的,只需要掌握怎么操作即可,就像學(xué)習開(kāi)車(chē),要知道怎么打方向盤(pán),而不需要知道方向盤(pán)和輪子之間是怎么傳動(dòng)的。 下面介紹 menuconfig 的操作方法。 如下圖所示,在源碼目錄下,輸入命令“make Menuconfig”。 ![]() 如下圖所示,進(jìn)入配置界面。這個(gè)功能界面對應配置工具,它包含配置命令解釋器,對配置腳本中使用的命令進(jìn)行解釋?zhuān)贿包含了配置用戶(hù)界面,用來(lái)提供字符界面和圖形界面。這些配置工具都是使用腳本語(yǔ)言編寫(xiě)的,不過(guò)只用關(guān)心怎么使用。 ![]() 如下圖所示,“方向按鍵”中的“左右”可以選擇你需要的操作! |