RK3568如何進行OTA升級

原創 2023-04-11 08:59:00 ota ota升級 rk3568

 OTA是一種可以無損失升級系統的方式,可以猶如天降神兵一般地將新功能遠程部署到產品上。我們可以通過網絡自動下載OTA升級包,也可以通過下載OTA升級包到SD卡或U盤后再對設備升級。本文將通過飛凌嵌入式OK3568-C開發板介紹OTA升級流程,本地升級程序recovery執行升級的流程及技術細節。       

RK3568開發板OTA升級

一、制作recovery.img

recovery相關的源碼路徑:buildroot/output/OK3568-recovery/build/recovery-develop

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

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

2. 選擇某一平臺的 recovery 配置,輸入96

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

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

如果沒有修改過上述目錄的源碼文件,則直接執行以下操作:

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

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

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

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

點擊設備分區表,勾選9,選擇recovery路徑,點擊執行。

rk3568設備分區表

二、制作升級鏡像

如何驗證是否升級成功了呢?我們要先對boot.img文件有一個初步了解,boot.img文件存放有設備樹和內核,我們只要對設備樹或者內核進行適當的修改即可。本例程以更新boot.img文件為例,對設備樹進行了適當修改。

修改 /OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi設備樹文件,對forlinx_control節點做如下修改。默認只打開HDMI輸出,將MIPI和LVDS輸出關閉。

只打開HDMI輸出

修改/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file文件,根據需求修改該文件,本例程以更新boot.img為例,所以將其他.img文件注釋掉。用戶可以根據產品更新需求對該文件進行調整。

修改boot.img

本例程以修改設備樹顯示為例,修改完設備樹后,重新編譯內核。

例程步驟

三、升級操作

1、SD卡或U盤升級

將SD卡或U盤默認掛載到OK3568-C開發板的/run/media目錄下。將update.img鏡像文件拷貝到OK3568-C開發板的/userdata目錄下,重啟開發板后系統將檢測該目錄下的升級包自動升級。

2、FTP服務器升級

開發板端執行如下命令,將服務器的升級包文件拷貝到RK3568開發板進行升級。

rk3568開發板端執行命令

下載完成以后使用以下命令進行升級:

update ota /userdata/update.img

升級過程中設備將會進入recovery模式,并進行自動升級,升級成功后會進入到正常normal系統。

驗證測試結果

將OK3568-C開發板上電,串口終端按住空格鍵,會進入uboot選屏界面。

燒寫默認出廠鏡像文件現象:默認是開啟HDMI、MIPI和LVDS三個輸出。

默認現象

燒寫升級包鏡像文件后現象:只有HDMI顯示開啟,其他的兩個輸出被關閉。

ota升級后現象

注意事項

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

package-file中recovery.img如果打包進去的話,不會在Recovery模式中升級,為了預防升級recovery.img過程中掉電導致后面其他分區無法正常升級的問題,該分區升級放在normal系統下升級,執行update命令時會先檢測update.img升級包中是否有打包recovery.img,若有則升級recovery分區,再進入Recovery模式升級其他分區固件。

misc分區不建議打包進update.img中,即使有打包進去,在升級程序中加載判斷到后也會忽略該分區,即使升級了misc分區,升級成功后recovery程序仍會清空misc分區中所有的命令及參數,從而導致達不到預想的結果。

如果將update.img升級包放置在flash中的userdata分區,則需要保證package-file中不包括userdata.img被打包進去,原因是可能會導致文件系統的損壞,升級成功后可能使oem或userdata分區mount不成功。若從SD卡或U盤升級時,可以打包userdata.img,從而對userdata分區進行升級。升級完成后會對userdata分區重新resize操作。


相關產品 >

  • FET3568-C核心板

    RK3568性能強而穩 國產芯|飛凌嵌入式RK3568系列核心板,采用瑞芯微國產高性能AI處理器RK3568設計生產,RK3568兼具CPU、GPU、NPU、VPU于一身,RK3568 性能、性價比在同類產品中具有較高優勢,RK3568處理器是一款定位中高端的通用型SoC, 飛凌RK3568核心板主要面向工業互聯網、HMI、NVR存儲、車載中控、工業網關等領域。目前RK3568系列已經批量穩定出貨

    了解詳情
    FET3568-C核心板
  • OK3568-C開發板

    強而穩,國產芯,1Tops算力,多路高速接口|飛凌RK3568系列RK3568開發板基于國產工業級AI處理器RK3568四核64位Cortex-A55 處理器設計。RK3568作為國產化高性能處理器,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,NPU達到1Tops,飛凌RK3568系列核心板提供瑞芯微RK3568規格書_datasheet_數據手冊_原理圖等,


    了解詳情
    OK3568-C開發板

推薦閱讀 換一批 換一批