日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【内核驱动】 Kconfig简介

發布時間:2024/4/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【内核驱动】 Kconfig简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當執行make menuconfig時會出現內核的配置界面,所有配置工具都是通過讀取"arch/$(ARCH)Kconfig"文件來生成配置界面,這個文件就是所有配置的總入口,它會包含其他目錄的Kconfig

Kconfig的作用:Kconfig用來配置內核,它就是各種配置界面的源文件,內核的配置工具讀取各個Kconfig文件,生成配置界面供開發人員配置內核,最后生成配置文件.config

Kconfig的語法可以參考“Documentation/kbuild/kconfig-language.txt

?

Kconfig文件的基本要素:

1. config條目(entry)

?? config TMPFS_POSIX_ACL

???? bool "Tmpfs POSIX Access Control Lists"

???? depends on TMPFS

???? select GENERIC_ACL

???? help

?????? POSIX Access Control Lists (ACLs) support permissions for users and

?????? groups beyond the owner/group/world scheme.

???? To learn more about Access Control Lists, visit the POSIX ACLs for

????? ?Linux website <http://acl.bestbits.at/>.

????? If you don't know what Access Control Lists are, say N.

解析:

??? config是關鍵字,表示一個配置選項的開始;緊跟著的TMPFS_POSIX_ACL是配置選項的名稱,省略了前綴"CONFIG_"

???? bool表示變量類型,即"CONFIG_ TMPFS_POSIX_ACL "的類型,有5種類型:bool、tristate、string、hex和int,其中tristate和string是基本的類型

?????????????? bool變量的值:????y和n

?????????????? tristate變量的值:y、n和m

?????????????? string變量的值:??字符串

??? bool之后的字符串“Tmpfs POSIX Access Control Lists”是提示信息,在配置界面中上下移動光標選中它時,就可以通過按空格或回車鍵來設置

CONFIG_ TMPFS_POSIX_ACL的值

???? depends on:表示依賴于XXX,“depends on TMPFS”表示只有當TMPFS配置選項被選中時,當前配置選項的提示信息才會出現,才能設置當前配置選項


2. menu條目

??? menu條目用于生成菜單,其格式如下:

?????????menu "Floating poing emulation"

?????????config FPE_NWFPE

?????????..............

?????????config FPE_NWFPE_XP

?????????.............

?????????endmenu

??? menu之后的Floating poing emulation是菜單名,menu和endmenu間有很多config條目,在配置界面中如下所示:

?????????Floating poing emulation--->

???????????????????????[] FPE_NWFPE

???????????????????????[] FPE_NWFPE_XP


3. choice條目

??? choice條目將多個類似的配置選項組合在一起,供用戶單選或多選

??????? choice

?????????????prompt "ARM system type"

?????????????default ARCH_VERSATILE

?????????????config ARCH_AAEC2000

??????????????????.........

?????????????config ARCH_REALVIEW

??????????????????.........

????????endchoice

?????? prompt "ARM system type"給出提示信息“ARM system type”,光標選中后回車進入就可以看到多個config條目定義的配置選項

????? choice條目中定義的變量只有bool和tristate


4. comment條目

???comment條目用于定義一些幫助信息,出現在界面的第一行,如在arch/arm/Kconifg中有如下代碼:

menu "Floating point emulation"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

comment "At least one emulation must be selected"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

config FPE_NWFPE

.........???????????????????????????????????????????????????????????????????????????????

config FPE_NWFPE_XP


5. source條目

??? source條目用于讀取另一個Kconfig文件,如

???????? source "net/Kconifg"


實戰

eg1.?

[root@localhost linux-3.5]# make menuconfig?

出現如下界面:


eg2:

解析Kconfig的代碼的位置如下

[root@localhost kconfig]# pwd
/var/opt/linux-3.5/scripts/kconfig
[root@localhost kconfig]# vim mconf.c?

編譯之后會生成mconf可執行文件

[root@localhost linux-3.5]# ./scripts/kconfig/mconf ?./arch/arm/Kconfig

生成如下圖形界面:


eg3:?

創建自己的Kconfig

[root@localhost uplooking]# pwd
/var/opt/linux-3.5/drivers/uplooking
[root@localhost uplooking]# touch Kconfig?

? ? ??Kconfig文件內容如下

[root@localhost linux-3.5]# ./scripts/kconfig/mconf ?./drivers/uplooking/Kconfig?

解析結果如下:

? ? ? ? ? ??

修改上一層Kconfig

最后會添加到Drivers選項中,結果如下圖所示:


嵌入式學習交流群:143847203

二維碼:


總結

以上是生活随笔為你收集整理的【内核驱动】 Kconfig简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。