www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]內核啟動流程分析之編譯體驗 Linux源碼編譯過程 方法: 解壓縮下載好的linux-2.6內核源代碼 ; 給內核打補丁 ; 打補丁命令:patch -p n 會生成

內核啟動流程分析之編譯體驗 Linux源碼編譯過程

方法: 解壓縮下載好的linux-2.6內核源代碼 ;

給內核打補丁 ;

打補丁命令:patch -p n <補丁文件
-p 是指忽略前n個目錄,如n==1,就是忽略這個 linux-2.6.22.6目錄。

配置內核。

配置有3種方法:

直接使用make menuconfig,從頭到尾每一項都去配置。(繁瑣) 使用默認的配置文件,再在上面修改
我們不知道它有哪些默認的配置文件,所以搜索一下:# find -name “*defconfig*” 會搜到很多文件,找到/arch/arm/configs 目錄,找到我們的板子相似的配置文件–xx_defconfig。
執(zhí)行它:make xx_defconfig -> 會生成一個.config文件->再執(zhí)行內核配置命令:make menuconfig
就會在默認配置基礎之上,出現(xiàn)一個配置菜單,就可以此基礎之上進行配置了。 使用廠家提供的設置文件
把廠家的配置文件復制成.config文件,再make menuconfig.
cp config_廠家 .config -> make menuconfig
補充:

menuconfig 中的基本操作:
1. 高亮字母是索引,直接敲相應字母會跳轉到相應索引
2. [ ] 中輸入’?’ 會跳到幫助信息
3. 輸入‘/’ 會跳到搜索功能

編譯內核 直接執(zhí)行:make 會編譯生成 zImage 或者執(zhí)行:make uImage 就會生成uImage
uImage就是 :頭部+ 真正的內核(vmlinux) 內核啟動流程分析之配置

配置的結果是生成.config文件,打開這個.config文件,可以看到有很多的配置項,配置成y或M。

我們以一個配置項:CONFIG_DM9000 為例,看一下誰在使用這個配置。

搜索一下:grep 'CONFIG_DM9000' * -nR
可以看到使用的包括幾類:

C源碼: CONFIG_DM9000 一個宏,一般賦值為1 來源于include/linux/autoconf.h

子目錄Makefile :drivers/net/Makefile 在這里體現(xiàn)y和M的區(qū)別

內核子目錄Makefile
格式:
obj-y +=xxx.o //表示xxx.c文件會被編譯到內核里面去
obj-m +=xxx.o //表示xxx.c文件會被編譯成內核模塊.ko文件

include/config/auto.conf 也是來源于.config,也是自動生成的 這個文件被頂層的Makefile包含

include/linux/autoconf.h 這個文件是自動生成的,來源于 .config 執(zhí)行:make uImage 時執(zhí)行的操作
  1.   .config自動生成include/linux/autoconf.h文件
  2.   .config自動生成include/config/auto.conf文件
  3.   autoconf.h給C源碼使用
  4.   auto.conf文件被包含到頂層的Makefile中,然后在子目錄Makefile中被用到:
  obj-$(CONFIG_DM9000 )   +=dm9000.o
  `auto.conf中 CONFIG_DM9000 = y`

當變量$(CONFIG_DM9000 )等于y時,就會編譯進內核;等于M,會編譯成模塊;如果沒有設置的話,也不處理,表示沒有使用。

內核啟動流程分析之Makefile

子項目下的Makefile

已知有文件:a.c b.c
要在Makefile中設置成編譯進內核,可用:obj-y +=a.o b.o 實現(xiàn)
如果用a.c b.c 組合成一個模塊呢?
可用:

obj -m +=ab.o
ab-objs :=a.o b.o

這樣,編譯時 a.c 會編譯成 a.o ; b.c 編譯成 b.o ; 然后 a.o 和 b.o 鏈接成ab.ko

這個在Documentationkbuildmakefiles.txt中都有說明

架構相關的Makefile

執(zhí)行:make uImage 時,Makefile會定位到 arch/arm/Makefile

這個Makefile肯定會被包含到頂層Makefile中去。
果然在頂層目錄的Makefile中包含這句:include $(srctree) /arch/$(ARCH)/Makefile

頂層目錄的Makefile

執(zhí)行:make uImage 時,會依賴哪些文件呢,順序是什么?
我們上面知道在arch/arm/Makefile中uImage的依賴為vmlinux->根據(jù)跟蹤,得到如下索引:

執(zhí)行:#make uImage 進行編譯,可以看到這行命令:

給出了鏈接文件等等,依賴文件和上面分析的是一一對應的。

我們得到分析流程的兩大結果:

第一個文件:arch/arm/kernel/head.S 鏈接腳本(定義內核中的文件怎么排布的): arch/arm/kernel/vmlinux.lds 內核啟動流程分析之內核啟動 篇幅較長,點我跳轉
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉