RK3568開發板原始碼編譯
本文將為大家介紹在飛凌嵌入式OK3568-C開發板上進行原始碼編譯的過程,希望能夠對各位工程師小夥伴有所幫助。話不多說,我們馬上進入正題。
1
準備原始碼
1. 建立工作目錄
$mkdir -p ~/rk3568
2. 複製原始碼
將使用者資料中的原始碼檔案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
耐心等待完成即可,解壓時間有點久。
4. 進入原始碼
$cd ~/rk3568/OK3568-linux-source
目錄結構
2
編譯SDK
1. 編譯前配置
在device/rockchip/ok3568/目錄下,有不同板型的配置檔案,選擇配置檔案:
$./build.shBoardConfig-ok3568.mk
相關配置介紹:
2. 編譯
編譯u-boot
$./build.shuboot
……
編譯kernel
$./build.shkernel
……
【注】編譯一段時間後會彈出下圖介面,需要選擇,提取圖中資訊,VCCIO4和VCCIO6選擇1800000其餘選擇3300000,使用上下方向按鍵選擇選項,按回車確認選擇即可。
編譯recovery
$./build.shrecovery
……
編譯Buildroot根檔案系統
$./build.shbuildroot
製作檔案系統的時間會比較久,請耐心等待編譯完成。
【注1】確保作為普通使用者編譯Buildroot根檔案系統,避免不必要的錯誤;
【注2】如果不想編譯檔案系統,也可直接從已有的映象中解壓後,將其複製到rockdev目錄下。
3. 打包韌體
更新各部分映象連結到rockdev/目錄:
$./mkfirmware.sh
打包韌體,生成的完整韌體會儲存到rockdev/目錄。
$./build.shupdateimg
[PS]全自動編譯
全自動編譯會執行上述編譯、打包操作,生成完整韌體。
$./build.sh
3
分割槽說明
1. parameter 分割槽表
parameter.txt檔案中包含了韌體的分割槽資訊,以parameter-buildroot.txt為例:
路徑:
device/rockchip/ok3568/parameter-buildroot-fit.txt
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
將可執行檔案複製到使用者二進位制目錄:
$sudo cp afptool img_unpack img_maker mkkrnlimg/usr/local/bin
2. 解包
將update.img複製到Ubuntu中,然後使用命令解包:
$img_unpack update.img img
解包到img目錄,img目錄會自動生成,解析成功之後,img目錄下會生成loader.img和update.img。
接下來進入到img目錄,使用afptool-unpack 解壓:
$afptool -unpack update.img update
解壓到update目錄
開啟update目錄,裡面有很多img檔案。
將需要的檔案複製到rockdev目錄下。
3. 合成update.img
然後原始碼目錄以下命令即可:
$./build.shupdateimg
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2914577/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- i.MX6ULL開發板原始碼編譯原始碼編譯
- i.MX6ULL開發板原始碼編譯燒錄原始碼編譯
- i.MX6ULL開發板原始碼自制交叉編譯器原始碼編譯
- i.MX6ULL開發板原始碼交叉編譯器介紹原始碼編譯
- rk3568核心板開發介紹
- RK3568開發筆記(一):瑞芯微RK3568晶片介紹,入手開發板的核心板介紹筆記晶片
- qgroundcontrol開發環境搭建原始碼編譯開發環境原始碼編譯
- 瑞芯微RK3568開發板Linux編譯報錯404怎麼辦觸覺智慧教你輕鬆解決Linux編譯
- Harmony OS 開發避坑指南——原始碼下載和編譯原始碼編譯
- 啟揚RK3568核心板/開發板應用在智慧通行上的解決方案
- 關於瑞芯微RK3568開發板的燒寫方式
- 原始碼編譯Vim 8原始碼編譯
- MongoDB(0)- 原始碼編譯MongoDB原始碼編譯
- 編譯Android原始碼編譯Android原始碼
- 編譯hibernate原始碼編譯原始碼
- Docker編譯Azerothcore原始碼Docker編譯原始碼
- Spring原始碼編譯Spring原始碼編譯
- 全志A40i開發板編譯環境的搭建編譯
- 如何學習 PHP 原始碼 – 從編譯開始PHP原始碼編譯
- i.MX6ULL開發板-Buildroot製作交叉編譯器UI編譯
- 編譯FFMPEG原始碼的指令碼編寫案例編譯原始碼指令碼
- WebRTC研究 (一) 編譯原始碼Web編譯原始碼
- 原始碼編譯 apache2.4原始碼編譯Apache
- Kubernetes原始碼編譯原始碼編譯
- Swift原始碼專案編譯Swift原始碼編譯
- 龍芯原始碼編譯MySQL原始碼編譯MySql
- Ceph原始碼編譯與打包原始碼編譯
- nvme driver 原始碼修改、編譯原始碼編譯
- 原始碼編譯安裝Redis原始碼編譯Redis
- LAMP原始碼編譯安裝LAMP原始碼編譯
- osg原始碼編譯步驟原始碼編譯
- Android原始碼編譯--整理Android原始碼編譯
- XCode 編譯 PAG 原始碼XCode編譯原始碼
- Android原始碼閱讀-編譯8.0原始碼Android原始碼編譯
- RK3568開發筆記(三):瑞芯微RK3588晶片介紹,入手開發板的核心板介紹筆記晶片
- Vue3原始碼分析——編譯模組和編譯器Vue原始碼編譯
- MySQL5.5原始碼編譯新增編譯備註資訊~MySql原始碼編譯
- Android開發:APK的反編譯(獲取程式碼和資原始檔)AndroidAPK編譯