瑞芯微 rk3588 Linux系统备份还原 StepbyStep

1.系统备份

1.1 将瑞芯微平台嵌入式系统的root ssh 权限开通

step1:
sudo vi /etc/ssh/sshd_config

step2: 找到PermitRootLogin,把开关打开:

PermitRootLogin yes

step3:重启ssh服务

sudo systemctl restart sshd

1.2.使用瑞芯微的打包脚本把嵌入式系统系统打包

这个打包脚本,建议修改一下。这个脚本需要在宿主机上运行。下面列出了修改后的脚本,它会把瑞芯微芯片上的根文件系统通过瑞芯微上驻留的rsync服务,传送到宿主机与.sh相同的目录。

rsync服务默认没有安装,需要按照到rk3588上。

#! /bin/bash# acquire root privilege
if [ ! "$UID" -eq 0 ]; thenecho "This script require root privilege."exit 0
fifunction check_ip() 
{   local IP=$1   VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')   if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then   if [ $VALID_CHECK == "yes" ]; then   echo "IP $IP  available!"   return 0   else   echo "IP $IP not available!"   return 1   fi   else   echo "IP format error!"   return 1   fi   
}   
while true ;do   read -p "Enter your username and ip:" userName IP   check_ip $IP   [ $? -eq 0 ] && break   
done
# Install the rsync
if ! type rsync >/dev/null 2>&1; thenecho 'rsync did not install,Now we will intall rsync!'apt updateapt install rsync
fi
# Test ip
if  ping -c 2 ${IP} >/dev/null ; thenecho 'The IP is conneted!'   
else echo 'The IP can not conneted! 'exit 0
fi
# New path
rm -rf ./rootfs
if [ ! -d "./rootfs" ]; thenmkdir ./rootfs
fi
# Download rootfs
rsync -avx $userName@$IP:/ ./rootfs
#rm -rf ./rootfs/var/log/*# Creat new img by dd 
dd if=/dev/zero of=rootfs.img  bs=1M count=15000
mkfs.ext4 -F -L linuxroot rootfs.img
if [ ! -d "/ubuntu-mount" ]; thenmkdir /ubuntu-mount
fi
mount rootfs.img /ubuntu-mount
cp -rfp ./rootfs/* /ubuntu-mount
umount /ubuntu-mount
e2fsck -p -f rootfs.img
resize2fs -M rootfs.img
exit 0

1.3 系统备份的结果

 最终会生成一个叫rootfs.img包,这个包往往尺寸很大,推荐用.7z压缩一下。另外,./rootfs中你能看到根文件系统,建议对./rootfs/var/log中的目录进行整理,删减不必要的日志

7z a xxxx-release-v1.0.20240510.7z rootfs.img

 这个rootfs.img的包就是我们需要处理的文件系统。

2.升级包.img生成

2.1 首选准备原厂boot uboot这里镜像文件

它们需要和上一步生成的linux文件系统合并,然后打包成最终的.img映像。

使用原厂系统工具:RKDevTool_Release_v2.92解包适应你的平台的原厂.img升级包,比如对我而言是:

lubancat-rk3588-debian11-gnome-20240424_update.img

注意最新版的v3.15功能不全,无法使用。

注意v2.92有个坑:

2.1.1 修改v2.92烧写工具的bug

我们之后主要的工作目录:./rockdev下的两个可执行文件不是最新版:

最新版在.bin目录里:

记得把它先拷过去。

2.1.2 解包

原厂文件的解包过程,打开主界面即可:

解包的位置在这里:

选择固件包(*.img),然后点击解包即可。 

解包后的各个组成部分放置在:
.\Output目录下:

2.2 筛选需要的.imge和其他配置文件到工作目录中

 注意依照2.1.1修正v2.92 ./rockdev目录的.exe文件版本问题

step1:在.rockdev目录创建Image目录,把Output目录中的文件全部拷贝过去

step2.把Image目录中的package-file,拷贝一份到./rockdev目录

step3.建议修改update-script文件,增补rootfs的部分
(它可能并不需要,如果你测试不需要这一步,请留言。)

# 升级kernel
write_image PACKAGE:kernel KERNEL:
check_image PACKAGE:kernel KERNEL:

# 升级boot
write_image PACKAGE:boot BOOT:
check_image PACKAGE:boot BOOT:

# 升级rootrfs
write_image PACKAGE:rootfs ROOTFS:
check_image PACKAGE:rootfs ROOTFS:

上文中加粗的部分是新增的代码。

2.3 替换掉./rockdev/Image中的rootfs.img

2.4 打包,生成最终可用的.img

rk3588-mkupdate.bat 

3.最终的成品及使用

最终在./rockdev目录下会生成一个

update.img

可以重命名并压缩,这就是最终的升级包

3.1 升级:

最终升级时, 注意要进入Loader模式:

备注:

这个备份和还原过程在鲁班猫CAT4平台上测试过,对应的芯片组是RK3588.

last modified: May10,2024
created at :May10,2024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过钉钉卡片进行工单审批

我们通常通过钉钉机器人来发送通知&#xff0c;提醒审批人名下有待办工单需要处理。这种通知方式仅能提醒审批人到ITSM中处理&#xff0c;审批人需要打开电脑登陆平台处理&#xff0c;我们就考虑是否能有一种方式能够满足移动端审批&#xff1f; 这里我们可以使用ITSM的移动端版…

三十年前的一场篮球赛

高中时候&#xff0c;篮球是男同学最喜欢的运动。高一时&#xff0c;我们用班费买个篮球。那个篮球应该叫石球&#xff0c;一是因为它像石头一样硬&#xff0c;把我的手指头伤了好多次&#xff1b;二是它买回来后&#xff0c;一直到玩丢了&#xff0c;就没有打过气。后来打久了…

问题处理记录 | 表输出报错 Packet for query is too large (5,214,153 > 4,194,304).

这个错误是由于MySQL服务器接收到的查询数据包太大而引起的。具体来说&#xff0c;错误消息中提到的数据包大小为5,214,153字节&#xff0c;而MySQL服务器默认只接受最大为4,194,304字节的数据包。 要解决这个问题&#xff0c;你可以尝试通过修改MySQL服务器的配置来增大max_a…

Python图形界面(GUI)Tkinter笔记(六):用config对控件进行设置

想让代码更模块化、函数化、对象化,可使用"config()"方法设置标签控件或其它控件的参数。把需随时要修改的控件参数定义在“config()”方法里且把它封装在一个函数中,这时只需对这函数内的“config()”方法作出相应的修改即可,无需对主代码或全部代码重新修一遍。…

《小猫咪大城市》 48小时销量破40万套,一匹休闲游戏黑马诞生

易采游戏网5月13日消息&#xff0c;近日一款名为《小猫咪大城市》的游戏在Steam、Switch和Xbox平台上正式发售&#xff0c;凭借其独特的游戏设定和可爱的猫咪角色&#xff0c;迅速赢得了玩家们的喜爱。据官方宣布&#xff0c;游戏在发售后的短短48小时内&#xff0c;销量已经突…

【退役之重学Java】ThreadLocal

一、ThreadLocal 与 Synchronized 区别 ThreadLocal&#xff1a; 采用“以空间换时间”的方式&#xff0c;为每一个线程都提供了一份变量的副本&#xff0c;从而实现同时访问而互不干扰多线程中让每个线程之间的数据相互隔离 Synchronized 同步机制采用“以时间换空间”的方式…

经典文献阅读之--D-Map(无需射线投射的高分辨率激光雷达传感器的占据栅格地图)

0. 简介 占用地图是机器人系统中推理环境未知和已知区域的基本组成部分。《Occupancy Grid Mapping without Ray-Casting for High-resolution LiDAR Sensors》介绍了一种高分辨率LiDAR传感器的高效占用地图框架&#xff0c;称为D-Map。该框架引入了三个主要创新来解决占用地图…

jQuery中的ready()函数:优雅地处理页面加载事件

在前端开发中&#xff0c;精确控制JavaScript脚本的执行时机对于保证页面元素被正确操作至关重要。传统上&#xff0c;开发者依赖于原生JavaScript的window.onload事件来确保页面所有资源&#xff08;包括图片、脚本等&#xff09;加载完毕后再执行特定代码。然而&#xff0c;这…

信息化系统建设运维服务方案(投标)Word原件

《信息化系统运维服务方案》&#xff08;原件可获取&#xff09; 1.项目情况 2.服务简述 2.1服务内容 2.2服务方式 2.3服务要求 2.4服务流程 2.5工作流程 2.6业务关系 2.7培训 3.资源提供 3.1项目组成员 3.2服务保障 软件全套精华资料包清单部分文件列表&#xff1a; 工作安排任…

ICode国际青少年编程竞赛- Python-2级训练场-坐标入门

ICode国际青少年编程竞赛- Python-2级训练场-坐标入门 1、 d Item.x - Dev.x Dev.step(d)2、 d Item.y - Dev.y Dev.step(d)3、 d Dev.y - Item.y Dev.step(d)4、 d Item[0].x - Dev.x Dev.step(d) Dev.step(-d) Dev.turnRight() d Item[1].y - Dev.y Dev.step(d)…

Jetson Orin NX L4T35.4.1平台自启动时间优化调试记录2

基于上一篇继续记录 Jetson Orin NX L4T35.4.1平台自启动时间优化调试记录1-CSDN博客 1. 测试UEFI 延时5s问题 [2024-03-19 11:51:04] L4TLauncher: Attempting Direct Boot [2024-03-19 11:51:09] EFI stub: Booting Linux Kernel... debug UEFI 在 11:51:04和11:51:09之…

电商数据接口|如何获取电商数据?

随着互联网的发展&#xff0c;电商的运营方式也逐渐数据化&#xff0c;在大数据的影响下&#xff0c;电商领域很大程度上改变了传统的运营模式。很多商家如今都非常重视数据&#xff0c;并将数据贯穿于整个店铺的运营之中。 那么&#xff0c;具体来说电商大数据有哪些妙用呢&a…

商务分析方法与工具(十):Python的趣味快捷-公司财务数据最炫酷可视化

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

Spring boot使用websocket实现在线聊天

maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spr…

软件2班20240513

第三次作业 package com.yanyu;import java.sql.*; import java.util.ResourceBundle;public class JDBCTest01 {public static void main(String[] args) {ResourceBundle bundle ResourceBundle.getBundle("com/resources/db");// ctrl alt vString driver …

高端智能终端RK3399主板在配送机器人项目的应用,支持免费定制

基于高端智能终端主板IoT-3399E推出了系列配送机器人&#xff0c;面向各类线下门店的配送服务。配送机器人可实现智能识别、精准配送、自动避障、自主调度系统、语音播报、信息互动等功能&#xff0c;大幅提升服务效率&#xff0c;为消费者带来更加便捷、智能的服务体验。 核心…

MySQL删除篇

文章目录 deletetruncatedrop delete delete from product ; 使用场景&#xff1a;一般正常删除数据&#xff0c;可回滚&#xff0c;不删除表结构 truncate truncate table product;使用场景:快速清空表数据&#xff0c;不可回滚&#xff0c;不删除表结构 drop drop tabl…

RK3568/RK3588智慧校园AI盒子方案,电子班牌,出入口管制,数字化校园等,支持鸿蒙,支持免费定制

智慧校园解决方案基于物联网、人工智能等新兴技术&#xff0c;为师生构建智能化校园环境&#xff0c;涵盖了校园安全、智慧教室、考勤管理、智慧食堂等多个场景&#xff0c;从工作、学习到生活&#xff0c;带来更人性化、更便捷、更高效的服务。 方案架构 方案特点 全面感知校园…

驾驭多云环境,加速AI创新丨Animbus Cloud 8.3.0 算力调度平台升级发布

大模型开启全球新一轮AI浪潮&#xff0c;伴随算力规模的爆发增长以及计算技术的多元创新&#xff0c;需要更稳定、高效、敏捷的异构计算基础设施&#xff0c;才能充分发挥对算力能力的重要支撑。 作为开放智能云边架构引领者&#xff0c;九州未来凭借多年的技术积累、实践沉淀…

2024-05-09 问AI: 在深度学习中,什么是模型检查点?

文心一言 在深度学习中&#xff0c;“模型检查点”&#xff08;Model Checkpoint&#xff09;是指训练过程中的一个保存点&#xff0c;它包含了模型在那一特定时刻的权重、配置和优化器的状态等信息。这种技术允许在训练被中断时&#xff0c;或者想要从某个点开始继续训练时&a…