亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

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

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

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

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

在執行命令的時候可能出現的錯誤有:

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

2. 終端窗口太小導致錯誤;

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

大家可能有疑問,這個界面是通過什么來生成的呢?其實也很容易會知道,當我們執行make menuconfig后,肯定會執行Makefile,那么我們打開Makefile文件來尋找menuconfig這個目標,但是是搜索不到的,這里有個技巧,我們使用%config來搜索,%是通配符的意思,會搜索到相關目標:

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

進入菜單之后我們可以看到有標題、有說明性的文字、和關鍵的選項。它們又是如何呈現在菜單中的呢,其實系統會讀取源碼目錄下面Kconfig文件,Kconfig文件是一個幫助內核添加內核選項的一個配置文件,打開這個Kconfig文件可以看到:

大家可以觀察到,我們打開的菜單是有很多的選項的,既然Kconfig是一個添加選項的配置文件,那么這個文件中為什么這么少的內容呢,其實關鍵點在 source “arch/$SRCARCH/Kconfig”,這句話的意思就是調用其它目錄下面的Kconfig文件,所以我們需要打開arch/$SRCARCH/Kconfig文件,但是SRCARCH這個變量的值又是如何確定的呢?很簡單,它是在源碼頂層目錄下的Makefile中賦值的,ARCH=arm,所以我們需要進入到arch/arm/Kconfig文件中,進來之后大家就會看到非常多的選項了,同時也會調用很多各個目錄下面的Kconfig文件。

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

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

[ ] 有兩種狀態,*代表選中,沒有*代表未選中;

選中的意思是對應的選項功能會被編譯進內核鏡像文件中;

< > 有三種狀態,*代表選中,沒有*代表未選中,M代表模塊;

( ) 存放十進制或十六進制或字符串;

2. mainmenu “字符串描述信息”, 它只用一次,我們一般不用修改;

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

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

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

FS4412_LED Device Support選項;

那么我們就需要在drivers/char/下的Kconfig文件中添加內容。如圖所示:

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

如果FS4412_LED Device Support選項被選中為*,則保存配置之后會在源碼目錄下面的.config文件中出現CONFIG_FS4412_LED的配置項并賦值為y;這個.config文件就是配置內核后生成的保存配置信息的文件。

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

Depends on表示此選項會依賴其它選項配置,也就是說當ARCH_EXYNOS4這個選項被選擇上之后,該選項才能被選擇;

help是幫助信息;

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

以上就是make menuconfig的一些用法和注意事項,后說明一點,當我們添加了選項并修改配置選項之后,保存退出菜單,會在源碼目錄下面生成一個.config文件,在該文件中會找到一個我們后添加的配置項;

這里表示當我們在編譯內核的時候,該選項(led驅動)會被編譯進內核uImage中,但是我們還需做一步工作就是在drivers/char/Makefile中添加一句話:

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

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

上一篇:Activity生命周期攻略

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

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

回到頂部

主站蜘蛛池模板: www.日本在线播放 | 韩国一级成a人片在线观看 韩国一级黄色 | 男女www视频在线看网站 | 色avv| 欧美日韩中文国产va另类 | 日本一区二区三区免费高清在线 | 欧美韩国日本在线 | www.亚洲天堂网 | 久久久免费精品 | 欧美一区二区三区综合色视频 | 欧美男人的天堂 | 日本高清视频wwww色 | 欧美国产日韩在线观看 | 久热久| 国产一级毛片一区二区三区 | 国产精品白嫩在线观看 | 久久久久久久久影院 | 看毛片免费 | 日本成人激情视频 | 国产精品一区二区在线观看 | 国产一二三视频 | 青草影院在线观看免费版 | 日本理论在线观看 | a级一片| 日韩在线视频线视频免费网站 | 亚洲视频在线a视频 | 欧美成人精品动漫在线专区 | 亚洲视频1| 热热色原网址 | 视频一区二区中文字幕 | 国产成人久久综合热 | 亚洲第一中文字幕 | 国产精品高清在线观看地址 | 男人天堂免费视频 | 久久久久久久国产高清 | 久操精品在线观看 | 毛片视| 黑人精品videos亚洲人 | 国产一级做a爰片... | 久久中文字幕网 | 99热精品在线播放 |