久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 帶(dai)你了解make menuconfig

帶你(ni)了解make menuconfig 時間:2018-08-15      來源:未知(zhi)

在嵌(qian)入式(shi)領(ling)域當(dang)中(zhong),在配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)內核(he)的(de)(de)(de)(de)時候會有(you)很多配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)方法(fa),比(bi)如(ru)說make config(基于文本的(de)(de)(de)(de)為(wei)傳統的(de)(de)(de)(de)配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)界面(mian)(mian))、make oldconfig(如(ru)何(he)只想(xiang)在原來內核(he)配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)的(de)(de)(de)(de)基礎上修改一部分,則會省去很多麻煩)、make xconfig(基于圖形窗口模式(shi)的(de)(de)(de)(de)配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)界面(mian)(mian),Xwindow下推(tui)薦(jian)使(shi)用)、make menuconfig(基于文本選擇的(de)(de)(de)(de)配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)界面(mian)(mian),字符終端下推(tui)薦(jian)使(shi)用),以上4種(zhong)配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)方式(shi)的(de)(de)(de)(de)目(mu)的(de)(de)(de)(de)都是(shi)在源碼的(de)(de)(de)(de)頂層目(mu)錄下面(mian)(mian)生成(cheng)一個.config文件,那么(me)在我(wo)們(men)嵌(qian)入式(shi)開發當(dang)中(zhong),經常(chang)使(shi)用的(de)(de)(de)(de)和推(tui)薦(jian)使(shi)用的(de)(de)(de)(de)是(shi)make menuconfig這種(zhong)配(pei)(pei)(pei)(pei)置(zhi)(zhi)(zhi)(zhi)方法(fa)。

現在以linux-3.14.25內核為例,在內核的源碼目(mu)錄下面(mian),執行make menuconfig命令。

在(zai)執(zhi)行(xing)命令的時候可(ke)能出現的錯誤有:

1. 一(yi)些安(an)裝包沒有提前安(an)裝上(shang);(根據錯(cuo)誤提示依次安(an)裝)

2. 終端(duan)窗(chuang)口(kou)太小導致錯誤;

正常執行(xing)make menuconfig之后會出現下面的菜單框:

大家可能有(you)疑問(wen),這(zhe)個界面是(shi)通過什么(me)來生成的(de)呢(ni)?其(qi)實也(ye)很容易會知道,當(dang)我們執行make menuconfig后,肯(ken)定會執行Makefile,那么(me)我們打開Makefile文件來尋找menuconfig這(zhe)個目標,但是(shi)是(shi)搜索不(bu)到的(de),這(zhe)里(li)有(you)個技(ji)巧(qiao),我們使用%config來搜索,%是(shi)通配(pei)符的(de)意思,會搜索到相關目標:

那么我們就(jiu)會(hui)看到,繪制圖形和(he)解析這個界面的文(wen)件都(dou)會(hui)在scripts/kconfig目錄下面,比較重(zhong)要的文(wen)件有(you)mconf.c和(he)lxdialog目錄。如果感(gan)興趣(qu)的話(hua)可以研究,這里就(jiu)不詳(xiang)細說(shuo)明了。

進入菜單之后我們可以看到(dao)有(you)(you)標題(ti)、有(you)(you)說(shuo)明性的(de)文(wen)(wen)字、和關(guan)鍵的(de)選項。它們又是(shi)(shi)如何呈現(xian)在菜單中(zhong)的(de)呢,其實系統會(hui)讀取源(yuan)碼(ma)目(mu)錄下面Kconfig文(wen)(wen)件(jian),Kconfig文(wen)(wen)件(jian)是(shi)(shi)一個(ge)幫助內核(he)添加(jia)內核(he)選項的(de)一個(ge)配置文(wen)(wen)件(jian),打開這個(ge)Kconfig文(wen)(wen)件(jian)可以看到(dao):

大家可以(yi)觀(guan)察到(dao)(dao),我們打開的(de)(de)菜(cai)單是(shi)有很(hen)多(duo)(duo)(duo)的(de)(de)選項(xiang)的(de)(de),既然(ran)Kconfig是(shi)一(yi)個(ge)(ge)(ge)添加選項(xiang)的(de)(de)配置文(wen)件,那么(me)這(zhe)個(ge)(ge)(ge)文(wen)件中(zhong)(zhong)為什么(me)這(zhe)么(me)少的(de)(de)內容呢(ni),其(qi)實關鍵(jian)點在(zai) source “arch/$SRCARCH/Kconfig”,這(zhe)句話的(de)(de)意思就是(shi)調(diao)用(yong)其(qi)它(ta)目錄下面(mian)的(de)(de)Kconfig文(wen)件,所以(yi)我們需要(yao)打開arch/$SRCARCH/Kconfig文(wen)件,但是(shi)SRCARCH這(zhe)個(ge)(ge)(ge)變(bian)量的(de)(de)值又是(shi)如何(he)確定的(de)(de)呢(ni)?很(hen)簡單,它(ta)是(shi)在(zai)源碼(ma)頂(ding)層目錄下的(de)(de)Makefile中(zhong)(zhong)賦值的(de)(de),ARCH=arm,所以(yi)我們需要(yao)進入到(dao)(dao)arch/arm/Kconfig文(wen)件中(zhong)(zhong),進來之后(hou)大家就會(hui)看(kan)到(dao)(dao)非常多(duo)(duo)(duo)的(de)(de)選項(xiang)了,同時(shi)也(ye)會(hui)調(diao)用(yong)很(hen)多(duo)(duo)(duo)各個(ge)(ge)(ge)目錄下面(mian)的(de)(de)Kconfig文(wen)件。

那么(me)大(da)家一定頁想知(zhi)道(dao)每一個選(xuan)項時(shi)如何寫(xie)的呢?這個Kconfig文件的語法格式時(shi)什么(me)樣子的呢?下面我們來看一下:

1. 每條選項的前面可(ke)以看(kan)到(dao)[ ]、< >、( )三種表(biao)示方式

[ ] 有(you)兩種(zhong)狀態,*代表(biao)選(xuan)中,沒有(you)*代表(biao)未(wei)選(xuan)中;

選中(zhong)的(de)(de)意(yi)思是對(dui)應的(de)(de)選項功(gong)能會被(bei)編譯進(jin)內(nei)核鏡像文件中(zhong);

< > 有(you)三種狀態,*代表(biao)(biao)選中(zhong),沒有(you)*代表(biao)(biao)未選中(zhong),M代表(biao)(biao)模塊;

( ) 存放十(shi)進制(zhi)或(huo)十(shi)六進制(zhi)或(huo)字(zi)符串(chuan);

2. mainmenu “字(zi)符(fu)串(chuan)描(miao)述信息(xi)”, 它只用一(yi)次(ci),我(wo)們(men)一(yi)般不用修(xiu)改;

3. menu “Device Drivers”…endmenu,表示(shi)Device Drivers是一個子選項菜單,每一個選項是包含(han)在drivers/bus/Kconfig文件中的。

4. [ ]、< >、( )如何表示的(de)及后面跟著(zhu)的(de)選項字符串(chuan)是如何得(de)來的(de)呢?

這里(li)我(wo)們自(zi)己添加一個選項在Device Drivers中的Character devices中;

FS4412_LED Device Support選項;

那么(me)我們(men)就需要在drivers/char/下(xia)的(de)Kconfig文(wen)件中(zhong)添加內容(rong)。如(ru)圖所示(shi):

config 是一(yi)個關(guan)鍵字,對應的是一(yi)個選項配置;

如果FS4412_LED Device Support選項(xiang)被選中為(wei)*,則(ze)保存(cun)配(pei)置(zhi)(zhi)之后(hou)(hou)會在源碼(ma)目錄下面(mian)的(de)(de).config文件(jian)中出(chu)現CONFIG_FS4412_LED的(de)(de)配(pei)置(zhi)(zhi)項(xiang)并(bing)賦值為(wei)y;這個.config文件(jian)就是配(pei)置(zhi)(zhi)內核后(hou)(hou)生成的(de)(de)保存(cun)配(pei)置(zhi)(zhi)信息(xi)的(de)(de)文件(jian)。

Tristate是表示 < >的,bool是表示[ ]的,string是表示( )的;

Depends on表示此(ci)選項會依賴其它選項配置(zhi),也(ye)就是說(shuo)當ARCH_EXYNOS4這(zhe)個選項被(bei)選擇上之后,該選項才能(neng)被(bei)選擇;

help是(shi)幫助信息;

default y表示該選(xuan)項默認被選(xuan)擇上。

以上(shang)就(jiu)是make menuconfig的一(yi)些用法和注意(yi)事項,后(hou)說明一(yi)點,當我們添加了(le)選(xuan)項并(bing)修改配(pei)置選(xuan)項之后(hou),保存(cun)退(tui)出菜單(dan),會在源(yuan)碼(ma)目錄下面(mian)生成一(yi)個.config文(wen)件(jian),在該文(wen)件(jian)中會找到一(yi)個我們后(hou)添加的配(pei)置項;

這(zhe)里表示(shi)當我們在(zai)編(bian)譯(yi)內(nei)核(he)的(de)時候,該(gai)選項(led驅(qu)動)會被編(bian)譯(yi)進內(nei)核(he)uImage中,但(dan)是我們還需做(zuo)一(yi)步工作就是在(zai)drivers/char/Makefile中添加一(yi)句(ju)話:

在我們編譯uImage的(de)時候,這(zhe)個led的(de)驅(qu)動才會被編譯進(jin)內(nei)核,這(zhe)里(li)還需要(yao)注意一(yi)點就是(shi)這(zhe)個led的(de)驅(qu)動代碼一(yi)定要(yao)是(shi)在drivers/char的(de)目錄下面存在的(de),否則之前(qian)做(zuo)的(de)都是(shi)無用功。

以上就是(shi)關于make menuconfig的一些介紹(shao),包括Kconfig的語法和(he).config配置文件(jian)的說(shuo)明,還(huan)有如何添加一個選項(xiang)。至于菜單中其它選項(xiang)的意思和(he)作(zuo)用是(shi)什(shen)么,那就需要大家慢(man)慢(man)積累和(he)查(cha)找(zhao)總結(jie)了。

上一篇:Activity生命周期攻略

下一篇:基于linux3.0.15內核的中星微zc301攝像頭驅動及網絡視頻服務器移

熱點(dian)文章推(tui)薦
華清學員就業榜單
高薪學員(yuan)經驗(yan)分享
熱點新聞推薦(jian)
前臺(tai)專線:010-82525158 企業培訓洽談專線:010-82525379 院校合(he)作洽(qia)談專(zhuan)線(xian):010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部