rk3288 ubuntu系统备份的两种方法之二

36 篇文章 0 订阅
7 篇文章 0 订阅
本文详细介绍了如何使用AndroidTool_Release工具备份和更新RK3288设备上的Ubuntu系统,包括解包update.img,备份rootfs.img,替换rootfs.img,合成新的update.img,以及烧录新固件到空白板子的过程。
摘要由CSDN通过智能技术生成

rk3288 ubuntu系统备份的两种方法之二

1.1 用AndroidTool_Release工具把原始的update.img镜像解包;

在这里插入图片描述

解包成功如下图:

在这里插入图片描述

解包之后的文件:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2 使用PC备份已经装配好的rk3288板子里的rootfs.img;

a) 准备工作:

Ø 开发板插上网线,板子和电脑处于同一个网段,并能连接到外网;

Ø 通过USB转TTL串口设备连接板子的debug串口,进入板子系统(比如使用xshell工具,串口波特率为115200)。

b) 开始拷贝:

Ø 准备一台Ubuntu系统的实体机或虚拟机作为PC端

Ø 在开发板的 UBUNTU 系统上面安装软件 openssh 的服务端 openssh-server:

在这里插入图片描述

Ø 修改开发板 root 登录权限:

在这里插入图片描述

Ø 在 sshd_config 中修改 PermitRootLogin 选项如下,用以确保 root 登录权限足够
在这里插入图片描述

Ø 重启开发板或者重启 ssh 服务

在这里插入图片描述

Ø PC 端安装 openssh 客户端 openssh-client

在这里插入图片描述

Ø PC 端安装 rsync

在这里插入图片描述

Ø PC 新建目录 ubuntu_make 并进入并创建Ubuntu目录 :

在这里插入图片描述

Ø 同步数据

在这里插入图片描述

Ø 同步完成后,PC 进入 ubuntu 文件夹下面增加脚本文件 etc/onlyone.sh

在这里插入图片描述

onlyone.sh 内容为:

#!/bin/sh
read line < /proc/cmdline
for arg in $line; do
 if [ "5" -le "$(expr length $arg)" ]; then
 if [ "root=" = "$(expr substr $arg 1 5)" ]; then
 {
 *debug_arg=$(expr $arg : 'root=\(.\*\)')
 resize2fs $debug_arg
 }
 fi
 fi
done

Ø PC 端 ubuntu 文件夹下更改该文件权限:

在这里插入图片描述

Ø 返回上级目录(make_ubuntu),并制作一个make_ubuntu.sh 到当前文件夹:

在这里插入图片描述

make_ubuntu.sh的内容如下:

#!/bin/bash
#ubuntu(ubuntu-core) build already annotation
#not Often compiled      .......too slow and need root
MAKE_THEARD=`cat /proc/cpuinfo| grep "processor"| wc -l`RESULT="ubuntu-rootfs"
function creat_result_dir()
{
    if [ ! -d $RESULT ];
        then
        {
            mkdir Image-rk3288-ubuntu
        }
    fi
}
function ubuntu_core_build() 
{
    dd if=/dev/zero of=linux-rootfs-core.img bs=1M count=1000
    sudo mkfs.ext4 -F -L linuxroot linux-rootfs-core.img
    
    if [ ! -d mount ];
        then
        {
            mkdir mount
        }
    fi
    sudo mount linux-rootfs-core.img mount
    sudo cp -a ubuntu_core/* mount
    sudo umount mount
    e2fsck -p -f linux-rootfs-core.img
    resize2fs -M linux-rootfs-core.img
    rm -rf mount
    mv linux-rootfs-core.img $RESULT
}
function ubuntu_build() 
{
    dd if=/dev/zero of=linux-rootfs.img bs=1M count=5000
    sudo mkfs.ext4 -F -L linuxroot linux-rootfs.img
    
    if [ ! -d mount ]; 
        then
        {
            mkdir mount
        }
        
    fi
    sudo mount linux-rootfs.img mount
    sudo cp -a ubuntu/* mount
    sudo umount mount
    e2fsck -p -f linux-rootfs.img
    resize2fs -M linux-rootfs.img
    rm -rf mount
    mv linux-rootfs.img $RESULT
}
function ubuntu_clean() 
{
    rm $RESULT/linux-rootfs.img
}
function ubuntu_core_clean() 
{    rm $RESULT/linux-rootfs-core.img
}
function result_clean() 
{
    rm -rf $RESULT
}
# creat_result_dir
if [ $1 == "clean" ]
    then
    {
        if [ ! -n $2 ]
            then
            {
                ubuntu_core_clean
                ubuntu_clean
                result_clean
                echo clean Img oK
            }
        elif [ $2 == "ubuntu" -o $2 == "ubuntu/" ]
            then
            {
                ubuntu_clean
            }
        elif [ $2 == "ubuntu_core" -o $2 == "ubuntu_core/" -o $2 == "ubuntu-core" -o $2 == "ubuntu-core/" ]
            then
            {
                ubuntu_core_clean
            }
        else
            {
                ubuntu_core_clean
                ubuntu_clean
                result_clean
                echo clean Img oK
            }
        fi
    }
elif [ $1 == "ubuntu_core" -o $1 == "ubuntu_core/" -o $1 == "ubuntu-core" -o $1 == "ubuntu-core/" ]
    then
    {
        ubuntu_core_build
    }
elif [ $1 == "ubuntu" -o $1 == "ubuntu/" ]
    then
    {
        ubuntu_build
    }
else
    {
        ubuntu_core_build
        ubuntu_build
    }
fi

并赋予该脚本777权限

在这里插入图片描述

Ø 运行 make_unbuntu.sh 制作 ubuntu 固件:

在这里插入图片描述

Ø 脚本运行完成,在ubuntu-rootfs 目录下生成 ubuntu_core、ubuntu 固件

在这里插入图片描述

1.3 将备份的rootfs.img替换AndroidTool_Release工具解包的rootfs.img;

在这里插入图片描述

拷贝“AndroidTool_Release\Output\Android\Image”文件夹 到“AndroidTool_Release\rockdev”文件夹

拷贝“AndroidTool_Release\Output\Android\ package-file”文件 到“AndroidTool_Release\rockdev”文件夹

拷贝“AndroidTool_Release\Output\ boot.bin”文件 到“AndroidTool_Release\rockdev”文件夹

拷贝“AndroidTool_Release\Output\ firmware.img”文件 到“AndroidTool_Release\rockdev”文件夹

在这里插入图片描述

1.4 用AndroidTool_Release\rockdev\rk3288-mkupdate.bat工具合成新的update.img镜像;

双击运行\rk3288-mkupdate.bat:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最终生成upgrade.img如下图所示:

在这里插入图片描述

1.5 用AndroidTool_Release工具把新和成的update.img整体烧到rk3288的空白板子里;

a) 硬件连接:

在这里插入图片描述

b) 擦除flash:

在这里插入图片描述

c) 整包固件升级:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值