OK3568-C開(kāi)發(fā)板部署新功之OTA升級(jí)流程

原創(chuàng) 2023-04-11 08:39:00 ota升級(jí) rk3568系統(tǒng)升級(jí)

 OTA是一種可以無(wú)損失升級(jí)系統(tǒng)的方式,可以猶如天降神兵一般地將新功能遠(yuǎn)程部署到產(chǎn)品上。我們可以通過(guò)網(wǎng)絡(luò)自動(dòng)下載OTA升級(jí)包,也可以通過(guò)下載OTA升級(jí)包到SD卡或U盤(pán)后再對(duì)設(shè)備升級(jí)。本文將通過(guò)飛凌嵌入式OK3568-C開(kāi)發(fā)板介紹OTA升級(jí)流程,本地升級(jí)程序recovery執(zhí)行升級(jí)的流程及技術(shù)細(xì)節(jié)。       

RK3568開(kāi)發(fā)板OTA升級(jí)

一、制作recovery.img

recovery相關(guān)的源碼路徑:buildroot/output/OK3568-recovery/build/recovery-develop

如果有修改過(guò)以上目錄的源碼文件,則需要執(zhí)行以下操作:

1. forlinx@ubuntu:~/OK3568-linux-source$ source envsetup.sh

2. 選擇某一平臺(tái)的 recovery 配置,輸入96

3. forlinx@ubuntu:~/OK3568-linux-source$ make recovery-dirclean && make recovery  #清除編譯產(chǎn)物重新編譯

4. forlinx@ubuntu:~/OK3568-linux-source$ make rkupdate-dirclean && make rkupdate  #清除編譯產(chǎn)物重新編譯

如果沒(méi)有修改過(guò)上述目錄的源碼文件,則直接執(zhí)行以下操作:

1. forlinx@ubuntu:~/OK3568-linux-source$ ./build.sh recovery  #編譯生成recovery.img

2. forlinx@ubuntu:~/OK3568-linux-source$ ./mkfirmware.sh 

 #將生成的固件拷貝至 rockdev/目錄下

燒寫(xiě)/OK3568-linux-source/buildroot/output/OK3568-recovery/images/recovery.img文件。

點(diǎn)擊設(shè)備分區(qū)表,勾選9,選擇recovery路徑,點(diǎn)擊執(zhí)行。

rk3568設(shè)備分區(qū)表

二、制作升級(jí)鏡像

如何驗(yàn)證是否升級(jí)成功了呢?我們要先對(duì)boot.img文件有一個(gè)初步了解,boot.img文件存放有設(shè)備樹(shù)和內(nèi)核,我們只要對(duì)設(shè)備樹(shù)或者內(nèi)核進(jìn)行適當(dāng)?shù)男薷募纯?。本例程以更新boot.img文件為例,對(duì)設(shè)備樹(shù)進(jìn)行了適當(dāng)修改。

修改 /OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi設(shè)備樹(shù)文件,對(duì)forlinx_control節(jié)點(diǎn)做如下修改。默認(rèn)只打開(kāi)HDMI輸出,將MIPI和LVDS輸出關(guān)閉。

只打開(kāi)HDMI輸出

修改/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file文件,根據(jù)需求修改該文件,本例程以更新boot.img為例,所以將其他.img文件注釋掉。用戶(hù)可以根據(jù)產(chǎn)品更新需求對(duì)該文件進(jìn)行調(diào)整。

修改boot.img

本例程以修改設(shè)備樹(shù)顯示為例,修改完設(shè)備樹(shù)后,重新編譯內(nèi)核。

例程步驟

三、升級(jí)操作

1、SD卡或U盤(pán)升級(jí)

將SD卡或U盤(pán)默認(rèn)掛載到OK3568-C開(kāi)發(fā)板的/run/media目錄下。將update.img鏡像文件拷貝到OK3568-C開(kāi)發(fā)板的/userdata目錄下,重啟開(kāi)發(fā)板后系統(tǒng)將檢測(cè)該目錄下的升級(jí)包自動(dòng)升級(jí)。

2、FTP服務(wù)器升級(jí)

開(kāi)發(fā)板端執(zhí)行如下命令,將服務(wù)器的升級(jí)包文件拷貝到RK3568開(kāi)發(fā)板進(jìn)行升級(jí)。

rk3568開(kāi)發(fā)板端執(zhí)行命令

下載完成以后使用以下命令進(jìn)行升級(jí):

update ota /userdata/update.img

升級(jí)過(guò)程中設(shè)備將會(huì)進(jìn)入recovery模式,并進(jìn)行自動(dòng)升級(jí),升級(jí)成功后會(huì)進(jìn)入到正常normal系統(tǒng)。

驗(yàn)證測(cè)試結(jié)果

將OK3568-C開(kāi)發(fā)板上電,串口終端按住空格鍵,會(huì)進(jìn)入uboot選屏界面。

燒寫(xiě)默認(rèn)出廠(chǎng)鏡像文件現(xiàn)象:默認(rèn)是開(kāi)啟HDMI、MIPI和LVDS三個(gè)輸出。

默認(rèn)現(xiàn)象

燒寫(xiě)升級(jí)包鏡像文件后現(xiàn)象:只有HDMI顯示開(kāi)啟,其他的兩個(gè)輸出被關(guān)閉。

ota升級(jí)后現(xiàn)象

注意事項(xiàng)

打包update.img固件時(shí)需要注意,升級(jí)固件可以全分區(qū)打包,也可以部分升級(jí),可修改package-file文件,將不要升級(jí)的分區(qū)去掉,這樣可以減少升級(jí)包(update.img)的大小。

package-file中recovery.img如果打包進(jìn)去的話(huà),不會(huì)在Recovery模式中升級(jí),為了預(yù)防升級(jí)recovery.img過(guò)程中掉電導(dǎo)致后面其他分區(qū)無(wú)法正常升級(jí)的問(wèn)題,該分區(qū)升級(jí)放在normal系統(tǒng)下升級(jí),執(zhí)行update命令時(shí)會(huì)先檢測(cè)update.img升級(jí)包中是否有打包recovery.img,若有則升級(jí)recovery分區(qū),再進(jìn)入Recovery模式升級(jí)其他分區(qū)固件。

misc分區(qū)不建議打包進(jìn)update.img中,即使有打包進(jìn)去,在升級(jí)程序中加載判斷到后也會(huì)忽略該分區(qū),即使升級(jí)了misc分區(qū),升級(jí)成功后recovery程序仍會(huì)清空misc分區(qū)中所有的命令及參數(shù),從而導(dǎo)致達(dá)不到預(yù)想的結(jié)果。

如果將update.img升級(jí)包放置在flash中的userdata分區(qū),則需要保證package-file中不包括userdata.img被打包進(jìn)去,原因是可能會(huì)導(dǎo)致文件系統(tǒng)的損壞,升級(jí)成功后可能使oem或userdata分區(qū)mount不成功。若從SD卡或U盤(pán)升級(jí)時(shí),可以打包userdata.img,從而對(duì)userdata分區(qū)進(jìn)行升級(jí)。升級(jí)完成后會(huì)對(duì)userdata分區(qū)重新resize操作。


相關(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ā)板

推薦閱讀 換一批 換一批