4 系统OTA升级说明
本章节主要介绍使用update工具进行OTA升级系统的方法。可通过网络自动下载升级固件进行升级;亦可通过下载升级固件至USB设备(例如U盘)后,再进行系统升级。
关于OTA升级更多说明请查阅产品资料“6-开发参考资料Rockchip官方参考文档LinuxRecovery”目录下的《Rockchip_Developer_Guide_Linux_Recovery_CN》文档。
备注:目前仅支持从eMMC启动系统进行OTA升级。
4.1 通过网络方式升级
执行如下命令,安装http服务器,安装成功后可看到"/var/www/html"目录下的index.html文件。
Host# sudo apt-get update
Host# sudo apt-get install apache2
图 37
图 38
执行如下命令,重启apache2服务。
Host# sudo /etc/init.d/apache2 restart
图 39
执行如下命令,查看PC机IP地址。
Host# ifconfig
图 40
通过浏览器访问"http://192.168.13.16/",其中192.168.13.16为PC机IP地址,显示"It works!"表示服务器搭建成功。
图 41
请将升级固件update.img拷贝至自定义的文件夹。执行如下命令,在"/var/www/html/"目录下创建一个文件夹存放update.img升级固件。
Host# sudomkdir /var/www/html/file
Host# cd /var/www/html/file
图 42
图 43
通过浏览器访问"http://192.168.13.16/file",其中192.168.13.16为PC机IP地址,可看到通过客户端访问服务器的文件。
图 44
进入单板机系统,执行如下命令将update.img升级固件从http服务器端下载至单板机系统用户数据分区"/media/mmcblk0p8/"目录下,其中192.168.13.16为PC机IP地址。
Target# wget http://192.168.13.16/file/update.img -P /media/mmcblk0p8
图 45
执行如下命令,卸载"/dev/mmcblk0p8"(用户数据分区),创建"/userdata/"目录,并将"/dev/mmcblk0p8"分区重新挂载至"/userdata/"目录。
备注:由于使用update工具进行系统升级时,仅支持从系统"/userdata/"挂载点获取升级镜像,因此需将用户数据分区重新挂载至"/userdata/"。
Target# umount /dev/mmcblk0p8
Target# mkdir -p /userdata
Target# mount /dev/mmcblk0p8/userdata
图 46
执行如下命令,进入recovery模式并进行Linux系统升级。
备注:升级过程中,单板机将会重启两次,第一次重启是为了进入recovery模式进行系统升级,第二次重启是系统升级完成后单板机重启。
Target# update ota /userdata/update.img
图 47
系统升级完成,单板机重新启动后将自动登录文件系统,打印信息如下。
图 48
4.2 通过USB方式升级
(1)拷贝升级固件至eMMC升级
请先将升级固件update.img通过USB设备拷贝至单板机系统用户数据分区"/media/mmcblk0p8/"目录。执行命令,进入recovery模式并进行系统升级,打印信息如下。
备注:由于使用update工具进行系统升级时,仅支持从系统"/userdata/"挂载点获取升级镜像,因此需将用户数据分区重新挂载至"/userdata/"。
Target# cp /media/sda1/update.img /media/mmcblk0p8/
Target# umount /dev/mmcblk0p8
Target# mkdir -p /userdata
Target# mount /dev/mmcblk0p8 /userdata
Target# update ota /userdata/update.img
图 49
图 50
系统升级完成,单板机重新启动后将自动登录文件系统,打印信息如下。
图 51
(2)直接从USB设备进行升级
由于使用update工具从USB设备进行系统升级时,仅支持从系统"/udisk"挂载点获取升级镜像,因此需将USB设备重新挂载至"/udisk"。
备注:
当接入多个USB设备时,请注意识别存放升级镜像的USB设备的分区。
为确保升级流程顺利完成,需严格遵循以下环境准备要求:升级所需的镜像文件(update.img)必须存放于"/udisk/"根目录下,此路径为update程序默认的资源加载位置,若文件存放路径错误将导致程序无法识别升级资源;同时需在执行update程序前预先创建"/userdata/"空目录,这是由于升级过程中update程序会执行关键路径完整性检测,若检测到该目录不存在,系统将触发保护机制自动终止升级流程并退出Recovery模式,最终导致升级失败。
Target# umount /dev/sda1
Target# mkdir -p /udisk
Target# mount /dev/sda1 /udisk
Target# mkdir -p /userdata
Target# update ota /udisk/update.img
图 52
系统升级完成,单板机重新启动后将自动登录单板机系统,打印信息如下。
图 53
注意:
(1)使用eMMC容量为16GByte配置的单板机同时升级系统多个分区时,其userdata分区容量可能无法满足升级固件(update.img)的大小,导致升级固件update.img无法完整拷贝至"/userdata/"目录下,从而导致OTA升级失败。因此,推荐对升级固件分区进行裁剪(分多次升级),或参考《系统开发手册》文档的“配置分区大小”章节,拓展userdata分区的容量。
(2)如需定制升级固件update.img,推荐仅保留需要升级的局部分区,减少升级固件update.img大小。
(3)如在package-file文件中配置了recovery分区升级,则recovery.img将不会在recovery模式中升级,为预防出现在升级recovery.img过程中掉电导致后面其他分区无法正常升级的问题,recovery分区在当前运行的默认系统下进行升级,即执行"update ota /userdata/update.img"命令后会先检测update.img升级固件中是否有打包recovery.img,若有则先升级recovery分区,再进入recovery模式升级其他分区固件;若没有则直接进入recovery模式进行固件升级。
(4)misc分区不推荐打包至update.img升级固件中,在升级程序中该分区将被忽略,即使升级misc分区,升级成功后recovery程序仍会清空misc分区中所有命令及参数,从而导致无法达到预期结果。
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
审核编辑 黄宇
-
单板机
+关注
关注
1文章
53浏览量
18921 -
rk3576
+关注
关注
1文章
292浏览量
1668
发布评论请先 登录
RK3576 单板机 C/Python/MQTT 应用开发手册(一)
RK3576 单板机 LinuxSDK 开发与系统定制手册(二)
RK3576 单板机 LinuxSDK 开发与系统定制手册(一)
RK3562 单板机嵌入式 ROS2 开发指南:环境搭建与工程编译
RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(二)
RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(一)
3562 单板机 Linux 系统固化完全指南:从 SD 卡启动到 eMMC 永久部署
【作品合集】米尔RK3576开发板测评
【作品合集】灵眸科技EASY EAI Orin Nano(RK3576)开发板测评
瑞芯微RK3576与RK3576S有什么区别,性能参数配置与型号差异解析
RK3576 单板机系统使用手册:配置、升级与组件安装指南(三)
评论