查看: 715|回復: 0
打印 上一主題 下一主題

教你在RK3568開(kāi)發(fā)板上升級OTA

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2024-4-20 11:25:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

說(shuō)起OTA我們應該都不陌生,它是一種可以為設備無(wú)損失升級系統的方式,能將新功能遠程部署到產(chǎn)品上。我們不僅可以通過(guò)網(wǎng)絡(luò )下載OTA升級包,也可以通過(guò)下載OTA升級包到SD卡或U盤(pán)后再對設備升級。


本文將通過(guò)飛凌嵌入式OK3568-C開(kāi)發(fā)板來(lái)為大家介紹OTA升級的流程,本地升級程序recovery執行升級的流程及技術(shù)細節。      



1. 制作 recovery.img

recovery相關(guān)的源碼路徑:

buildroot/output/OK3568-recovery/build/recovery-develop


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

(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)物重新編譯


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

(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)擊設備分區表,勾選9,選擇recovery路徑,點(diǎn)擊執行。




2. 制作升級鏡像

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


修改設備樹(shù)文件:

/OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip/OK3568-C-common.dtsi,


對forlinx_control節點(diǎn)做如下修改。默認只打開(kāi)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


根據需求修改該文件,本例程以更新boot.img為例,所以將其他.img文件注釋掉。用戶(hù)可以根據產(chǎn)品更新需求對該文件進(jìn)行調整。



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




3. 升級操作

SD卡或U盤(pán)升級

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


FTP服務(wù)器升級

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



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

update ota /userdata/update.img

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



4. 驗證測試結果

將OK3568-C開(kāi)發(fā)板上電,串口終端按住空格鍵,會(huì )進(jìn)入uboot選屏界面。燒寫(xiě)默認出廠(chǎng)鏡像文件現象:默認是開(kāi)啟HDMI、MIPI和LVDS三個(gè)輸出。



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




5. 注意事項

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


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


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


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




至此,OTA升級的全部流程講解完畢,用戶(hù)可以先按照該文章操作進(jìn)行試驗,熟悉本文章操作后,就可以對uboot,內核或者文件系統進(jìn)行修改,通過(guò)OTA方式遠程升級用戶(hù)產(chǎn)品,從而修復產(chǎn)品中的BUG,更加方便地進(jìn)行產(chǎn)品優(yōu)化,更新迭代。


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页