找回密码
 注册
关于网站域名变更的通知
查看: 344|回复: 1
打印 上一主题 下一主题

飞凌技术帖 | RK3568开发板的OTA升级教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2024-4-26 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
说起OTA我们应该都不陌生,它是一种可以为设备无损失升级系统的方式,能将新功能远程部署到产品上。我们不仅可以通过网络下载OTA升级包,也可以通过下载OTA升级包到SD卡或U盘后再对设备升级。

& H; Q* I" ^, y1 Z  ~
本文将通过飞凌嵌入式OK3568-C开发板来为大家介绍OTA升级的流程,本地升级程序recovery执行升级的流程及技术细节。

. M7 l' X- T0 V" T2 I! {6 {. M) Z5 L4 |; Z" e& W
1. 制作 recovery.img
recovery相关的源码路径:
buildroot/output/OK3568-recovery/build/recovery-develop
: l0 l/ f0 w4 }$ |: U5 U3 F- n( D
如果有修改过以上目录的源码文件,则需要执行以下操作:
(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 #清除编译产物重新编译
0 ~, J$ h* r( j8 p" {
如果没有修改过上述目录的源码文件,则直接执行以下操作:
(1).forlinx@ubuntu:~/OK3568-linux-source$ ./build.sh recovery #编译生成recovery.img
(2).forlinx@ubuntu:~/OK3568-linux-source$ ./mkfirmware.sh
* i9 u. Y9 J, O" e! P, F
将生成的固件拷贝至 rockdev/目录下
烧写/OK3568-linux-source/buildroot/output/OK3568-recovery/images/recovery.img文件。
点击设备分区表,勾选9,选择recovery路径,点击执行。
$ p: q; T; d  r2 l& r
3 y6 @* x- c5 ^% i) r) t6 Q% O
9 L/ V5 `+ o; ]1 |
2. 制作升级镜像

, ?1 d3 _" |2 n2 k- P, I3 r( Q
如何验证是否升级成功了呢?我们要先对boot.img文件有一个初步了解,boot.img文件存放有设备树和内核,我们只要对设备树或者内核进行适当的修改即可。本例程以更新boot.img文件为例,对设备树进行了适当修改。

. Q# Z2 |, `8 L" z4 b
修改设备树文件:
/OK3568-linux-source/kernel/arch/ARM64/boot/dts/rockchip/OK3568-C-common.dtsi,
2 |3 b2 ?& b; Z/ H% H: m6 I
对forlinx_control节点做如下修改。默认只打开HDMI输出,将MIPI和LVDS输出关闭。
  1. ) ]! y5 ^7 j% d/ h
  2. / {
    $ C3 {3 h. b2 j4 y3 `; @4 N
  3.    model =“Forlinx OK3568-C Board";
    * U6 C9 s$ Z9 z% l$ y
  4.    compatible ="forlinx,ok3568","rockchip,rk3568-evb1-ddr4-V10","rockchip,rk3568";2 W3 ?' t% V9 l3 d: ?
  5.    forlinx control {
    ; v/ k+ @3 u: K8 R2 K: c2 k
  6.            status ="okay";* o* I" j2 _% O
  7.            video-hdmi ="hdmi";8 n% s& w2 J4 S# G
  8.            video-mipi-edp ="off";* ], a% ~& t* K& w8 x; m6 Y' x
  9.            video-lvds-rgb ="off";
    6 w& v2 v& W! }/ I/ R7 k! U6 q5 _
  10.        };
复制代码

) x) ?2 b+ X! S8 z' j5 i! @* w

+ E# R  ~7 v( @2 @7 y* ~+ }* n
修改文件:
/OK3568-linux-source/tools/linux/Linux_Pack_Firmware/rockdev/package-file

4 P7 g6 t" t$ I$ c$ y
根据需求修改该文件,本例程以更新boot.img为例,所以将其他.img文件注释掉。用户可以根据产品更新需求对该文件进行调整。
/ x- }5 p' j) a! h: C
本例程以修改设备树显示为例,修改完设备树后,重新编译内核。
/ ~  A, \) T9 I) P" K
3.升级操作
SD卡或U盘升级
将SD卡或U盘默认挂载到OK3568-C开发板的/run/media目录下。将update.img镜像文件拷贝到OK3568-C开发板的/userdata目录下,重启开发板后系统将检测该目录下的升级包自动升级。

0 y/ r; G% }7 Z% Q/ y4 @
FTP服务器升级
OK3568-C开发板端执行如下命令,将服务器的升级包文件拷贝到开发板进行升级。
下载完成以后使用以下命令进行升级:
update ota /userdata/update.img
升级过程中设备将会进入recovery模式,并进行自动升级,升级成功后会进入到正常normal系统。

  Z4 H/ T$ W6 ]: x4 O% z4. 验证测试结果
将OK3568-C开发板上电,串口终端按住空格键,会进入uboot选屏界面。烧写默认出厂镜像文件现象:默认是开启HDMI、MIPI和LVDS三个输出。
烧写升级包镜像文件后现象:只有HDMI显示开启,其他的两个输出被关闭。
0 ]; f9 ~, _( ?
5. 注意事项
2 Q" ], z: n9 F1 B" B
打包update.img固件时需要注意,升级固件可以全分区打包,也可以部分升级,可修改package-file文件,将不要升级的分区去掉,这样可以减少升级包(update.img)的大小。
8 L% I& k7 j, z4 N0 v( |( I7 n) ?% e
package-file中recovery.img如果打包进去的话,不会在Recovery模式中升级,为了预防升级recovery.img过程中掉电导致后面其他分区无法正常升级的问题,该分区升级放在normal系统下升级,执行update命令时会先检测update.img升级包中是否有打包recovery.img,若有则升级recovery分区,再进入Recovery模式升级其他分区固件。
5 s* U) }; E) b' {# N
misc分区不建议打包进update.img中,即使有打包进去,在升级程序中加载判断到后也会忽略该分区,即使升级了misc分区,升级成功后recovery程序仍会清空misc分区中所有的命令及参数,从而导致达不到预想的结果。

, _4 r2 |* n; u' _( S
如果将update.img升级包放置在flash中的userdata分区,则需要保证package-file中不包括userdata.img被打包进去,原因是可能会导致文件系统的损坏,升级成功后可能使oem或userdata分区mount不成功。若从SD卡或U盘升级时,可以打包userdata.img,从而对userdata分区进行升级。升级完成后会对userdata分区重新resize操作。

# {' q5 R; h5 o, |
至此,OTA升级的全部流程讲解完毕,用户可以先按照该文章操作进行试验,熟悉本文章操作后,就可以对uboot,内核或者文件系统进行修改,通过OTA方式远程升级用户产品,从而修复产品中的BUG,更加方便地进行产品优化,更新迭代。

" f2 Q/ ]' E' E% H5 C
  • TA的每日心情

    2019-11-20 15:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2024-4-26 13:57 | 只看该作者
    有开发板吗
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 13:55 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表