分析orangepizero kernel編譯過程

2021-10-06 19:34:24 字數 1763 閱讀 3715

最近買了個orangepizero版本的,用的是全志的h2晶元。看起來有短小精悍。不過網上資料較少。看了下好多東西都是參考別人的弄過來的。所以看起來**有一些混亂。但是如果做高層開發。這些都不是問題。因為高層開發不需要了解底層硬體的區別。只當做是一台電腦就行。不過遺憾的是,我是做驅動開發。

話不多說,詳細的編譯過程,可以參考官方給的文件。這裡對裡面的個別細節做展開分析。

從名字就能知道這些目錄的作用了

目錄作用

build.sh

生成img的指令碼

external

生成rootfs需要用到裡面的檔案

kernel

核心原始碼工程

output

編譯生成的東西,會存放在這裡

scripts

orangpi 官方自己寫的一些方便生成工程的指令碼

toolchain

編譯所需的工具鏈

uboot

uboot原始碼目錄

三、build.sh

這是乙個軟連線

使用軟連線的好處,

1.方便使用者呼叫。

2.執行的時候,指令碼可以知道工程的根目錄在**。因為軟鏈結需要放在根目錄裡面,才能正常執行。

build.s**件解讀

大致流程

1.判斷執行是否是root使用者

2.執行前環境檢查

3.給出圖形化介面,讓使用者選擇作業內容(如生成kernel等)

- 判斷是否是root使用者

如下**是公共的作業內容選擇對話指令碼。

可以看到不同的作業,對用不同的函式,封裝的還是挺不錯的。

上面選擇編譯kernel後,會呼叫compile_kernel函式。這個函式的定義在「lib/compilation.sh」指令碼中

找到compile_kernel函式

函式對不同平台應用不同的case語句,我的是

其主要步驟有

1.生成.config檔案

2.make kernel的img

make -c $linux arch=

"$" cross_compile=

$tools

"$"smp_defconfig v=1

我在這一句的後面加上了v=1,這樣可以在執行的時候,看到更詳細的過程。這個命令,帶了很多之前賦值的變數。

"$"smp_defconfig 展開後對應的是目錄「kernel/arch/arm/configs

」,裡面的檔案「sun8iw7p1smp_defconfig」

make -c $linux arch=

"$" cross_compile=

$tools -j$

綜合上述,如果要修改編譯的內容。需要修改un8iw7p1smp_defconfig檔案,將對應的編譯開關開啟。

分析 影像分析

1.效果圖 2.發布服務 3.引入模組 查詢影像資料esri tasks imageserviceidentifytask 引數 esri tasks imageserviceidentifyparameters esri tasks imageserviceidentifyresult esri ...

後端分析 前端分析 邊緣分析

後端分析 前端分析 邊緣分析 那麼什麼是邊緣分析呢?其實邊緣分析介於後端分析和前端分析之間。後端分析需要將原始資料上傳到後台伺服器,前端分析中原始資料在採集的地方就可以被分析,而邊緣分析要求先將乙個小範圍的待分析資料傳到乙個區域性中心 可以是乙個小型嵌入式伺服器,但是規模比後端分析中的伺服器小得多 ...

需求分析,分析需求

1.何為需求 我們吧需求兩個漢字拆分開來看 需 需要 求 要求 即需要的要求,表示想要某種東西的堅定願望 這裡插入乙個小故事,某個小男孩在上小學二年級的時候,不經意間接觸到了一種叫psp的神奇玩具,就下定決心回家找家長要,一開始小孩的父親不贊同給小孩買那個東西,後來在小孩的再三請求,甚至為此寫了份保...