說起OTA我們應(yīng)該都不陌生,它是一種可以為設(shè)備無損失升級系統(tǒng)的方式,能將新功能遠程部署到產(chǎn)品上。我們不僅可以通過網(wǎng)絡(luò)下載OTA升級包,也可以通過下載OTA升級包到SD卡或U盤后再對設(shè)備升級。
本文將通過飛凌嵌入式OK3568-C開發(fā)板來為大家介紹OTA升級的流程,本地升級程序recovery執(zhí)行升級的流程及技術(shù)細節(jié)。
1. 制作 recovery.img
recovery相關(guān)的源碼路徑:
buildroot/output/OK3568-recovery/build/recovery-develop
如果有修改過以上目錄的源碼文件,則需要執(zhí)行以下操作:
(1).forlinx@ubuntu:~/OK3568-linux-source$source envsetup.sh
(2).選擇某一平臺的 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)物重新編譯
如果沒有修改過上述目錄的源碼文件,則直接執(zhí)行以下操作:
(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文件。
點擊設(shè)備分區(qū)表,勾選9,選擇recovery路徑,點擊執(zhí)行。

2. 制作升級鏡像
如何驗證是否升級成功了呢?我們要先對boot.img文件有一個初步了解,boot.img文件存放有設(shè)備樹和內(nèi)核,我們只要對設(shè)備樹或者內(nèi)核進行適當?shù)男薷募纯伞1纠桃愿耣oot.img文件為例,對設(shè)備樹進行了適當修改。
修改設(shè)備樹文件:
/OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi,
對forlinx_control節(jié)點做如下修改。默認只打開HDMI輸出,將MIPI和LVDS輸出關(guān)閉。
/ { 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"; };
修改文件:
/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file
根據(jù)需求修改該文件,本例程以更新boot.img為例,所以將其他.img文件注釋掉。用戶可以根據(jù)產(chǎn)品更新需求對該文件進行調(diào)整。

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

3.升級操作
SD卡或U盤升級
將SD卡或U盤默認掛載到OK3568-C開發(fā)板的/run/media目錄下。將update.img鏡像文件拷貝到OK3568-C開發(fā)板的/userdata目錄下,重啟開發(fā)板后系統(tǒng)將檢測該目錄下的升級包自動升級。
FTP服務(wù)器升級
OK3568-C開發(fā)板端執(zhí)行如下命令,將服務(wù)器的升級包文件拷貝到開發(fā)板進行升級。

下載完成以后使用以下命令進行升級:
update ota /userdata/update.img
升級過程中設(shè)備將會進入recovery模式,并進行自動升級,升級成功后會進入到正常normal系統(tǒng)。
4. 驗證測試結(jié)果
將OK3568-C開發(fā)板上電,串口終端按住空格鍵,會進入uboot選屏界面。燒寫默認出廠鏡像文件現(xiàn)象:默認是開啟HDMI、MIPI和LVDS三個輸出。

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

5. 注意事項
打包update.img固件時需要注意,升級固件可以全分區(qū)打包,也可以部分升級,可修改package-file文件,將不要升級的分區(qū)去掉,這樣可以減少升級包(update.img)的大小。
package-file中recovery.img如果打包進去的話,不會在Recovery模式中升級,為了預(yù)防升級recovery.img過程中掉電導致后面其他分區(qū)無法正常升級的問題,該分區(qū)升級放在normal系統(tǒng)下升級,執(zhí)行update命令時會先檢測update.img升級包中是否有打包recovery.img,若有則升級recovery分區(qū),再進入Recovery模式升級其他分區(qū)固件。
misc分區(qū)不建議打包進update.img中,即使有打包進去,在升級程序中加載判斷到后也會忽略該分區(qū),即使升級了misc分區(qū),升級成功后recovery程序仍會清空misc分區(qū)中所有的命令及參數(shù),從而導致達不到預(yù)想的結(jié)果。
如果將update.img升級包放置在flash中的userdata分區(qū),則需要保證package-file中不包括userdata.img被打包進去,原因是可能會導致文件系統(tǒng)的損壞,升級成功后可能使oem或userdata分區(qū)mount不成功。若從SD卡或U盤升級時,可以打包userdata.img,從而對userdata分區(qū)進行升級。升級完成后會對userdata分區(qū)重新resize操作。
至此,OTA升級的全部流程講解完畢,用戶可以先按照該文章操作進行試驗,熟悉本文章操作后,就可以對uboot,內(nèi)核或者文件系統(tǒng)進行修改,通過OTA方式遠程升級用戶產(chǎn)品,從而修復(fù)產(chǎn)品中的BUG,更加方便地進行產(chǎn)品優(yōu)化,更新迭代。
-
嵌入式
+關(guān)注
關(guān)注
5141文章
19528瀏覽量
314907 -
開發(fā)
+關(guān)注
關(guān)注
0文章
373瀏覽量
41343 -
OTA
+關(guān)注
關(guān)注
7文章
605瀏覽量
36194 -
RK3568
+關(guān)注
關(guān)注
5文章
577瀏覽量
6080
發(fā)布評論請先 登錄
迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

RK3568開發(fā)板教程:以iTOP-RK3568開發(fā)板為例 Android13通過CIFS協(xié)議掛載Windows共享目錄

北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)內(nèi)核HDF驅(qū)動框架架構(gòu)

[迅為RK3568開發(fā)板]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗QT跨平臺能力
![[迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗QT跨平臺能力](https://file1.elecfans.com/web3/M00/02/F1/wKgZO2diirGAPoENAACpt0CV3xc346.png)
基于迅為RK3568開發(fā)板全國產(chǎn)平臺,快速實現(xiàn)APP開機自啟動技術(shù)分享

能力再次提升! 迅為RK3588/RK3568開發(fā)板&amp;核心板新增定制分區(qū)鏡像

瑞芯微RK3566/RK3568 Android11使用OTA升級固件方法,深圳觸覺智能鴻蒙開發(fā)板演示,備戰(zhàn)第九屆華為ICT大賽

評論