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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Arm Linux交叉编译和连接过程分析(1)

發(fā)布時(shí)間:2023/12/10 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Arm Linux交叉编译和连接过程分析(1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、配置內(nèi)核(Kconfig

我們配置內(nèi)核是實(shí)質(zhì)是根據(jù)眾多目錄下面的Kconfig文件中組合成我們需要的一個(gè)最佳選擇,即最終在根目錄下面生成的.config文件,而這個(gè)文件會(huì)在根目錄Makefile下調(diào)用的。這一部分我們主要討論整個(gè)SEP4020體系在內(nèi)核中各個(gè)Kconfig文件是怎么組織的。

1、Make menuconfig的編譯生成過程:

這部分我們將make menuconfig它是怎末運(yùn)行,和調(diào)用哪些文件來實(shí)現(xiàn)圖形界面的。

我們先來看下我們鍵入make menuconfig會(huì)出現(xiàn)什么:

[root@localhost linux-v3.3]# make menuconfig

? HOSTCC? scripts/basic/fixdep

? HOSTCC? scripts/basic/split-include

? HOSTCC? scripts/basic/docproc

? HOSTCC? scripts/kconfig/conf.o

? HOSTCC? scripts/kconfig/kxgettext.o

? HOSTCC? scripts/kconfig/mconf.o

? HOSTCC ?scripts/kconfig/zconf.tab.o

? HOSTLD? scripts/kconfig/mconf

? HOSTCC? scripts/kconfig/lxdialog/checklist.o

? HOSTCC? scripts/kconfig/lxdialog/inputbox.o

? HOSTCC? scripts/kconfig/lxdialog/lxdialog.o

? HOSTCC? scripts/kconfig/lxdialog/menubox.o

? HOSTCC? scripts/kconfig/lxdialog/msgbox.o

? HOSTCC? scripts/kconfig/lxdialog/textbox.o

? HOSTCC? scripts/kconfig/lxdialog/util.o

? HOSTCC? scripts/kconfig/lxdialog/yesno.o

? HOSTLD? scripts/kconfig/lxdialog/lxdialog

scripts/kconfig/mconf arch/arm/Kconfig

fs/Kconfig:767:warning: multi-line strings not supported

drivers/usb/gadget/Kconfig:406:warning: type of 'USB_ZERO_HNPTEST' redefined from 'boolean' to 'tristate'

#

# using defaults found in .config

#

*** End of Linux kernel configuration.

*** Execute 'make' to build the kernel or try 'make help'.

從上面我們看到實(shí)際上make menuconfig是一個(gè)Makefile編譯及運(yùn)行的過程,他先編譯了一大堆文件最后會(huì)生成scripts/kconfig/mconfscripts/kconfig/lxdialog/lxdialog這兩個(gè)應(yīng)用程序,其中scripts/kconfig/mconf會(huì)調(diào)用scripts/kconfig/lxdialog/lxdialog來顯示一個(gè)對(duì)話框的。

然后編譯好這兩個(gè)應(yīng)用程序后,緊接著運(yùn)行scripts/kconfig/mconf arch/arm/Kconfig

這個(gè)應(yīng)用程序,這個(gè)程序就讀入了我們SEP4020的體系架構(gòu)的Kconfig,然后就顯示出了我們見到的那個(gè)對(duì)話框了。

2、Make menuconfigMakefile的調(diào)用關(guān)系;

在這部分我們講下Makefile是怎樣一步步構(gòu)造出menuconfig這個(gè)對(duì)話框的:

1.2.1在頂層的Makefile中,可以查找到如下幾行定義的規(guī)則。

這就是生成內(nèi)核配置界面的命令規(guī)則,它也定義了執(zhí)行的目標(biāo)和依賴的前提條件,還有

要執(zhí)行的命令。

這條規(guī)則定義的目標(biāo)為config %config, 通配符%意味著可以包括config、 xconfig、 gconfig、

menuconfig和oldconfig等。依賴的前提條件是 scripts_basic outputmakefile,這些在 Makefile

也是規(guī)則定義,主要用來編譯生成配置工具。

那么這條規(guī)則執(zhí)行的命令就是執(zhí)行scripts/kconfig/Makefile指定的規(guī)則。相當(dāng)于:

make -C scripts/kconfig/? %config-C表示調(diào)用scripts/kconfig/目錄下的Makefile

這行命令是使用配置工具解析 arch/$(ARCH)/Kconfig 文件,生成內(nèi)核配置菜單。

$(ARCH)變量是 Linux 體系結(jié)構(gòu)定義,對(duì)應(yīng) arch 目錄下子目錄的名稱。Kconfig 包含了內(nèi)核配置菜單的內(nèi)容,那么 arch/$(ARCH)/Kconfig 是配置主菜單的文件,調(diào)用管理其他各級(jí)

Kconfig。根據(jù)配置工具的不同,內(nèi)核也有不同的配置方式。有命令行方式,還有圖形界面方式。

1.2.2這些內(nèi)核配置方式是在scripts/kconfig/Makefile中通過規(guī)則定義的。從這個(gè) Makefile中,可以找到下面一些規(guī)則定義。如果把變量或者通配符帶進(jìn)去,就可以明白要執(zhí)行的操作。

?

執(zhí)行命令:scripts/kconfig/mconf?? arch/arm/Kconfig

使用lxdialog工具,生成光標(biāo)配置菜單。

1)由于mconf沒有產(chǎn)生根據(jù)Makefile的隱規(guī)則會(huì)推導(dǎo)生成mconf程序

mconf-objs???? := mconf.o zconf.tab.o這個(gè)可以讓多個(gè)c文件生成最后的可執(zhí)行文件mconf

2)因?yàn)?span style="font-family:Times New Roman"> mconf調(diào)用lxdialog工具,所以需要先編譯scripts/kconfig/lxdialog目錄。

?

這會(huì)生成相應(yīng)的目標(biāo)文件最后生成lxdialog程序。

最后運(yùn)行

$< arch/$(ARCH)/Kconfig這個(gè)程序。

3、SEP4020相關(guān)Kconfig的關(guān)系:

1.3.1 menuconfig的組織關(guān)系圖:

General setup --->??????????????????????????????????????????? /init/kconfig

?

Loadable module support? --->???????????????????????? /init/kconfig

[*] Enable loadable module support? ????????? /block/kconfig

?

System Type ---> ?????????????????????????????????????????? /arch/arm/kconfig

ARM system type (sep4020)? ---> ?? /arch/arm/kconfig

SEP4020 Implementations? --->??? /arch/arm/kconfig

--- Processor Type ???????????????????????? /arch/arm/mm/kconfig

--- Processor Features?? ???????????????? ?/arch/arm/mm/kconfig

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Bus support? ---> ????????????????????????????????????????? /arch/arm/kconfig

??????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????Kernel Features? ---> ????????????????????????????? /arch/arm/kconfig

?[ ] Dynamic tick timer? ?????????????????? /kernel/time/kconfig

?????? ?Memory model (Flat Memory)? --->?? /mm/kconfig

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??

Boot options? ---> ???????????????????????????????????????? /arch/arm/kconfig

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Floating point emulation? ---> ???????????????????????? /arch/arm/kconfig

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Userspace binary formats? --->???????????????????????? /arch/arm/kconfig

????????????????? ????????????????????????????????????????????????????? /fs/kconfig.binfmt?

????????????????????????????????????????????????????????????????????????????????

?Power management options? --->????????????????????? /arch/arm/kconfig

????????????????????????????????????????????????????????????????????? /kernel/power/kconfig

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Networking? ---> ???????????????????????????????????????????????? /net/kconfig

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Device Drivers? ---> ????????????????????????????????????? /driver/kconfig

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? File systems? --->??????????????? ?????????????? /fs/kconfig

如果大家想新增一個(gè)芯片平臺(tái)和驅(qū)動(dòng),大家可以根據(jù)這個(gè)提示去相應(yīng)的Kconfig文件去添加相應(yīng)的內(nèi)容。等make menuconfig后就會(huì)在根目錄下生成.config文件這個(gè)文件會(huì)保存所以已經(jīng)選擇的Kconfig選項(xiàng)。

?

1.3.2 Kconfig的相關(guān)知識(shí);

1)菜單項(xiàng)

多數(shù)選項(xiàng)定義一個(gè)配置選項(xiàng),其他選項(xiàng)起輔助組織作用。舉例說明單個(gè)的配置選項(xiàng)

的定義。

?

config MODVERSIONS

?????? bool "Set version information on all module symbols"

?????? depends MODULES

?????? help

?????????? Usually, modules have to be recompiled whenever you switch to a new

?????????? kernel………

每一行開頭用關(guān)鍵字“config”,后面可以跟多行。后面的幾行定義這個(gè)配置選項(xiàng)的屬性。

屬性包括配置選項(xiàng)的類型、選擇提示、依賴關(guān)系、幫助文檔和缺省值。同名的選項(xiàng)可以重復(fù)

定義多次,但是每次定義只有一個(gè)選擇提示并且類型不沖突。

2)菜單屬性:

(3)Kconfig語法:

?


總結(jié)

以上是生活随笔為你收集整理的Arm Linux交叉编译和连接过程分析(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: jizzjizz中国精品麻豆 | 国产aⅴ一区二区三区 | 正在播放国产精品 | 五月开心激情网 | 欧美日韩麻豆 | 日本视频在线观看免费 | 偷啪自啪| 黄网www| 男人的天堂成人 | 午夜剧场福利 | 中文字幕国产在线 | 超碰个人在线 | 亚洲精品中文在线 | 伊人自拍| 人妻精品一区一区三区蜜桃91 | av资源在线播放 | 天堂在线观看免费视频 | 日本黄色网页 | 欧美wwwwww| 国产中文字幕乱人伦在线观看 | 麻豆三级在线观看 | 俺去俺来也在线www色官网 | 91鲁| a视频在线观看 | 乌克兰做爰xxxⅹ性视频 | 农村末发育av片一区二区 | av在线免费播放网址 | 麻豆成人精品国产免费 | 国产一二在线观看 | 在线国产不卡 | 成人作爱视频 | 无码人妻精品一区二区三区蜜桃91 | 欧美偷拍亚洲 | 日韩和的一区二区 | 日本一区二区视频在线 | 不卡影院一区二区 | 激情婷婷六月 | 久久久精品免费 | 偷拍中国夫妇高潮视频 | 国产精品一 | 日本一区二区三区视频在线 | 他趴在我两腿中间添得好爽在线看 | 亚洲精品网站在线播放gif | 蜜桃aaa | 亚洲精品久久一区二区三区777 | 污视频网站免费 | 成人精品福利 | 一级少妇片 | 极品销魂美女少妇尤物 | 美女131爽爽爽 | 欧洲黄色片| 上原亚衣av一区二区三区 | 99热只有| 韩国三级丰满少妇高潮 | 午夜寂寞影视 | 黄色一级片免费播放 | 国产精品免费无遮挡无码永久视频 | 91视频在线观看视频 | 久久男人网 | 国产精品久久AV无码 | 午夜激情男女 | 亚洲av无码一区二区三区人妖 | 久久男人网 | av中文字幕免费观看 | 日韩美女中文字幕 | 日韩黄色在线观看 | 在线看你懂得 | 中文字幕永久免费 | 日韩国产欧美一区 | 波多野结衣一区二区三区 | 婷婷影视 | 亚洲人人人 | 国产在线视频你懂的 | 精品视频在线一区二区 | 欧美第一精品 | 国产99久久九九精品无码 | 午夜理伦三级理论 | 精品国产一二三 | 国产白嫩美女无套久久 | 丁香在线视频 | proumb性欧美在线观看 | 国产原创av在线 | 豆花视频在线播放 | 色伊伊 | 在线永久看片免费的视频 | 噜噜噜精品欧美成人 | 欧美精品乱码视频一二专区 | 91福利网址 | 日本视频在线观看 | 久久精精品久久久久噜噜 | 黄色网址进入 | 黄网站免费在线观看 | 亚洲精品人 | 久久97久久97精品免视看 | 黄色a视频 | 国产最新毛片 | 亚洲在线播放 | 成人久色 | 亚洲日本国产 |