文章來(lái)源:飛凌嵌入式官網(wǎng)
搜索【Forlinx】進(jìn)入飛凌官網(wǎng)了解更多產(chǎn)品詳情和行業(yè)資訊
主機(jī):Ubuntu18.04
開發(fā)板:OK3568-C開發(fā)板
本文將為大家介紹在飛凌嵌入式OK3568-C開發(fā)板上進(jìn)行源碼編譯的過程,希望能夠?qū)Ω魑?a target="_blank">工程師小伙伴有所幫助。話不多說(shuō),我們馬上進(jìn)入正題。
1、準(zhǔn)備源碼
1. 創(chuàng)建工作目錄
$mkdir -p ~/rk3568
2. 拷貝源碼
將用戶資料中的源碼文件OK3568-linux-source.tar.bz2.a*拷貝到虛擬機(jī)~/rk3568目錄。
![pYYBAGMSvDeAIjbDAAAdqpfUS8Q769.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDeAIjbDAAAdqpfUS8Q769.png)
拷貝文件的方式有很多,筆者使用的是共享文件夾方式。
【注】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)
![pYYBAGMSvDeAJw33AABjLCSxw6k530.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDeAJw33AABjLCSxw6k530.png)
2、編譯SDK
1. 編譯前配置
在device/rockchip/ok3568/目錄下,有不同板型的配置文件,選擇配置文件:
$./build.shBoardConfig-ok3568.mk
相關(guān)配置介紹:
![poYBAGMSvDiAZsTqAAK86-Lxtho11.jpeg](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDiAZsTqAAK86-Lxtho11.jpeg)
2. 編譯
編譯u-boot
$./build.shuboot
![pYYBAGMSvDiAc8BLAABKhAM8NM0300.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDiAc8BLAABKhAM8NM0300.png)
……
![poYBAGMSvDeAK1YgAABL_QyNpl8317.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDeAK1YgAABL_QyNpl8317.png)
編譯kernel
$./build.shkernel
![pYYBAGMSvDiARpA3AAAlMEvA4X8551.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDiARpA3AAAlMEvA4X8551.png)
……
![poYBAGMSvDiAWqfwAAB4PVQpj8I678.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDiAWqfwAAB4PVQpj8I678.png)
【注】編譯一段時(shí)間后會(huì)彈出下圖界面,需要選擇,提取圖中信息,VCCIO4和VCCIO6選擇1800000其余選擇3300000,使用上下方向按鍵選擇選項(xiàng),按回車確認(rèn)選擇即可。
![pYYBAGMSvDiAJT46AAA8AdRFmEk078.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDiAJT46AAA8AdRFmEk078.png)
編譯recovery
$./build.shrecovery
![pYYBAGMSvDiAaWDYAAAxyVUzdxc480.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDiAaWDYAAAxyVUzdxc480.png)
……
![poYBAGMSvDiAQ4Y_AAA0iwilfYA004.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDiAQ4Y_AAA0iwilfYA004.png)
編譯Buildroot根文件系統(tǒng)
$./build.shbuildroot
![poYBAGMSvDmAPhbqAABTGMrG-X4702.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDmAPhbqAABTGMrG-X4702.png)
制作文件系統(tǒng)的時(shí)間會(huì)比較久,請(qǐng)耐心等待編譯完成。
【注1】確保作為普通用戶編譯Buildroot根文件系統(tǒng),避免不必要的錯(cuò)誤;
【注2】如果不想編譯文件系統(tǒng),也可直接從已有的鏡像中解壓后,將其拷貝到rockdev目錄下。
3. 打包固件
更新各部分鏡像鏈接到rockdev/目錄:
$./mkfirmware.sh
打包固件,生成的完整固件會(huì)保存到rockdev/目錄。
$./build.shupdateimg
![pYYBAGMSvDmAPWV5AAFOa6zlTRA715.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDmAPWV5AAFOa6zlTRA715.png)
[PS]全自動(dòng)編譯
全自動(dòng)編譯會(huì)執(zhí)行上述編譯、打包操作,生成完整固件。
$./build.sh
3、分區(qū)說(shuō)明
1. parameter 分區(qū)表
parameter.txt文件中包含了固件的分區(qū)信息,以parameter-buildroot.txt為例:
路徑:
device/rockchip/ok3568/parameter-buildroot-fit.txt
![poYBAGMSvDmAEgtTAADBpmDKleA27.jpeg](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDmAEgtTAADBpmDKleA27.jpeg)
CMDLINE屬性是我們關(guān)注的地方,以u(píng)boot為例,0x00002000@0x00004000(uboot)中0x00004000為uboot分區(qū)的起始位置,0x00002000為分區(qū)的大小,以此類推。
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
#要寫入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
4、鏡像制作
編譯源碼可直接得到鏡像,但是編譯時(shí)間太長(zhǎng),有些部分不需要再次編譯,只需要從已有的鏡像中解包,然后再和新編譯的部分組合打包即可,下面是制作方法。
1. 工具安裝
下載工具包:
$git clone
https://github.com/TeeFirefly/rk2918_tools.git
進(jìn)入工具包目錄:
$cd rk2918_tools
編譯:
$make
![pYYBAGMSvDmAYockAAAd-TOGOyY344.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDmAYockAAAd-TOGOyY344.png)
將可執(zhí)行文件拷貝到用戶二進(jìn)制目錄:
$sudo cp afptool img_unpack img_maker mkkrnlimg/usr/local/bin
2. 解包
將update.img拷貝到Ubuntu中,然后使用命令解包:
$img_unpack update.img img
![poYBAGMSvDmAW7BJAAAdZzLL1BE766.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDmAW7BJAAAdZzLL1BE766.png)
解包到img目錄,img目錄會(huì)自動(dòng)生成,解析成功之后,img目錄下會(huì)生成loader.img和update.img。
![pYYBAGMSvDmATOKrAAAhBQ0PyO8912.png](https://file.elecfans.com/web2/M00/67/5F/pYYBAGMSvDmATOKrAAAhBQ0PyO8912.png)
接下來(lái)進(jìn)入到img目錄,使用afptool-unpack 解壓:
$afptool -unpack update.img update
![poYBAGMSvDqABURKAAC-hNdr5nQ525.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDqABURKAAC-hNdr5nQ525.png)
解壓到update目錄
打開update目錄,里面有很多img文件。
將需要的文件復(fù)制到rockdev目錄下。
3. 合成update.img
然后源碼目錄以下命令即可:
$./build.shupdateimg
![poYBAGMSvDmAdP_mAADFZWfOq94893.png](https://file.elecfans.com/web2/M00/66/C5/poYBAGMSvDmAdP_mAADFZWfOq94893.png)
感謝發(fā)燒友[ouxiaolong]提供本篇OK3568-C開發(fā)板試用體驗(yàn)文章!
-
ARM
+關(guān)注
關(guān)注
134文章
9165瀏覽量
369187 -
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307653 -
編譯
+關(guān)注
關(guān)注
0文章
661瀏覽量
33040
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何快捷使用瑞芯微RK3568J開發(fā)板
【飛凌嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板開箱評(píng)測(cè)
飛凌嵌入式受邀亮相OpenHarmony人才生態(tài)大會(huì)
![<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式受邀亮相OpenHarmony人才生態(tài)大會(huì)](https://file1.elecfans.com/web3/M00/00/7B/wKgZPGdJf5OANq4DAAkSLFrau2I699.png)
迅為RK3568開發(fā)板定制擴(kuò)展分區(qū)SDK源碼編譯-獲取Linux-定制擴(kuò)展分區(qū)源碼包
【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】應(yīng)用編譯運(yùn)行
【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】開箱報(bào)告
【飛凌嵌入式OK527N-C開發(fā)板體驗(yàn)】- 1. 開箱
【飛凌嵌入式OK527N-C開發(fā)板體驗(yàn)】- 開箱
飛凌嵌入式FET3568/3568J-C核心板現(xiàn)已適配OpenHarmony4.1
![<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式FET<b class='flag-5'>3568</b>/<b class='flag-5'>3568J-C</b>核心<b class='flag-5'>板</b>現(xiàn)已適配OpenHarmony4.1](https://file1.elecfans.com/web2/M00/EA/9E/wKgZomZZa2WAYVJrAADCiVfufYA645.png)
在RK3568核心板上實(shí)現(xiàn)USBNET模式網(wǎng)絡(luò)共享
鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng)編譯】 (基于RK3568開發(fā)板)
![鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng)<b class='flag-5'>編譯</b>】 (基于RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>)](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
通過RK3568開發(fā)板進(jìn)行OTA本地程序升級(jí)
技術(shù)帖 | RK3568開發(fā)板的OTA升級(jí)教程
![<b class='flag-5'>技術(shù)</b>帖 | RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>的OTA升級(jí)教程](https://file1.elecfans.com/web2/M00/D4/CB/wKgZomYmDDyALAh-AABYjSvAqi0464.png)
評(píng)論