RK3568開發板原始碼編譯

ningmengzier發表於2022-09-14
本文將為大家介紹在飛凌嵌入式OK3568-C開發板上進行原始碼編譯的過程,希望能夠對各位工程師小夥伴有所幫助。話不多說,我們馬上進入正題。

1
準備原始碼


1. 建立工作目錄
$mkdir -p ~/rk3568

2. 複製原始碼
將使用者資料中的原始碼檔案OK3568-linux-source.tar.bz2.a*複製到虛擬機器~/rk3568目錄。

RK3568開發板原始碼編譯
編輯 切換為居中
新增圖片註釋,不超過 140 字(可選)

複製檔案的方式有很多,筆者使用的是共享資料夾方式。

【注】OK3568原始碼使用分段壓縮,每段最大4G,這樣方便複製,因此有些儲存器單檔案最大支援4G。

3. 解壓原始碼
$cat OK3568-linux-source.tar.bz2.a* >OK3568-linux-source.tar.bz2
$tar -xvf OK3568-linux-source.tar.bz2

耐心等待完成即可,解壓時間有點久。

4. 進入原始碼
$cd ~/rk3568/OK3568-linux-source
目錄結構

新增圖片註釋,不超過 140 字(可選)



2
編譯SDK


1. 編譯前配置
在device/rockchip/ok3568/目錄下,有不同板型的配置檔案,選擇配置檔案:
$./build.shBoardConfig-ok3568.mk  

相關配置介紹:

新增圖片註釋,不超過 140 字(可選)
2. 編譯
編譯u-boot
$./build.shuboot

新增圖片註釋,不超過 140 字(可選)

……

新增圖片註釋,不超過 140 字(可選)


編譯kernel
$./build.shkernel

新增圖片註釋,不超過 140 字(可選)

……

新增圖片註釋,不超過 140 字(可選)


【注】編譯一段時間後會彈出下圖介面,需要選擇,提取圖中資訊,VCCIO4和VCCIO6選擇1800000其餘選擇3300000,使用上下方向按鍵選擇選項,按回車確認選擇即可。

新增圖片註釋,不超過 140 字(可選)


編譯recovery
$./build.shrecovery

新增圖片註釋,不超過 140 字(可選)

……

新增圖片註釋,不超過 140 字(可選)


編譯Buildroot根檔案系統
$./build.shbuildroot

新增圖片註釋,不超過 140 字(可選)

製作檔案系統的時間會比較久,請耐心等待編譯完成。

【注1】確保作為普通使用者編譯Buildroot根檔案系統,避免不必要的錯誤;
【注2】如果不想編譯檔案系統,也可直接從已有的映象中解壓後,將其複製到rockdev目錄下。

3. 打包韌體
更新各部分映象連結到rockdev/目錄:
$./mkfirmware.sh
打包韌體,生成的完整韌體會儲存到rockdev/目錄。
$./build.shupdateimg

新增圖片註釋,不超過 140 字(可選)

[PS]全自動編譯
全自動編譯會執行上述編譯、打包操作,生成完整韌體。
$./build.sh


3
分割槽說明


1. parameter 分割槽表
parameter.txt檔案中包含了韌體的分割槽資訊,以parameter-buildroot.txt為例:
路徑:
device/rockchip/ok3568/parameter-buildroot-fit.txt

新增圖片註釋,不超過 140 字(可選)

CMDLINE屬性是我們關注的地方,以uboot為例,0x00002000@0x00004000(uboot)中0x00004000為uboot分割槽的起始位置,0x00002000為分割槽的大小,以此類推。

2. package-file
package-file檔案用於打包韌體時確定需要的分割槽映象和映象路徑,同時它需要與parameter.txt檔案保持一致。

路徑:
tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file
#NAME        Relative path
#
#HWDEF             HWDEF
package-filepackage-file
bootloader  Image/MiniLoaderAll.bin
parameter   Image/parameter.txt
#trust          Image/trust.img
uboot          Image/uboot.img
misc             Image/misc.img
#resource    Image/resource.img
#kernel        Image/kernel.img
boot            Image/boot.img
recovery      Image/recovery.img
rootfs          Image/rootfs.img
oem             Image/oem.img
userdata      Image/userdata.img

#要寫入backup分割槽的檔案就是自身(update.img)
#SELF 是關鍵字,表示升級檔案(update.img)自身
#在生成升級檔案時,不加入SELF檔案的內容,但在頭部資訊中有記錄
#在解包升級檔案時,不解包SELF檔案的內容。

backup        RESERVED
#update-script   update-script
#recover-script   recover-script


4
映象製作


編譯原始碼可直接得到映象,但是編譯時間太長,有些部分不需要再次編譯,只需要從已有的映象中解包,然後再和新編譯的部分組合打包即可,下面是製作方法。

1. 工具安裝
下載工具包:
$git clone

進入工具包目錄:
$cd rk2918_tools
編譯:
$make

新增圖片註釋,不超過 140 字(可選)

將可執行檔案複製到使用者二進位制目錄:
$sudo cp afptool img_unpack img_maker mkkrnlimg/usr/local/bin

2. 解包
將update.img複製到Ubuntu中,然後使用命令解包:
$img_unpack update.img img

新增圖片註釋,不超過 140 字(可選)


解包到img目錄,img目錄會自動生成,解析成功之後,img目錄下會生成loader.img和update.img。

新增圖片註釋,不超過 140 字(可選)


接下來進入到img目錄,使用afptool-unpack 解壓:
$afptool -unpack update.img update

新增圖片註釋,不超過 140 字(可選)

解壓到update目錄
開啟update目錄,裡面有很多img檔案。

將需要的檔案複製到rockdev目錄下。

3. 合成update.img
然後原始碼目錄以下命令即可:
$./build.shupdateimg

RK3568開發板原始碼編譯
編輯 切換為居中
新增圖片註釋,不超過 140 字(可選)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2914577/,如需轉載,請註明出處,否則將追究法律責任。

相關文章