• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

技術(shù)帖 | RK3568開發(fā)板的OTA升級(jí)教程

2024/04/21
3590
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

本文將通過飛凌嵌入式OK3568-C開發(fā)板來為大家介紹OTA升級(jí)的流程,本地升級(jí)程序recovery執(zhí)行升級(jí)的流程及技術(shù)細(xì)節(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).?選擇某一平臺(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)物重新編譯

如果沒有修改過上述目錄的源碼文件,則直接執(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文件。

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

2. 制作升級(jí)鏡像

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

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

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

對(duì)forlinx_control節(jié)點(diǎn)做如下修改。默認(rèn)只打開HDMI輸出,將MIPILVDS輸出關(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)品更新需求對(duì)該文件進(jìn)行調(diào)整。

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

3.?升級(jí)操作

SD卡或U盤升級(jí)

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

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

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

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

update ota /userdata/update.img

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

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

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

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

5. 注意事項(xiàng)

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

package-file中recovery.img如果打包進(jìn)去的話,不會(huì)在Recovery模式中升級(jí),為了預(yù)防升級(jí)recovery.img過程中掉電導(dǎo)致后面其他分區(qū)無法正常升級(jí)的問題,該分區(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盤升級(jí)時(shí),可以打包userdata.img,從而對(duì)userdata分區(qū)進(jìn)行升級(jí)。升級(jí)完成后會(huì)對(duì)userdata分區(qū)重新resize操作。

 

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
6N137S-TA1 1 Lite-On Semiconductor Corporation Logic IC Output Optocoupler,

ECAD模型

下載ECAD模型
$1.03 查看
DS2431P+ 1 Maxim Integrated Products EEPROM, 1KX1, Serial, CMOS, PDSO6, ROHS COMPLIANT, TSOC-6
$5.42 查看
LTC6994HS6-2#TRMPBF 1 Linear Technology LTC6994 - TimerBlox: Delay Block/ Debouncer; Package: SOT; Pins: 6; Temperature Range: -40°C to 125°C
$2.63 查看
飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

秉承專業(yè)態(tài)度,專注智能設(shè)備核心平臺(tái)研發(fā)與制造,以技術(shù)研發(fā)創(chuàng)新為主導(dǎo),以客戶實(shí)用化,產(chǎn)品化為目標(biāo),把握嵌入式行業(yè)的前沿發(fā)展需求,利用核心技術(shù)為客戶提供穩(wěn)定、可靠、功能優(yōu)異的高品質(zhì)產(chǎn)品。合作聯(lián)系:17713286011