Skip to main content

在 reComputer 上创建备份与恢复

介绍

reComputer 是一款强大且紧凑的智能边缘盒子,可为边缘侧带来高达 275TOPS 的现代 AI 性能。当你已经在 reComputer 上为业务配置并安装好所需的软件和环境,并需要在另一台新的 reComputer 上复制该项目时,重新安装软件的方式效率不高。因此,本 wiki 页面将以 reComputer J3011 为例,介绍如何在 reComputer 系列上备份现有的软件和环境,方便你将其恢复并迁移到新的 reComputer 上。

note

我们的测试平台是 reComputer J3011,文中提供 JetPack 5.1.3 和 JetPack 6.2 作为参考。请根据你的 JetPack 版本选择相应章节。

前置条件

  • Ubuntu 主机电脑
  • USB Type-C 数据传输线
  • reComputer J3011(搭载 JetPack 5.1.3 或 JetPack 6.2 系统)
info

已在 reComputer 上安装并配置好所需的软件和应用程序。请确保这些修改不会影响设备的正常启动。建议在完成更改后重启设备以确认稳定性。

如上图所示,我们安装了 jtop 软件,这样就可以在终端中直接使用这些命令。

JetPack 5.1.3

备份系统

步骤 1. 将设备设置为恢复模式,请参考此 wiki 页面

步骤 2. 获取与你的 Jetson 模组对应的 JetPack BSP。对于 JetPack 5.1.3,请从 NVIDIA 官方网站 下载 Jetson Linux R35.5.0 BSP。

步骤 3. 解压 BSP 文件,以访问 Linux_for_Tegra 目录。

tar -xvzf jetson-linux-*.tbz2
# For Jetpack 5.1.3: tar -xvzf Jetson_Linux_R35.5.0_aarch64.tbz2

步骤 4. 将 Linux_for_Tegra 的内容复制到你的 JetPack 刷机包目录(例如 mfi_recomputer-orin)。

note

“刷机包目录”是指在刷写系统过程中所使用的目录文件。

使用 -rn 选项以保留已有文件:

sudo cp -rn Linux_for_Tegra/* mfi_recomputer-orin

步骤 5. 进入你的 JetPack 刷机包目录:

cd /path/to/mfi_recomputer-orin

步骤 6. 执行备份脚本,指定你的存储设备和期望的备份名称:

sudo ./tools/backup_restore/l4t_backup_restore.sh -e nvme0n1 -b recomputer-orin
info

-b <target_board> 替换为你的设备

note

你可以进入 JetPack 刷机包目录,找到一个 xxx.conf 文件。 xxx 就是你的 <target_board>

ls | grep *.conf

耐心等待直到完成。 如果一切顺利,你将在终端中看到类似下图的内容:

note

在此过程中,你的设备可能会像刷机过程一样多次重启。不建议使用虚拟机或 WSL,因为可能会导致连接丢失,从而使备份/恢复过程失败。你可能会遇到某些文件缺失的情况;此时可以打开 recomputer-orin.conf 并删除不存在的文件条目。 通常这些是临时的设备树 overlay 目标文件,它们不会影响备份和恢复结果。但如果你对 BSP 做过修改,则需要合并自己的 overlay 文件。

恢复系统

步骤 1. 在 reComputer 中插入一块新的空白 SSD

步骤 2. 按照前文说明进入强制恢复模式。

步骤 3. 在主机系统上,进入你的 JetPack 刷机包目录,并在主机上执行恢复命令:

sudo ./tools/backup_restore/l4t_backup_restore.sh -e nvme0n1 -r recomputer-orin

如果一切顺利,你将在终端中看到类似下图的内容:

步骤 4. 给 Jetson 设备上电,使用我们之前设置的用户名和密码登录,并测试之前安装的一些软件。如果可以正常运行,则说明恢复成功。

由于我们在之前的系统中已经安装了 jtop,因此可以在新系统的终端中直接启动 jtop。

info

另外,以下场景已通过备份与恢复测试:

  • 将备份恢复到原始 SSD。
  • 将备份恢复到不同的 SSD。
  • 在同一载板上恢复备份,Jetson 模组为同一批次,不同 SSD。

JetPack 6.2

备份系统

对于 JetPack 6.2(L4T 36.4.3),备份过程需要先下载已编译的 Seeed BSP 固件,并在执行备份前编译源码。

步骤 1. 下载已编译的 Seeed BSP 固件:L4T-36.4.3

步骤 2. 解压下载的压缩包,并在 PC 终端中使用以下命令生成所需内容:

sudo tar xpf L4T36-4-3_plus.tar
# For example: sudo tar xpf L4T36-4-3_plus.tar

cd Linux_for_Tegra/
sudo ./apply_binaries.sh
cd ..

步骤 3. 在解压后的目录中(tar.gz 包所在位置)设置环境变量:

export ARCH=arm64 
export CROSS_COMPILE="$PWD/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-"
export PATH="$PWD/aarch64--glibc--stable-2022.08-1/bin:$PATH"
export INSTALL_MOD_PATH="$PWD/Linux_for_Tegra/rootfs/"

步骤 4. 进入源码目录并编译源码(该过程需要一定时间):

cd Linux_for_Tegra/source
./nvbuild.sh

步骤 5. 编译完成后,复制并安装已编译的组件:

./do_copy.sh
./nvbuild.sh -i

步骤 6. 现在工作目录已经准备就绪。进入 Linux_for_Tegra/ 目录,将设备设置为恢复模式,请参考此 wiki 页面,并执行备份脚本:

cd ../
sudo ./tools/backup_restore/l4t_backup_restore.sh -e nvme0n1 -b recomputer-orin-j401
info

-b <target_board> 替换为你的设备。对于 JetPack 6.2,默认的 target board 为 recomputer-orin-j401

耐心等待直到完成。如果一切顺利,你将在终端中看到成功提示信息。

note

在此过程中,你的设备可能会像刷机过程一样多次重启。不建议使用虚拟机或 WSL,因为可能会导致连接丢失,从而使备份/恢复过程失败。

恢复系统

步骤 1. 在 reComputer 中插入一块新的空白 SSD

步骤 2. 按照前文说明进入强制恢复模式。

步骤 3. 在主机系统上,进入你的 Linux_for_Tegra/ 目录,并在主机上执行恢复命令:

sudo ./tools/backup_restore/l4t_backup_restore.sh -e nvme0n1 -r recomputer-orin-j401

如果一切顺利,你将在终端中看到成功提示信息。

步骤 4. 给 Jetson 设备上电,使用我们之前设置的用户名和密码登录,并测试之前安装的一些软件。如果可以正常运行,则说明恢复成功。

info

另外,以下场景已通过备份与恢复测试:

  • 将备份恢复到原始 SSD。
  • 将备份恢复到不同的 SSD。
  • 在同一载板上恢复备份,Jetson 模组为同一批次,不同 SSD。

资源

技术支持与产品讨论

感谢您选择我们的产品!我们将为您提供多种支持,确保您在使用我们产品的过程中尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...