OTA(Over-The-Air)升級(jí)作為一種無損失的系統(tǒng)升級(jí)方式,能夠遠(yuǎn)程將新功能部署到產(chǎn)品上,極大地提高了設(shè)備的可維護(hù)性和可擴(kuò)展性。除了通過網(wǎng)絡(luò)直接下載OTA升級(jí)包外,我們還可以通過將升級(jí)包下載到SD卡或U盤后,再對(duì)設(shè)備進(jìn)行本地升級(jí)。 本文將基于飛凌嵌入式RK3568開發(fā)板,詳細(xì)介紹OTA升級(jí)的流程,特別是本地升級(jí)程序recovery的執(zhí)行流程及技術(shù)細(xì)節(jié)。 一、制作recovery.img 首先,我們需要制作recovery鏡像。recovery相關(guān)的源碼位于buildroot/output/OK3568-recovery/build/recovery-develop目錄下。 源碼修改與編譯
燒寫recovery.img 將生成的recovery.img文件燒寫到設(shè)備的指定分區(qū)。具體操作通常是通過設(shè)備分區(qū)表,勾選對(duì)應(yīng)的recovery分區(qū)(如分區(qū)9),選擇recovery.img路徑,然后點(diǎn)擊執(zhí)行燒寫操作。 ![]() 為了驗(yàn)證升級(jí)是否成功,我們需要對(duì)boot.img文件進(jìn)行修改。boot.img文件存放有設(shè)備樹和內(nèi)核,我們可以通過修改設(shè)備樹來實(shí)現(xiàn)升級(jí)效果。 修改設(shè)備樹文件 修改/OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi文件,對(duì)forlinx_control節(jié)點(diǎn)進(jìn)行如下修改,以默認(rèn)只打開HDMI輸出,關(guān)閉MIPI和LVDS輸出: / { model =“Forlinx OK3568-C Board"; compatible ="forlinx,ok3568","rockchip,rk3568-evb1-ddr4-V10","rockchip,rk3568"; forlinx control { status ="okay"; video-hdmi ="hdmi"; video-mipi-edp ="off"; video-lvds-rgb ="off"; };修改package-file文件 根據(jù)升級(jí)需求修改/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file文件。 本例中以更新boot.img為例,所以將其他.img文件注釋掉。用戶可以根據(jù)實(shí)際產(chǎn)品更新需求對(duì)該文件進(jìn)行調(diào)整。 ![]() 重新編譯內(nèi)核 修改完設(shè)備樹后,需要重新編譯內(nèi)核以生成新的boot.img文件。 ![]() SD卡或U盤升級(jí) 將SD卡或U盤默認(rèn)掛載到RK3568開發(fā)板的/run/media目錄下。將update.img鏡像文件拷貝到開發(fā)板的/userdata目錄下。重啟開發(fā)板后,系統(tǒng)將自動(dòng)檢測該目錄下的升級(jí)包并進(jìn)行升級(jí)。 FTP服務(wù)器升級(jí) 在RK3568開發(fā)板端執(zhí)行相應(yīng)命令,將FTP服務(wù)器上的升級(jí)包文件拷貝到開發(fā)板進(jìn)行升級(jí)。 下載完成后,使用update ota /userdata/update.img命令進(jìn)行升級(jí)。 升級(jí)過程中設(shè)備將會(huì)進(jìn)入recovery模式,并進(jìn)行自動(dòng)升級(jí)。升級(jí)成功后,設(shè)備將進(jìn)入正常系統(tǒng)(normal系統(tǒng))。 ![]() 燒寫默認(rèn)出廠鏡像文件 將RK3568開發(fā)板上電,串口終端按住空格鍵進(jìn)入uboot選屏界面。燒寫默認(rèn)出廠鏡像文件后,觀察現(xiàn)象:默認(rèn)開啟HDMI、MIPI和LVDS三個(gè)輸出。 ![]() 燒寫升級(jí)包鏡像文件 燒寫升級(jí)包鏡像文件后,觀察現(xiàn)象:只有HDMI顯示開啟,其他兩個(gè)輸出被關(guān)閉。這驗(yàn)證了升級(jí)操作的成功性。 ![]() 打包update.img固件
misc分區(qū)
userdata分區(qū)
通過以上步驟和注意事項(xiàng),我們可以成功地在OK3568-C開發(fā)板上實(shí)現(xiàn)OTA升級(jí)操作,并驗(yàn)證升級(jí)效果。希望本文能夠?qū)Υ蠹以贠TA升級(jí)方面的項(xiàng)目開發(fā)有所幫助。 |