查看: 591|回復: 0
打印 上一主題 下一主題

在RK3568開(kāi)發(fā)板上進(jìn)行源碼編譯

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2024-4-18 15:31:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

本文將為大家介紹在飛凌嵌入式OK3568-C開(kāi)發(fā)板上進(jìn)行源碼編譯的過(guò)程,希望能夠對各位工程師小伙伴有所幫助。話(huà)不多說(shuō),我們馬上進(jìn)入正題。

一、準備源碼

1. 創(chuàng )建工作目錄

$mkdir -p ~/rk3568


2. 拷貝源碼

將RK3568用戶(hù)資料中的源碼文件OK3568-linux-source.tar.bz2.a*拷貝到虛擬機~/rk3568目錄。



拷貝文件的方式有很多,筆者使用的是共享文件夾方式。

【注】OK3568源碼使用分段壓縮,每段最大4G,這樣方便拷貝,因此有些存儲器單文件最大支持4G。

3. 解壓源碼

$cat OK3568-linux-source.tar.bz2.a* >OK3568-linux-source.tar.bz2

$tar -xvf OK3568-linux-source.tar.bz2

耐心等待完成即可,解壓時(shí)間有點(diǎn)久。

4. 進(jìn)入源碼

$cd ~/rk3568/OK3568-linux-source

目錄結構



二、編譯SDK


1. 編譯前配置

在device/rockchip/ok3568/目錄下,有不同板型的配置文件,選擇配置文件:

$./build.shBoardConfig-ok3568.mk

相關(guān)配置介紹:




2. 編譯

編譯u-boot

$./build.shuboot




……





編譯kernel

$./build.shkernel




……




【注】編譯一段時(shí)間后會(huì )彈出下圖界面,需要選擇,提取圖中信息,VCCIO4和VCCIO6選擇1800000其余選擇3300000,使用上下方向按鍵選擇選項,按回車(chē)確認選擇即可。




編譯recovery

$./build.shrecovery




……





編譯Buildroot根文件系統

$./build.shbuildroot




制作文件系統的時(shí)間會(huì )比較久,請耐心等待編譯完成。


【注1】確保作為普通用戶(hù)編譯Buildroot根文件系統,避免不必要的錯誤;

【注2】如果不想編譯文件系統,也可直接從已有的鏡像中解壓后,將其拷貝到rockdev目錄下。


3. 打包固件

更新各部分鏡像鏈接到rockdev/目錄:

$./mkfirmware.sh

打包固件,生成的完整固件會(huì )保存到rockdev/目錄。

$./build.shupdateimg




[PS]全自動(dòng)編譯

全自動(dòng)編譯會(huì )執行上述編譯、打包操作,生成完整固件。

$./build.sh



三、分區說(shuō)明


1. parameter 分區表

parameter.txt文件中包含了固件的分區信息,以parameter-buildroot.txt為例:

路徑:

device/rockchip/ok3568/parameter-buildroot-fit.txt




CMDLINE屬性是我們關(guān)注的地方,以uboot為例,0x00002000@0x00004000(uboot)中0x00004000為uboot分區的起始位置,0x00002000為分區的大小,以此類(lèi)推。


2. package-file

package-file文件用于打包固件時(shí)確定需要的分區鏡像和鏡像路徑,同時(shí)它需要與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


#要寫(xiě)入backup分區的文件就是自身(update.img)

#SELF 是關(guān)鍵字,表示升級文件(update.img)自身

#在生成升級文件時(shí),不加入SELF文件的內容,但在頭部信息中有記錄

#在解包升級文件時(shí),不解包SELF文件的內容。


backup RESERVED

#update-script update-script

#recover-script recover-script


四、鏡像制作


編譯源碼可直接得到鏡像,但是編譯時(shí)間太長(cháng),有些部分不需要再次編譯,只需要從已有的鏡像中解包,然后再和新編譯的部分組合打包即可,下面是制作方法。


1. 工具安裝

下載工具包:

$git clone

https://github.com/TeeFirefly/rk2918_tools.git


進(jìn)入工具包目錄:

$cd rk2918_tools

編譯:

$make




將可執行文件拷貝到用戶(hù)二進(jìn)制目錄:

$sudo cp afptool img_unpack img_maker mkkrnlimg/usr/local/bin


2. 解包

將update.img拷貝到Ubuntu中,然后使用命令解包:

$img_unpack update.img img





解包到img目錄,img目錄會(huì )自動(dòng)生成,解析成功之后,img目錄下會(huì )生成loader.img和update.img。





接下來(lái)進(jìn)入到img目錄,使用afptool-unpack 解壓:

$afptool -unpack update.img update




解壓到update目錄

打開(kāi)update目錄,里面有很多img文件。


將需要的文件復制到rockdev目錄下。


3. 合成update.img

然后源碼目錄以下命令即可:

$./build.shupdateimg




您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页