成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux內核中Kconfig文檔有什么作用?

運維 系統運維
Kconfig就是對應著內核的配置菜單。假如要想添加新的驅動到內核的源碼中,能夠修改Kconfig,這樣就能夠選擇這個驅動,假如想使這個驅動被編譯,要修改Makefile。

內核源碼樹的目錄下都有兩個文檔Kconfig(2.4版本是Config.in)和Makefile。分布到各目錄的Kconfig構成了一個分布式的內核配置數據庫,每個Kconfig分別描述了所屬目錄源文檔相關的內核配置菜單。在內核配置make menuconfig(或xconfig等)時,從Kconfig中讀出菜單,用戶選擇后保存到。config的內核配置文檔中。 在內核編譯時,主Makefile調用這個。config,就知道了用戶的選擇。

  上面的內容說明了,Kconfig就是對應著內核的配置菜單。假如要想添加新的驅動到內核的源碼中,能夠修改Kconfig,這樣就能夠選擇這個驅動,假如想使這個驅動被編譯,要修改Makefile。

  因此添加新的驅動時需要修改的文檔有兩種(注意不只是兩個)

  *Kconfig

  *Makefile

  要想知道怎么修改這兩種文檔,就要知道兩種文檔的語法結構。

  First:Kconfig

  每個菜單都有一個關鍵字標識,最常見的就是config。

  語法:

  config

  symbol是個新的標記的菜單項,options是在這個新的菜單項下的屬性和選項

  其中options部分有:

  1、類型定義:

  每個config菜單項都要有類型定義,bool布爾類型、 tristate三態:內建、模塊、移除 string字符串、 hex十六進制、 integer整型

  例如config HELLO_MODULE

  bool "hello test module"

  bool類型的只能選中或不選中,tristate類型的菜單項多了編譯成內核模塊的選項,假如選擇編譯成內核模塊,則會在。config中生成一個CONFIG_HELLO_MODULE=m的配置,假如選擇內建,就是直接編譯成內核影響,就會在。config中生成一個CONFIG_HELLO_MODULE=y的配置。

  2、依賴型定義depends on或requires

  指此菜單的出現和否依賴于另一個定義

  config HELLO_MODULE

  bool "hello test module"

  depends on ARCH_PXA

  這個例子表明HELLO_MODULE這個菜單項只對XScale處理器有效。

  3、幫助性定義

  只是增加幫助用關鍵字help或---help---

  Second:內核的Makefile

  在linux2.6.x/Documentation/kbuild目錄下有周詳的介紹有關kernel makefile的知識。

  內核的Makefile分為5個組成部分:

  Makefile 最頂層的Makefile

  .config 內核的當前配置文檔,編譯時成為頂層Makefile的一部分

  arch/$(ARCH)/Makefile 和體系結構相關的Makefile

  s/ Makefile.* 一些Makefile的通用規則

  kbuild Makefile 各級目錄下的大概約500個文檔,編譯時根據上層Makefile傳下來的宏定義和其他編譯規則,將源代碼編譯成模塊或編入內核。

  頂層的Makefile文檔讀取 .config文檔的內容,并總體上負責build內核和模塊。Arch Makefile則提供補充體系結構相關的信息。 s目錄下的Makefile文檔包含了任何用來根據kbuild Makefile 構建內核所需的定義和規則。

  (其中。config的內容是在make menuconfig的時候,通過Kconfig文檔配置的結果)

  舉個例子:

  假設想把自己寫的一個flash的驅動程式加載到工程中,而且能夠通過menuconfig配置內核時選擇該驅動該怎么辦呢?能夠分三步:

  第一:將您寫的flashtest.c 文檔添加到/driver/mtd/maps/ 目錄下。

  第二:修改/driver/mtd/maps目錄下的kconfig文檔:

  config MTD_flashtest

  tristate “ap71 flash"

  這樣當make menuconfig時 ,將會出現 ap71 flash選項。

  第三:修改該目錄下makefile文檔。

  添加如下內容:obj-$(CONFIG_MTD_flashtest) += flashtest.o

  這樣,當您運行make menucofnig時,您將發現ap71 flash選項,假如您選擇了此項。該選擇就會保存在。config文檔中。當您編譯內核時,將會讀取。config文檔,當發現ap71 flash 選項為yes 時,系統在調用/driver/mtd/maps/下的makefile 時,將會把 flashtest.o 加入到內核中。即可達到您的目的。

責任編輯:趙寧寧
相關推薦

2019-08-15 16:00:21

Linux內核Kconfig

2011-08-19 08:58:34

Linux

2021-12-22 22:32:48

鴻蒙HarmonyOS應用

2021-12-27 16:24:11

鴻蒙HarmonyOS應用

2023-03-28 07:03:15

gRPCMetadata

2025-05-28 08:05:00

stdclassPHP開發

2018-07-20 14:00:51

LinuxmacOS內核

2022-05-16 23:10:54

穩定幣區塊鏈加密貨幣

2021-01-21 17:27:05

區塊鏈加密貨幣穩定幣

2021-07-06 07:27:45

React元素屬性

2023-12-07 07:08:09

Angular函數

2022-10-12 14:29:18

商業智能工具數據

2009-12-17 15:18:47

2011-08-22 13:38:41

Linux變量

2023-05-04 10:27:54

數據安全文檔管理

2009-10-29 09:41:01

Linux內核DeviceMappe

2009-03-23 09:50:36

Linux內核華人

2020-12-15 09:08:40

LinuxShell

2011-08-16 16:20:33

Linuxkconfigmakefile

2021-02-20 06:08:07

LinuxWindows內核
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品福利视频一区二区三区 | 亚洲精品在线免费播放 | 粉嫩高清一区二区三区 | 欧美中文字幕一区二区 | 欧美日韩大片 | 欧美片网站免费 | 国产精品99久久久久久www | 亚洲伦理自拍 | 天天色影视综合 | 国产美女一区 | 一区二区三区在线免费观看 | 日韩av中文 | 久久久久国产精品一区二区 | 久久久亚洲一区 | 午夜精品久久 | 三区四区在线观看 | 亚洲视频一区在线观看 | 色综合天天综合网国产成人网 | 日韩视频一区在线观看 | 久久99精品久久久久久琪琪 | 国产精品96久久久久久 | 国产一级特黄aaa大片评分 | 欧美一级黄色免费 | 日韩一区在线播放 | 日本久久网站 | 精品国产一区二区国模嫣然 | 高清亚洲 | 亚洲欧美久久 | 免费观看一级特黄欧美大片 | 91精品久久久久久久久 | 精品欧美黑人一区二区三区 | 毛片免费在线 | 精久久久| 视频一区在线观看 | 国产一区二区在线91 | 日韩视频成人 | 国产综合久久 | 久草在线 | 天天操网| 一级黄色毛片免费 | 台湾a级理论片在线观看 |