U-Boot 图形化配置及其原理
目錄
- U-Boot 圖形化配置體驗(yàn)(如何使能dns 命令)
- menuconfig 圖形化配置原理
- make menuconfig 過(guò)程分析
- Kconfig 語(yǔ)法簡(jiǎn)介
- 1、mainmenu
- 2、調(diào)用其他目錄下的Kconfig 文件
- 3、menu/endmenu 條目
- 3、config 條目
- 4、depends on 和select
- 4、choice/endchoice
- 5、menuconfig
- 6、comment
- 7、source
- 添加自定義菜單
在前兩章中我們知道uboot 可以通過(guò)mx6ull_alientek_emmc_defconfig 來(lái)配置,或者通過(guò)文件mx6ull_alientek_emmc.h 來(lái)配置uboot。還有另外一種配置uboot 的方法,就是圖形化配置,以前的uboot 是不支持圖形化配置,只有Linux 內(nèi)核才支持圖形化配置。不過(guò)不知道從什么時(shí)候開(kāi)始,uboot 也支持圖形化配置了,本章我們就來(lái)學(xué)習(xí)一下如何通過(guò)圖形化配置uboot,并且學(xué)習(xí)一下圖形化配置的原理,因?yàn)楹竺鎸W(xué)習(xí)Linux 驅(qū)動(dòng)開(kāi)發(fā)的時(shí)候可能要修改圖形配置文件。
U-Boot 圖形化配置體驗(yàn)(如何使能dns 命令)
uboot 或Linux 內(nèi)核可以通過(guò)輸入“make menuconfig”來(lái)打開(kāi)圖形化配置界面,menuconfig是一套圖形化的配置工具,需要ncurses 庫(kù)支持。ncurses 庫(kù)提供了一系列的API 函數(shù)供調(diào)用者生成基于文本的圖形界面,因此需要先在Ubuntu 中安裝ncurses 庫(kù),命令如下:
sudo apt-get install build-essential sudo apt-get install libncurses5-devmenuconfig 重點(diǎn)會(huì)用到兩個(gè)文件:.config 和Kconfig,.config 文件前面已經(jīng)說(shuō)了,這個(gè)文件保存著uboot 的配置項(xiàng),使用menuconfig 配置完uboot 以后肯定要更新.config 文件。Kconfig文件是圖形界面的描述文件,也就是描述界面應(yīng)該有什么內(nèi)容,很多目錄下都會(huì)有Kconfig 文件。
在打開(kāi)圖形化配置界面之前,要先使用“make xxx_defconfig”對(duì)uboot 進(jìn)行一次默認(rèn)配置,只需要一次即可。如果使用“make clean”清理了工程的話就那就需要重新使用“make xxx_defconfig”再對(duì)uboot 進(jìn)行一次配置。進(jìn)入uboot 根目錄,輸入如下命令:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig如果已經(jīng)在uboot 的頂層Makefile 中定義了ARCH 和CROSS_COMPILE 的值,那么上述命令可以簡(jiǎn)化為:
make mx6ull_alientek_emmc_defconfig make menuconfig打開(kāi)后的圖形化界面如圖34.1.1 所示:
通過(guò)鍵盤(pán)上的“↑”和“↓”鍵來(lái)選擇要配置的菜單,按下“Enter”鍵進(jìn)入子菜單。菜單中高亮的字母就是此菜單的熱鍵,在鍵盤(pán)上按下此高亮字母對(duì)應(yīng)的鍵可以快速選中對(duì)應(yīng)的菜單。
選中子菜單以后按下“Y”鍵就會(huì)將相應(yīng)的代碼編譯進(jìn)Uboot 中,菜單前面變?yōu)椤?lt; * >”。按下“N”鍵不編譯相應(yīng)的代碼,按下“M”鍵就會(huì)將相應(yīng)的代碼編譯為模塊,菜單前面變?yōu)椤?lt; M >”。
按兩下“Esc”鍵退出,也就是返回到上一級(jí),按下“?”鍵查看此菜單的幫助信息,按下“/”鍵打開(kāi)搜索框,可以在搜索框輸入要搜索的內(nèi)容。
在配置界面下方會(huì)有五個(gè)按鈕,這五個(gè)按鈕的功能如下:
- < Select>:選中按鈕,和“Enter”鍵的功能相同,負(fù)責(zé)選中并進(jìn)入某個(gè)菜單。
- < Exit>:退出按鈕,和按兩下“Esc”鍵功能相同,退出當(dāng)前菜單,返回到上一級(jí)。
- < Help>:幫助按鈕,查看選中菜單的幫助信息。
- < Save>:保存按鈕,保存修改后的配置文件。
- < Load>:加載按鈕,加載指定的配置文件。
在圖34.1.1 中共有13 個(gè)配置主配置項(xiàng),通過(guò)鍵盤(pán)上的上下鍵調(diào)節(jié)配置項(xiàng)。后面跟著“—>”表示此配置項(xiàng)是有子配置項(xiàng)的,按下回車(chē)鍵就可以進(jìn)入子配置項(xiàng)。
我們就以如何使能dns 命令為例,講解一下如何通過(guò)圖形化界面來(lái)配置uboot。進(jìn)入“Command line interface —>”這個(gè)配置項(xiàng),此配置項(xiàng)用于配置uboot 的命令,進(jìn)入以后如圖34.1.2 所示:
從圖34.1.2 可以看出,有很多配置項(xiàng),這些配置項(xiàng)也有子配置項(xiàng),選擇“Network commands—>”,進(jìn)入網(wǎng)絡(luò)相關(guān)命令配置項(xiàng),如圖34.1.3 所示:
從圖34.1.3 可以看出,uboot 中有很多和網(wǎng)絡(luò)有關(guān)的命令,比如bootp、tftpboot、dhcp 等等。選中dns,然后按下鍵盤(pán)上的“Y”鍵,此時(shí)dns 前面的“[ ]”變成了“[ * ]”,如圖34.1.4所示:
每個(gè)選項(xiàng)有3 種編譯選項(xiàng):編譯進(jìn)uboot 中(也就是編譯進(jìn)u-boot.bin 中)、取消編譯(也就是不編譯這個(gè)功能模塊)、編譯為模塊。按下“Y”鍵表示編譯進(jìn)uboot 中,此時(shí)“[ ]”變成了“[ * ]”;按下“N”表示不編譯,“[ ]”默認(rèn)表示不編譯;有些功能模塊是支持編譯為模塊的,這個(gè)一般在Linux 內(nèi)核里面很常用,uboot 下面不使用,如果要將某個(gè)功能編譯為模塊,那就按下“M”,此時(shí)“[ ]”就會(huì)變?yōu)椤?lt; M >”。
細(xì)心的朋友應(yīng)該會(huì)發(fā)現(xiàn),在mx6ull_alientek_emmc.h 里面我們配置使能了dhcp 和ping 命令,但是在圖34.1.3中dhcp 和ping 前面的“[ ]”并不是“[ * ]”,也就是說(shuō)不編譯dhcp 和ping命令,這不是沖突了嗎?實(shí)際情況是dhcp和ping 命令是會(huì)編譯的。之所以在圖34.1.3 中沒(méi)有體現(xiàn)出來(lái)時(shí)因?yàn)槲覀兪侵苯釉趍x6ull_alientek_emmc.h中定義的宏CONFIG_CMD_PING 和 CONFIG_CMD_DHCP,而menuconfig 是通過(guò)讀取.config
文件來(lái)判斷使能了哪些功能,.config里面并沒(méi)有宏CONFIG_CMD_PING
和CONFIG_CMD_DHCP,所以menuconfig 就會(huì)識(shí)別出錯(cuò)。
選中dns,然后按下“H”或者“?”鍵可以打開(kāi)dns 命令的提示信息,如圖34.1.5 所示:
按兩下ESC 鍵即可退出提示界面,相當(dāng)于返回上一層。選擇dns 命令以后,按兩下ESC 鍵(按兩下ESC 鍵相當(dāng)于返回上一層),退出當(dāng)前配置項(xiàng),進(jìn)入到上一層配置項(xiàng)。如果沒(méi)有要修改的就按兩下ESC 鍵,退出到主配界面,如果也沒(méi)有其他要修改的,那就再次按兩下ESC 鍵退出menuconfig 配置界面。如果修改過(guò)配置的話,在退出主界面的時(shí)候會(huì)有如圖34.1.6 所示提
示:
圖34.1.6 詢(xún)問(wèn)是否保存新的配置文件,通過(guò)鍵盤(pán)的←或→鍵來(lái)選擇“Yes”項(xiàng),然后按下鍵盤(pán)上的回車(chē)鍵確認(rèn)保存。至此,我們就完成了通過(guò)圖形界面使能了uboot 的dns 命令,打開(kāi).config文件,會(huì)發(fā)現(xiàn)多了“CONFIG_CMD_DNS=y”這一行,如圖34.1.7 中的323 行所示:
使用如下命令編譯uboot:
千萬(wàn)不能使用如下命令:
./mx6ull_alientek_emmc.sh因?yàn)閙x6ull_alientek_emmc.sh 在編譯之前會(huì)清理工程,會(huì)刪除掉.config 文件!通過(guò)圖形化界面配置所有配置項(xiàng)都會(huì)被刪除,結(jié)果就是竹籃打水一場(chǎng)空。
編譯完成以后燒寫(xiě)到SD 卡中,重啟開(kāi)發(fā)板進(jìn)入uboot 命令模式,輸入“?”查看是否有“dns”命令,一般肯定有的。使用dns 命令來(lái)查看一下百度官網(wǎng)“www.baidu.com”的IP 地址。
注意!如果要與外部互聯(lián)網(wǎng)通信,比如百度官網(wǎng),這個(gè)時(shí)候要保證開(kāi)發(fā)板能訪問(wèn)到外部互聯(lián)網(wǎng)。如果你的開(kāi)發(fā)板和電腦直接用網(wǎng)線連接的,那么肯定無(wú)法連接到外部網(wǎng)絡(luò),這個(gè)時(shí)候dns命令查看百度官網(wǎng)也會(huì)失敗!所以開(kāi)發(fā)板一定要連接到路由器上,而且要保證你的路由器能訪問(wèn)外網(wǎng),比如手機(jī)連接到這個(gè)路由器上以后可以正常訪問(wèn)互聯(lián)網(wǎng)。
要先設(shè)置一下dns 服務(wù)器的IP 地址,也就是設(shè)置環(huán)境變量dnsip 的值,命令如下:
setenv dnsip 114.114.114.114 saveenv設(shè)置好以后就可以使用dns 命令查看百度官網(wǎng)的IP 地址了,輸入命令:
dns www.baidu.com結(jié)果如圖34.1.8 所示:
從圖34.1.7 可以看出,“www.baidu.com”的IP 地址為14.215.177.38,說(shuō)明dns 命令工作正常。這個(gè)就是通過(guò)圖形化命令來(lái)配置uboot,一般用來(lái)使能一些命令還是很方便的,這樣就不需要到處找命令的配置宏是什么,然后在到配置文件里面去定義。
menuconfig 圖形化配置原理
make menuconfig 過(guò)程分析
當(dāng)輸入make menuconfig 以后會(huì)匹配到頂層Makefile 的如下代碼:
這個(gè)在31.3.13 小節(jié)已經(jīng)詳細(xì)的講解過(guò)了,其中build=-f ./scripts/Makefile.build obj,將490行的規(guī)則展開(kāi)就是:
Makefile.build 會(huì)讀取scripts/kconfig/Makefile 中的內(nèi)容,在scripts/kconfig/Makefile 中可以
找到如下代碼:
其中obj= scripts/kconfig,silent 是設(shè)置靜默編譯的,在這里可以忽略不計(jì),Kconfig=Kconfig,因此擴(kuò)展以后就是:
menuconfig: scripts/kconfig/mconf scripts/kconfig/mconf Kconfig目標(biāo)menuconfig 依賴(lài)scripts/kconfig/mconf,因此scripts/kconfig/mconf.c 這個(gè)文件會(huì)被編譯,生成mconf 這個(gè)可執(zhí)行文件。目標(biāo)menuconfig 對(duì)應(yīng)的規(guī)則為scripts/kconfig/mconf Kconfig,也就是說(shuō)mconf 會(huì)調(diào)用uboot 根目錄下的Kconfig 文件開(kāi)始構(gòu)建圖形配置界面。
Kconfig 語(yǔ)法簡(jiǎn)介
上一小節(jié)我們已經(jīng)知道了scripts/kconfig/mconf 會(huì)調(diào)用uboot 根目錄下的Kconfig 文件開(kāi)始構(gòu)建圖形化配置界面,接下來(lái)簡(jiǎn)單學(xué)習(xí)一下Kconfig 的語(yǔ)法。因?yàn)楹竺鎸W(xué)習(xí)Linux 驅(qū)動(dòng)開(kāi)發(fā)的時(shí)候可能會(huì)涉及到修改Kconfig,對(duì)于Kconfig 語(yǔ)法我們不需要太深入的去研究,關(guān)于Kconfig的詳細(xì)語(yǔ)法介紹,可以參考linux 內(nèi)核源碼(不知為何uboot 源碼中沒(méi)有這個(gè)文件)中的文件
Documentation/kbuild/kconfig-language.txt,本節(jié)我們大概了解其原理即可。打開(kāi)uboot 根目錄下的Kconfig,這個(gè)Kconfig 文件就是頂層Kconfig,我們就以這個(gè)文件為例來(lái)簡(jiǎn)單學(xué)習(xí)一下Kconfig語(yǔ)法。
1、mainmenu
顧名思義mainmenu 就是主菜單,也就是輸入“make menuconfig”以后打開(kāi)的默認(rèn)界面,在頂層Kconfig 中有如下代碼:
示例代碼34.2.2.1 頂層Kconfig 代碼段 mainmenu "U-Boot $UBOOTVERSION Configuration"上述代碼就是定義了一個(gè)名為“U-Boot $UBOOTVERSION Configuration”的主菜單,其中UBOOTVERSION=2016.03,因此主菜單名為“U-Boot 2016.03 Configuration”,如圖34.2.2.1 所示:
2、調(diào)用其他目錄下的Kconfig 文件
和makefile 一樣,Kconfig 也可以調(diào)用其他子目錄中的Kconfig 文件,調(diào)用方法如下:
source "xxx/Kconfig" //xxx 為具體的目錄名,相對(duì)路徑在頂層Kconfig 中有如下代碼:
從示例代碼34.2.2.2 中可以看出,頂層Kconfig 文件調(diào)用了很多其他子目錄下的Kcofig 文件,這些子目錄下的Kconfig 文件在主菜單中生成各自的菜單項(xiàng)。
3、menu/endmenu 條目
menu 用于生成菜單,endmenu 就是菜單結(jié)束標(biāo)志,這兩個(gè)一般是成對(duì)出現(xiàn)的。在頂層Kconfig 中有如下代碼:
示例代碼34.2.2.3 中有兩個(gè)menu/endmenu 代碼塊,這兩個(gè)代碼塊就是兩個(gè)子菜單,第14行的“menu “General setup””表示子菜單“General setup”。第102 行的“menu “Boot images””表示子菜單“Boot images”。體現(xiàn)在主菜單界面中就如圖34.2.2.2 所示:
在“General setup”菜單上面還有“Architecture select (ARM architecture)”和“ARM architecture ”這兩個(gè)子菜單,但是在頂層Kconfig 中并沒(méi)有看到這兩個(gè)子菜單對(duì)應(yīng)的menu/endmenu 代碼塊,那這兩個(gè)子菜單是怎么來(lái)的呢?這兩個(gè)子菜單就是arch/Kconfig 文件生成的。包括主界面中的“Boot timing”、“Console recording”等等這些子菜單,都是分別由頂層Kconfig 所調(diào)用的common/Kconfig、cmd/Kconfig 等這些子Kconfig 文件來(lái)創(chuàng)建的。
3、config 條目
頂層Kconfig 中的“General setup”子菜單內(nèi)容如下:
可以看出,在menu/endmenu 代碼塊中有大量的“config xxxx”的代碼塊,也就是config 條目。config 條目就是“General setup”菜單的具體配置項(xiàng),如圖34.2.2.3 所示:
“config LOCALVERSION”對(duì)應(yīng)著第一個(gè)配置項(xiàng),“config LOCALVERSION_AUTO”對(duì)應(yīng)著第二個(gè)配置項(xiàng),以此類(lèi)推。我們以“config LOCALVERSION ”和“config LOCALVERSION_AUTO”這兩個(gè)為例來(lái)分析一下config 配置項(xiàng)的語(yǔ)法:
第16 和26 行,這兩行都以config 關(guān)鍵字開(kāi)頭,后面跟著LOCALVERSION 和LOCALVERSION_AUTO,這兩個(gè)就是配置項(xiàng)名字。假如我們使能了LOCALVERSION_AUTO這個(gè)功能,那么就會(huì)下.config 文件中生成CONFIG_LOCALVERSION_AUTO,這個(gè)在上一小節(jié)講解如何使能dns 命令的時(shí)候講過(guò)了。由此可知,.config 文件中的“CONFIG_xxx”(xxx 就是
具體的配置項(xiàng)名字)就是Kconfig 文件中config 關(guān)鍵字后面的配置項(xiàng)名字加上“CONFIG_”前綴。
config 關(guān)鍵字下面的這幾行是配置項(xiàng)屬性,17~24 行是LOCALVERSION 的屬性,27~44 行是LOCALVERSION_AUTO 的屬性。屬性里面描述了配置項(xiàng)的類(lèi)型、輸入提示、依賴(lài)關(guān)系、幫助信息和默認(rèn)值等。
第17 行的string 是變量類(lèi)型,也就是“CONFIG_ LOCALVERSION”的變量類(lèi)型。可以為:bool、tristate、string、hex 和int,一共5 種。最常用的是bool、tristate 和string 這三種,bool 類(lèi)型有兩種值:y 和n,當(dāng)為y 的時(shí)候表示使能這個(gè)配置項(xiàng),當(dāng)為n 的時(shí)候就禁止這個(gè)配置項(xiàng)。
tristate 類(lèi)型有三種值:y、m 和n,其中y 和n 的涵義與bool 類(lèi)型一樣,m 表示將這個(gè)配置項(xiàng)編譯為模塊。string 為字符串類(lèi)型,所以LOCALVERSION 是個(gè)字符串變量,用來(lái)存儲(chǔ)本地字符串,選中以后即可輸入用戶(hù)定義的本地版本號(hào),如圖34.2.2.4 所示:
string 后面的“Local version - append to U-Boot release”就是這個(gè)配置項(xiàng)在圖形界面上的顯示出來(lái)的標(biāo)題。
第18 行,help 表示幫助信息,告訴我們配置項(xiàng)的含義,當(dāng)我們按下“h”或“?”彈出來(lái)的幫助界面就是help 的內(nèi)容。
第27 行,說(shuō)明“CONFIG_LOCALVERSION_AUTO”是個(gè)bool 類(lèi)型,可以通過(guò)按下Y 或N 鍵來(lái)使能或者禁止CONFIG_LOCALVERSION_AUTO。
第28 行,“default y”表示CONFIG_LOCALVERSION_AUTO 的默認(rèn)值就是y,所以這一行默認(rèn)會(huì)被選中。
4、depends on 和select
打開(kāi)arch/Kconfig 文件,在里面有這如下代碼:
第9 行,“depends on”說(shuō)明“SYS_GENERIC_BOARD”項(xiàng)依賴(lài)于“HAVE_GENERIC_BOARD”,也就是說(shuō)“HAVE_GENERIC_BOARD”被選中以后“SYS_GENERIC_BOARD”才能被選中。
第17~20 行,“select”表示方向依賴(lài),當(dāng)選中“ARC”以后,“HAVE_PRIVATE_LIBGCC”、“HAVE_GENERIC_BOARD”、“SYS_GENERIC_BOARD”和“SUPPORT_OF_CONTROL”這四個(gè)也會(huì)被選中。
4、choice/endchoice
在arch/Kconfig 文件中有如下代碼:
choice/endchoice 代碼段定義了一組可選擇項(xiàng),將多個(gè)類(lèi)似的配置項(xiàng)組合在一起,供用戶(hù)單選或者多選。示例代碼34.2.2.7 就是選擇處理器架構(gòu),可以從ARC、ARM、AVR32 等這些架構(gòu)中選擇,這里是單選。在uboot 圖形配置界面上選擇“Architecture select”,進(jìn)入以后如圖34.2.2.5所示:
可以在圖34.2.2.5 中通過(guò)移動(dòng)光標(biāo)來(lái)選擇所使用的CPU 架構(gòu)。第12 行的prompt 給出這個(gè)choice/endchoice 段的提示信息為“Architecture select”。
5、menuconfig
menuconfig 和menu 很類(lèi)似,但是menuconfig 是個(gè)帶選項(xiàng)的菜單,其一般用法為:
第1 行,定義了一個(gè)可選的菜單MODULES,只有選中了MODULES 第3~5 行if 到endifx之間的內(nèi)容才會(huì)顯示。在頂層Kconfig 中有如下代碼:
第74~99 行使用menuconfig 實(shí)現(xiàn)了一個(gè)菜單,路徑如下:
如圖34.2.2.6 所示:
從圖34.2.2.6 可以看到,前面有“[ ]”說(shuō)明這個(gè)菜單是可選的,當(dāng)選中這個(gè)菜單以后就可以進(jìn)入到子選項(xiàng)中,也就是示例代碼34.2.2.9 中的第83~99 行所描述的菜單,如圖34.2.2.7 所示:
如果不選擇“Configure standard U-Boot features (expert users)”,那么示例代碼34.2.2.9 中的第83~99 行所描述的菜單就不會(huì)顯示出來(lái),進(jìn)去以后是空白的。
6、comment
comment 用于注釋,也就是在圖形化界面中顯示一行注釋,打開(kāi)文件
drivers/mtd/nand/Kconfig,有如下所示代碼:
第81 行使用comment 標(biāo)注了一行注釋,注釋內(nèi)容為:“Generic NAND options”,這行注釋在配置項(xiàng)NAND_ARASAN 的下面。在圖形化配置界面中按照如下路徑打開(kāi):
-> Device Drivers -> NAND Device Support結(jié)果如圖34.2.2.8 所示:
從圖34.2.2.8 可以看出,在配置項(xiàng)“Configure Arasan Nand”下面有一行注釋,注釋內(nèi)容為“*** Generic NAND options ***”。
7、source
source 用于讀取另一個(gè)Kconfig,比如:
source "arch/Kconfig"這個(gè)在前面已經(jīng)講過(guò)了。
Kconfig 語(yǔ)法就講解到這里,基本上常用的語(yǔ)法就是這些,因?yàn)閡boot 相比Linux 內(nèi)核要小很多,所以配置項(xiàng)也要少很多,所以建議大家使用uboot 來(lái)學(xué)習(xí)Kconfig。一般不會(huì)修改uboot中的Kconfig 文件,甚至都不會(huì)使用uboot 的圖形化界面配置工具,本小節(jié)學(xué)習(xí)Kconfig 的目的主要還是為了Linux 內(nèi)核作準(zhǔn)備。
添加自定義菜單
圖形化配置工具的主要工作就是在.config 下面生成前綴為“CONFIG_”的變量,這些變量一般都要值,為y,m 或n,在uboot 源碼里面會(huì)根據(jù)這些變量來(lái)決定編譯哪個(gè)文件。本小節(jié)我們就來(lái)學(xué)習(xí)一下如何添加自己的自定義菜單,自定義菜單要求如下:
- ①、在主界面中添加一個(gè)名為“My test menu”,此菜單內(nèi)部有一個(gè)配置項(xiàng)。
- ②、配置項(xiàng)為“MY_TESTCONFIG”,此配置項(xiàng)處于菜單“My test menu”中。
- ③、配置項(xiàng)的為變量類(lèi)型為bool,默認(rèn)值為y。
- ④、配置項(xiàng)菜單名字為“This is my test config”。
- ⑤、配置項(xiàng)的幫助內(nèi)容為“This is a empty config, just for tset!”。
打開(kāi)頂層Kconfig,在最后面加入如下代碼:
menu "My test menu"config MY_TESTCONFIGbool "This is my test config"default yhelpThis is a empty config, just for test!endmenu # my test menu添加完成以后打開(kāi)圖形化配置界面,如圖34.3.1 所示:
從圖34.3.1 可以看出,主菜單最后面出現(xiàn)了一個(gè)名為“My test menu”的子菜單,這個(gè)就是我們上面添加進(jìn)來(lái)的子菜單。進(jìn)入此子菜單,如圖34.3.2 所示:
從圖34.3.2 可以看出,配置項(xiàng)添加成功,選中“This is my test config”配置項(xiàng),然后按下“H”鍵打開(kāi)幫助文檔,如圖34.3.3 所示:
從圖34.3.3 可以看出,幫助信息也正確。配置項(xiàng)MY_TESTCONFIG 默認(rèn)也是被選中的,因此在.config 文件中肯定會(huì)有“CONFIG_MY_TESTCONFIG=y”這一行,如圖34.3.4 所示:
至此,我們?cè)谥鞑藛翁砑幼约旱淖远x菜單就成功了,以后大家如果去半導(dǎo)體原廠工作的話,如果要編寫(xiě)Linux 驅(qū)動(dòng),那么很有可能需要你來(lái)修改甚至編寫(xiě)Kconfig 文件。Kconfig 語(yǔ)法其實(shí)不難,重要的點(diǎn)就是34.2.2 小節(jié)中的那幾個(gè),最主要的是記住:Kconfig 文件的最終目的就是在.config 文件中生成以“CONFIG_”開(kāi)頭的變量。
總結(jié)
以上是生活随笔為你收集整理的U-Boot 图形化配置及其原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: xp系统如可用计算机截图,WinXP系统
- 下一篇: 十大排序算法图解