源碼編譯 | RK3568 開(kāi)發(fā)板快速上手

原創(chuàng) 2022-09-01 18:11:00 rk3568
  

主機(jī):Ubuntu18.04

硬件開(kāi)發(fā)板:OK3568-C開(kāi)發(fā)板 (基于國(guó)產(chǎn)瑞芯微RK3568處理器)

本文硬件平臺(tái)采用飛凌rk3568開(kāi)發(fā)板,主要講解rk568進(jìn)行源碼編譯的過(guò)程,本文使用的思路和方法僅供參考使用,其它arm開(kāi)發(fā)板雖然芯片不同,但思路和方法有很多的共性,希望對(duì)您在板卡的使用中能夠有所幫助,更多ARM開(kāi)發(fā)板相關(guān)資訊,關(guān)注飛凌嵌入式

話(huà)不多說(shuō),我們馬上進(jìn)入正題。

一、準(zhǔn)備源碼

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

$mkdir -p ~/rk3568

2. 拷貝源碼

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

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

【注】OK3568源碼使用分段壓縮,每段最大4G,這樣方便拷貝,因此有些存儲(chǔ)器單文件最大支持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

目錄結(jié)構(gòu)

二、編譯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,使用上下方向按鍵選擇選項(xiàng),按回車(chē)確認(rèn)選擇即可。

編譯recovery

$./build.shrecovery

……


編譯Buildroot根文件系統(tǒng)

$./build.shbuildroot

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

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

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

3. 打包固件

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

$./mkfirmware.sh

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

$./build.shupdateimg

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

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

$./build.sh

三、分區(qū)說(shuō)明

1. parameter 分區(qū)表

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

路徑:

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

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

2. package-file

package-file文件用于打包固件時(shí)確定需要的分區(qū)鏡像和鏡像路徑,同時(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分區(qū)的文件就是自身(update.img)

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

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

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

backup        RESERVED

#update-script   update-script

#recover-script   recover-script

四、鏡像制作

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

1. 工具安裝

下載工具包:

$git clone 

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

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

$cd rk2918_tools

編譯:

$make

將可執(zhí)行文件拷貝到用戶(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文件。

將需要的文件復(fù)制到rockdev目錄下。

3. 合成update.img

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

$./build.shupdateimg

有關(guān)飛凌嵌入式OK3568-C開(kāi)發(fā)板的更多詳情,您可以單擊下圖到飛凌嵌入式官網(wǎng)查看 也聯(lián)系左側(cè)在線(xiàn)客服索取資料。


相關(guān)產(chǎn)品 >

  • FET3568-C核心板

    RK3568性能強(qiáng)而穩(wěn) 國(guó)產(chǎn)芯|飛凌嵌入式RK3568系列核心板,采用瑞芯微國(guó)產(chǎn)高性能AI處理器RK3568設(shè)計(jì)生產(chǎn),RK3568兼具CPU、GPU、NPU、VPU于一身,RK3568 性能、性?xún)r(jià)比在同類(lèi)產(chǎn)品中具有較高優(yōu)勢(shì),RK3568處理器是一款定位中高端的通用型SoC, 飛凌RK3568核心板主要面向工業(yè)互聯(lián)網(wǎng)、HMI、NVR存儲(chǔ)、車(chē)載中控、工業(yè)網(wǎng)關(guān)等領(lǐng)域。目前RK3568系列已經(jīng)批量穩(wěn)定出貨

    了解詳情
    FET3568-C核心板
  • OK3568-C開(kāi)發(fā)板

    強(qiáng)而穩(wěn),國(guó)產(chǎn)芯,1Tops算力,多路高速接口|飛凌RK3568系列RK3568開(kāi)發(fā)板基于國(guó)產(chǎn)工業(yè)級(jí)AI處理器RK3568四核64位Cortex-A55 處理器設(shè)計(jì)。RK3568作為國(guó)產(chǎn)化高性能處理器,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,NPU達(dá)到1Tops,飛凌RK3568系列核心板提供瑞芯微RK3568規(guī)格書(shū)_datasheet_數(shù)據(jù)手冊(cè)_原理圖等,


    了解詳情
    OK3568-C開(kāi)發(fā)板

推薦閱讀 換一批 換一批