全志H3主線U Boot及Linux編譯流程總結

2021-10-08 10:46:34 字數 2663 閱讀 9778

1.設定交叉編譯鏈環境

2.編譯u-boot-2020-04

3.主線核心編譯

4.補充問題及解決方法

乙個月前買了塊香橙派one,現在又入手了塊香橙派pc plus,結果當初的編譯流程有點記不清楚了,編譯又耽誤了乙個下午的時間,看來還是要總結一下。

在這篇文章裡,使用的u-boot版本為2020-04。

用到的交叉編譯鏈為arm-linux-gnueabihf- 7.2.1以及4.9。

注意:主線u-boot要求交叉編譯鏈大於6.0,所以在一開始我準備了7.2.1的交叉編譯鏈。

注意:5.4版本有bug

在u-boot的目錄下輸入:

make arch=arm cross_compile=arm-linux-gnueabihf- orangepi_pc_plus_defconfig
生成 orangepi_pc_plus的一些配置檔案

接著輸入:

make arch=arm cross_compile=arm-linux-gnueabihf-
如果你的cpu是8核16執行緒,為了加快編譯速度可以輸入,其他cpu模擬推理一下

make -j16 arch=arm cross_compile=arm-linux-gnueabihf-
等待編譯結束…

會生成以下檔案

u-boot-sunxi-with-spl.bin

u-boot.bin

u-boot-dtb.bin等

初學者看到這些檔案會比較蒙蔽,先說一下u-boot-sunxi-with-spl.bin是我們需要的u-boot程式

接著稍微解釋一下這些檔案的區別:

首先u-boot代表的是u-boot的意思,這個沒毛病。。

spl代表的是u-boot的創造者為晶元啟動提供的自己的解決方案,不同廠商的處理器內部的ram大小,有的廠商晶元內部ram比較大,能直接一步到位將外部的boot程式燒進內部ram對處理器進行設定;而有的廠商內部ram比較小,不能一步到位將外部的boot程式燒進ram,而是分多步,先拷貝最重要的boot程式進去設定,再到主存裡完成剩餘的設定。面對不同廠商自己不同boot方案,u-boot採用了spl來完成對絕大部分的晶元進行相容。大概意思是這樣的,可能不太準確。

u-boot-sunxi-with-spl.bin就是再u-boot的主程式最前面加上spl的程式。

u-boot編譯結束,進入下一步核心編譯

將交叉編譯器切換至4.9,當然也可以不切換,之所以使用4.9的原因是4.9穩定。

主線編譯分為三步:

1.編譯核心;

2.編譯裝置樹檔案;

3.編譯模組(不在核心內的)

1.編譯核心:

和u-boot編譯類似,

進入核心主線目錄下輸入

make arch=arm cross_compile=arm-linux-gnueabihf- sun8iw7p1smp_defconfig
生成配置檔案

接著輸入:

make arch=arm cross_compile=arm-linux-gnueabihf-
cpu高階的記得加上-j

編譯完成後在	/home/mainline/mainline_kernel/arch/arm/boot

zimage,這是我們核心目標檔案,還需要處理一下,先不管。

接著輸入:

make arch=arm cross_compile=arm-linux-gnueabihf- dtbs

編譯裝置樹

目標檔案在/home/mainline/mainline_kernel/arch/arm/boot/dts下

sun8i-h3-orangepi-pc-plus.dtb檔案

再輸入

mkdir output 

make arch=arm cross_compile=arm-linux-gnueabihf- install_mod_path=/home/mainline/mainline_kernel/output modules_install

在output資料夾下得到一系列模組檔案,先不管

至此編譯流程結束,再簡單處理一下即可燒入至sd中啟動香橙派pc_plus。

第一次寫部落格,操作不熟悉,看的不爽望原諒,接下來會寫如何u-boot啟動核心和核心的一些配置及坑

安裝交叉編譯器:

apt-get

install gcc-arm-linux-gnueabihf

recipe for target 'scripts/basic/fixdep' failed

apt-get

install

python.h: no such file or directory

sudo

apt-get

install python3-dev

7 全志H3 準備焊接

cpu和ddr已到 板子到了,開始焊接 下班繼續焊接 發現少了乙個料 漏買了,趕緊 補乙個 現在就把手上的板子拆了個晶元先用著 焊接完成,測試電源 3.3v差了0.05,1.2v高了0.08 應該影響不會太大 今晚下班,飛線測試能不能啟動 現在是凌晨 昨晚跑的有問題,調整了一下電源部分,之前的電壓感...

全志h3通用韌體 全志h3晶元安卓版韌體

安卓 android 系統韌體包修改基礎教程 資訊與通訊 工程科技 專業資料。瑞芯微rk2808 安卓 android 系統韌體包修改基礎教程 本文為 locke 原創文章,請尊重作者的勞動.12.1如何編譯修改配置檔案後有兩種編譯方法可以使得修改生效,第一種是整體編譯重燒韌體,第二種是單獨的 模組...

全志H3的IRQ驅動程式

1.使用pg11引腳作為中斷輸入引腳 2.如何在dts檔案中申明使用irq 如圖所示便是標準的使用乙個pin的irq的dts語法,個人覺得在不同的soc中所使用的dts語法稍微有一些不同,對於具體的使用方法需要參考官方 中給出的標準格式。下面是我的 中給出的 我認為最重要的屬性是interrupts...