色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看


嵌入式Linux內(nèi)核如何編譯

分享到:
           

    編譯嵌入式Linux內(nèi)核都是通過make的不同命令來實(shí)現(xiàn)的,它的執(zhí)行配置文件是Makefile。Linux內(nèi)核中不同的目錄結(jié)構(gòu)里都有相應(yīng)的Makefile,而不同的Makefile又通過彼此之間的依賴關(guān)系構(gòu)成統(tǒng)一的整體,共同完成建立依存關(guān)系、建立內(nèi)核等功能。

    內(nèi)核的編譯根據(jù)不同的情況會(huì)有不同的步驟,但其中主要分別為3個(gè)步驟:內(nèi)核配置、建立依存關(guān)系、建立內(nèi)核,其他的為一些輔助功能,如清除文件等。如果在實(shí)際編譯時(shí)若出現(xiàn)錯(cuò)誤,可以考慮采用其他輔助功能。下面首先分別講述這3步為主要的步驟。

    1.內(nèi)核配置

    第一步內(nèi)核配置中的選項(xiàng)主要是用戶用來為目標(biāo)板選擇處理器架構(gòu)的選項(xiàng),不同的處理器架構(gòu)會(huì)有不同的處理器選項(xiàng),比如ARM就有其專用的選項(xiàng)如“Multimedia capabilities port drivers”等。因此,在此之前,必須確保在根目錄中Makefile里“ARCH”的值已設(shè)定了目標(biāo)板的類型,如:
    ARCH:= arm

    接下來就可以進(jìn)行內(nèi)核配置了,內(nèi)核支持4種不同的配置方法,這幾種方法只是與用戶交互的界面不同,其實(shí)現(xiàn)的功能是一樣的。每種方法都會(huì)通過讀入了一個(gè)默認(rèn)的配置文件,即根目錄下“.config”隱藏文件(用戶也可以手動(dòng)修改該文件,但不推薦使用)來實(shí)現(xiàn)。

    當(dāng)然,用戶也可以自己加載其他配置文件,也可以將當(dāng)前的配置保存為其他名字的配置文件。這4種方式如下所示:
    ·make config:基于文本的為傳統(tǒng)的配置界面,不推薦使用。
    ·make menuconfig:基于文本選單的配置界面,字符終端下推薦使用。
    ·make xconfig:基于圖形窗口模式的配置界面,Xwindow下推薦使用。
    ·make oldconfig:自動(dòng)讀入“.config”配置文件,并且只要求用戶設(shè)定前次沒有設(shè)定過的選項(xiàng)。

    在這4種模式中,make menuconfig使用為廣泛,下面就以make menuconfig為例進(jìn)行講解,如圖1.1所示。

圖1.1  make menuconfig配置界面
圖1.1 make menuconfig配置界面

    從該圖中可以看出,Linux內(nèi)核允許用戶對(duì)其各類功能逐項(xiàng)配置,一共有18類配置選項(xiàng),這里就不對(duì)這18類配置選項(xiàng)進(jìn)行一一講解了,需要的讀者可以參見相關(guān)選項(xiàng)的help。在menuconfig的配置界面中是純鍵盤的操作,用戶可使用上下鍵和“Tab”鍵移動(dòng)光標(biāo)以進(jìn)入相關(guān)子項(xiàng),如圖1.2所示進(jìn)入了“System Type”子項(xiàng),該子項(xiàng)是一個(gè)重要的選項(xiàng),主要用來選擇處理器的類型。

    可以看到,每個(gè)選項(xiàng)前都有個(gè)括號(hào),按空格鍵或“Y”鍵表示包含該選項(xiàng),按“N”表示不包含該選項(xiàng)。

    另外,讀者可以注意到,這里的括號(hào)有3種:中括號(hào)、尖括號(hào)和圓括號(hào)。讀者用空格鍵選擇相應(yīng)的選項(xiàng)時(shí)可以發(fā)現(xiàn):中括號(hào)里要么是空,要么是“*”;尖括號(hào)里可以是空、“*”和“M”,分別表示包含選項(xiàng)、不包含選項(xiàng)和編譯成模塊;圓括號(hào)的內(nèi)容是要求用戶在所提供的幾個(gè)選項(xiàng)中選擇一項(xiàng)。

    此外,要注意2.6和2.4內(nèi)核在串口命名上的一個(gè)重要區(qū)別,在2.4內(nèi)核中“COM1”對(duì)應(yīng)的是“ttyS0”,而在2.6內(nèi)核中“COM1”對(duì)應(yīng)“ttySAC0”,因此在啟動(dòng)參數(shù)的子項(xiàng)要格外注意,如圖1.3所示,否則串口打印不出信息。

圖1.2  System Type子項(xiàng)
圖1.2 System Type子項(xiàng)

圖1.3  啟動(dòng)參數(shù)配置子項(xiàng)
圖1.3 啟動(dòng)參數(shù)配置子項(xiàng)

    一般情況下,使用廠商提供的默認(rèn)配置文件都能正常運(yùn)行,所以用戶初次使用時(shí)可以不用對(duì)其進(jìn)行額外的配置,以后使用需要其他功能時(shí)再另行添加,這樣可以大大減少出錯(cuò)的幾率,有利于錯(cuò)誤定位。在完成配置之后,就可以保存退出,如圖1.4所示。

圖1.4  保存退出
圖1.4 保存退出

    2.建立依賴關(guān)系

    由于內(nèi)核源碼樹中的大多數(shù)文件都與一些頭文件有依賴關(guān)系,因此要順利建立內(nèi)核,內(nèi)核源碼樹中的每個(gè)Makefile就必須知道這些依賴關(guān)系。建立依賴關(guān)系往往發(fā)生在第一次編譯內(nèi)核的時(shí)候,它會(huì)在內(nèi)核源碼樹中每個(gè)子目錄產(chǎn)生一個(gè)“.depend”文件,運(yùn)行“make dep”即可。

    3.建立內(nèi)核

    建立內(nèi)核可以使用“make zImage”或“make bzImage”,這里建立的為壓縮的內(nèi)核映像。通常在Linux中,內(nèi)核映像分為壓縮的內(nèi)核映像和未壓縮的內(nèi)核映像。其中,壓縮的內(nèi)核映像通常名為zImage,位于“arch/$(ARCH)/boot”目錄中。而未壓縮的內(nèi)核映像通常名為vmlinux,位于源碼樹的根目錄中。

    到這一步就完成了內(nèi)核源代碼的編譯,之后,讀者可以使用上一小節(jié)所講述的方法,把內(nèi)核壓縮文件下載到開發(fā)板上運(yùn)行。

    小知識(shí):在嵌入式Linux的源碼樹中通常有以下幾個(gè)配置文件,“.config”、“autoconf.h”、“config.h”。其中“.config”文件是make menuconfig默認(rèn)的配置文件,位于源碼樹的根目錄中;“autoconf.h”和“config.h”是以宏的形式表示了內(nèi)核的配置,當(dāng)用戶使用make menuconfig做了一定的更改之后,系統(tǒng)自動(dòng)會(huì)在“autoconf.h”和“config.h”中做出相應(yīng)的更改,它們位于源碼樹的“/include/linux/”下。


   熱點(diǎn)鏈接:

   1、嵌入式Linux編譯器GCC編譯流程
   2、北京嵌入式培訓(xùn)哪好
   3、嵌入式培訓(xùn)資料:搭建交叉編譯環(huán)境
   4、六種常見嵌入式操作系統(tǒng)
   5、嵌入式Linux編輯器vi的使用

更多新聞>> 

主站蜘蛛池模板: 波多中文字幕 | 涂了春药被一群人伦爽99势 | 亚洲午夜激情视频 | 国模丽丽啪啪一区二区 | 性生交大图片费看 | 国产v综合v亚洲欧 | 欧美性色19P | 成人无码区免费aⅴ片www老师 | 曰本女人牲交全视频播放毛片 | 和人妻隔着帘子按摩中字 | 欧美日韩一二三四五区 | AV无码无在线观看免费 | 国产美女视频国产视视频 | 国产古装全黄A级视频 | 久久ss | 小婕子伦流澡到高潮H | 亚洲欧美日韩高清一区 | 亚洲自偷自拍另类11P | 国产v亚洲v天堂无码 | 日韩观看| 中文字幕无码人妻少妇免费 | 中国VIDEOSEX高潮 | 噼里啪啦动漫在线观看免费 | 无码国产精品一区二区免费I6 | 亚洲AV综合色区无码一区爱AV | 波多野结衣免费观看视频 | 粗壮挺进人妻水蜜桃成熟 | 国产自在自线午夜精品视频 | 亚洲成a∧人片在线播放 | 国产无套内射普通话对白 | 色综合色欲色综合色综合色综合r | 国产成人免费97在线 | 日本大片免A费观看视频三区 | 国产超碰97人人做人人爱 | 日本中文字幕不卡 | 国产又爽又大又黄A片图片 欧美日韩在线不卡视频 | 啪啪tv网站免费入口 | 在教室伦流澡到高潮h麻豆 日本高清视频色欧www | 性XXXXX大片免费视频 | 久久视频这里只精品3国产 热RE99久久6国产精品免费 | 国产精品久久久久影院亚瑟 |