nvidia系列教程-AGX-Orin系统刷机及备份

news2024/11/16 8:38:08

目录

前言

一、准备工作

二、AGX Orin 系统刷机步骤

三、AGX Orin 系统备份

总结


前言

        NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。


一、准备工作

在开始刷机和备份之前,请确保您已经准备好以下工具和资源:

  1. NVIDIA Jetson SDK Manager:这是 NVIDIA 提供的刷机工具,可以在 官方页面 下载。
  2. USB 线缆:用于将 AGX Orin 连接到主机电脑。
  3. Ubuntu 系统电脑:建议使用 Ubuntu 18.04 或 20.04 版本作为主机电脑。
  4. 存储设备:用于备份系统镜像的外部存储设备,如 USB 盘或外置硬盘。

二、AGX Orin 系统刷机步骤

        AGX-Orin刷机方式有两种,一种使用官方Jetson SDK Manager刷写方式,使用nvidia提供装刷机软件进行刷机,该方式在第一篇博文中有介绍,本文主要介绍在ubuntu20.04系统中使用命令的方式进行刷机,具体刷机步骤如下:

a、ubuntu20.04工具安装

  ubuntu20.04系统环境配置:在Linux_for_Tegra目录下执行sudo ./tools/l4t_flash_prerequisites.sh脚本,安装ubuntu系统所需的库,脚本内容如下所示:

sudo apt-get update && \
sudo apt-get install -y abootimg \
                        binfmt-support \
                        binutils \
                        cpp \
                        device-tree-compiler \
                        dosfstools \
                        lbzip2 \
                        libxml2-utils \
                        nfs-kernel-server \
                        python3-yaml \
                        qemu-user-static \
                        sshpass \
                        udev \
                        uuid-runtime \
                        whois \
                        openssl \
                        cpio \
                        rsync \
                        zstd

SYSTEM_VER="$(grep "DISTRIB_RELEASE" </etc/lsb-release | cut -d= -f 2 | sed 's/\.//')"

# Install lz4c utility required for compressing bpmp-fw-dtb.
# For Ubuntu 18.04 and older version, run "sudo apt-get install liblz4-tool".
# For Ubuntu 20.04 and newer version, run "sudo apt-get install lz4".
if [ "${SYSTEM_VER}" -lt 2004 ]; then
        sudo apt-get install -y liblz4-tool
else
        sudo apt-get install -y lz4
fi

        执行以下命令应用Jetson二进制文件,sudo ./apply_binaries.sh脚本位于Linux_for_Tegra目录下:

b、连接 AGX Orin

  • 使用 USB 线缆将 AGX Orin 连接到主机电脑。
  • 将 AGX Orin 置于恢复模式(Recovery Mode)。通常的步骤是先关机,按住恢复按键(Recovery Button),然后按下电源键启动。

c、flash.sh命令刷机

        SDK命令刷机主要是采用flash.sh进行刷机操作,其中flash.sh位于JetPack SDK开发包中,脚本位置在:

flash.sh脚本参数选择如下所示:

cftc@cftc-virtual-machine:~/nvidia/nvidia_sdk/JetPack_5.1.3_Linux_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra$ ./flash.sh --help

Usage: sudo ./flash.sh [options] <target_board> <rootdev>
  Where,
        target board: Valid target board name.
        rootdev: Proper root device.
    options:
        -c <cfgfile> ---------- Flash partition table config file.
        -d <dtbfile> ---------- device tree file.
        -f <flashapp> --------- Path to flash application (tegraflash.py)
        -h -------------------- print this message.
        -i <enc rfs key file>-- key for disk encryption support.
        -k <partition id> ----- partition name or number specified in flash.cfg.
        -m <mts preboot> ------ MTS preboot such as mts_preboot_si.
        -n <nfs args> --------- Static nfs network assignments
                                <Client IP>:<Server IP>:<Gateway IP>:<Netmask>
        -o <odmdata> ---------- ODM data.
        -r -------------------- skip building and reuse existing system.img.
        -t <tegraboot> -------- tegraboot binary such as nvtboot.bin
        -u <PKC key file>------ PKC key used for odm fused board.
        -v <SBK key file>------ Secure Boot Key (SBK) key used for ODM fused board.
        -w <wb0boot> ---------- warm boot binary such as nvtbootwb0.bin
        -x <tegraid> ---------- Tegra CHIPID.
        -B <boardid> ---------- BoardId.
        -C <cmdline> ---------- Kernel commandline arguments.
                                WARNING:
                                Each option in this kernel commandline gets
                                higher preference over the values set by
                                flash.sh. In case of NFS booting, this script
                                adds NFS booting related arguments, if -i option
                                is omitted.
        -F <flasher> ---------- Flash server such as cboot.bin.
        -G <file name> -------- Read partition and save image to file.
        -I <initrd> ----------- initrd file. Null initrd is default.
        -K <kernel> ----------- Kernel image file such as zImage or Image.
        -L <bootloader> ------- Bootloader such as cboot.bin or u-boot-dtb.bin.
        -M <mts boot> --------- MTS boot file such as mts_si.
        -N <nfsroot> ---------- i.e. <my IP addr>:/my/exported/nfs/rootfs.
        -R <rootfs dir> ------- Sample rootfs directory.
        -S <size> ------------- Rootfs size in bytes. Valid only for internal
                                rootdev. KiB, MiB, GiB short hands are allowed,
                                for example, 1GiB means 1024 * 1024 * 1024 bytes.
        -T <ext num sectors> ---The number of the sectors of the external storage device.
                                The default value is 122159104 if this option is not set.
        -Z -------------------- Print configurations and then exit.
        --no-flash ------------ perform all steps except physically flashing the board.
                                This will create a system.img.
        --external-device------ Generate flash images for external devices
        --sparseupdate--------- only flash partitions that have changed. Currently only support SPI flash memory
        --no-systemimg -------- Do not create or re-create system.img.
        --bup ----------------- Generate bootloader update payload(BUP).
        --single-image-bup <part name> Generate specified single image BUP, this must work with --bup.
        --bup-type <type> ----- Generate specific type bootloader update payload(BUP), such as bl or kernel.
        --multi-spec----------- Enable support for building multi-spec BUP.
        --clean-up------------- Clean up BUP buffer when multi-spec is enabled.
        --usb-instance <id> --- Specify the USB instance to connect to;
                                <id> = USB port path (e.g. 3-14).
        --no-root-check ------- Typical usage of this script require root permissions.
                                Pass this option to allow running the script as a
                                regular user, in which case only specific combinations
                                of command-line options will be functional.
        --uefi-keys <keys_conf> Specify UEFI keys configuration file.
        --rcm-boot ------------ Do RCM boot instead of physically flashing the board.
        --sign ---------------- Sign images and store them under "bootloader/signed"
                                directory. The board will not be physically flashed.
        --image --------------- Specify the image to be written into board.
        --boot-chain-flash <c>  Flash only a specific boot chain (ex. "A, "B", "all").
                                Defaults to "all", inputs are case insensitive.
                                Not suitable for production.
        --boot-chain-select <c> Specify booting chain (ex. "A" or "B") after the board is flashed.
                                Defaults to "A", inputs are case insensitive.
        --pv-crt -------------- The certificate for the key that is used to sign cpu_bootloader
        --with-systemimg ------ Generate system images also when using -k option
        --pv-enc <enc_key>----- The encryption key that is used to encrypt cpu_bootloader.
        --uefi-enc <uefi_enc_key> Key file (0x19: 16-byte; 0x23: 32-byte) to encrypt UEFI payloads
        --uda-dir-------------- Directory to store user data that will be encrypted in UDA partition.
        --separate-rcmboot-binary ------ Enable use of different binaries for rcmboot and coldboot.
        --generic-passphrase -- Use generic passphrase for disk encryption.
        --disable-random-iv --- Disable generation of random IV, SALT1, SALT2 and DERSTR.
        --read-info ----------- Read and display board related info, fuse info (based on fuse_t234.xml),
                                and EEPROM content.
        --reuse-uuid ---------  Reuse uuid which is already generated first time.

        flash.sh主要包含烧写参数、板卡配置、烧写分区等重要参数输入,具体参数请参考--help 参数说明,烧写命令如下所示:

sudo ./flash.sh -r jetson-agx-orin-devkit mmcblk0p1

        其中-r表示跳过根文件系统system.img制作,重用已经生成的镜像文件系统文件,如果是首次刷机,则需要去掉-r参数。其中mmcblk0p1为根文件系统分区,agx-orin默认烧录至emmc分区中。jetson-agx-orin-devkit为官方AGX-Orin模组配置,具体板卡配置说明如下:

其他刷机指令,单独刷写内核:

sudo ./flash.sh -k kernel y-c8-agx-orin-3550 mmcblk0p1

更新设备树文件:

sudo ./flash.sh -r -k kernel-dtb y-c8-agx-orin-3550 mmcblk0p1

 更新MB1_BCT 配置文件:

sudo ./flash.sh -k MB1_BCT y-c8-agx-orin-3550 mmcblk0p1

三、AGX Orin 系统备份

备份操作可以在刷机前或系统配置完成后进行,以确保在出现问题时能够快速恢复。

  1. 连接存储设备

    • 将外部存储设备连接到 AGX Orin,确保存储空间足够大以保存整个系统镜像。
  2. 创建备份镜像

sudo  ./flash.sh  -r  -k   APP -G  system_n102.img  y-c8-agx-orin-3550  mmcblk0p1

其中参数说明如下:

  1. -k APP:表示的是文件系统分区名称;
  2. -G system_n102.img:指定备份文件系统文件名称;

系统备份如下图所示:

备份途中会有百分比打印,全部部分完成有successfully打印


总结

        通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。定期进行系统备份是保障系统稳定运行的重要措施,建议大家在进行重要更改前都进行备份操作。

        如果您在操作过程中遇到任何问题,可以查阅 NVIDIA 的官方文档或寻求社区支持。希望这篇教程对您有所帮助!

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

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

相关文章

SpringBoot集成阿里百炼大模型 原子的学习日记Day01

文章目录 概要下一章SpringBoot集成阿里百炼大模型&#xff08;多轮对话&#xff09; 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1&#xff0c;选择大模型以及获取自己的api-key&#xff08;前面还有一步开通服务就没有展示啦&#xff01;&#xff09;2&#xff0c…

2024.8.05(glibc的安装及MySQL的安全用户角色权限)

一、glibc的安装 1、清空/etc目录下的my.cnf [rootlocalhost ~]# ls -l /etc/my.cnf -rw-r--r--. 1 root root 570 6月 8 2017 /etc/my.cnf [rootlocalhost ~]# rm -rf /etc/my.cnf 2、删除mariadb [rootlocalhost ~]# yum -y remove mariadb [rootlocalhost ~]# find / -na…

wps 最新 2019 专业版 下载安装教程,解锁全部功能,免费领取

文章目录 前言软件介绍软件下载安装步骤激活步骤小福利&#xff08;安卓APP&#xff09;软件介绍软件下载安装步骤 前言 本篇文章主要针对WPS2019专业版的安装下载进行详细讲解&#xff0c;软件已激活&#xff0c;可放心使用&#xff1b;并且可以进行账号登录&#xff0c;进行…

Router路由的使用

目录 一.Vue Router的使用&#xff1a; 二.使用vue-router来实现登录页面与主页面展示效果&#xff1a; 1.创建 index.js &#xff1a; 2.在 main.js 导入创建的路由器&#xff1a; 3.在App.vue声明标签&#xff1a; 三.子路由的使用&#xff1a; 1.添加五个组件 2.配置…

光线追踪(纹理映射)

最近在跟着ray trace in one week来学习光线追踪&#xff08;很多概念茅塞顿开&#xff09;做到一半想着记录一下&#xff08;比较随心&#xff09;上面是之前的效果。ray trace in one week Texture Coordinates for Spheres&#xff08;球体纹理坐标&#xff09; u, v 纹理…

K-means聚类算法原理解析

度量最小距离 对于 K-means 聚类算法而言&#xff0c;找到质心是一项既核心又重要的任务&#xff0c;找到质心才可以划分出距离质心最近样本点。从数学角度来讲就是让簇内样本点到达各自质心的距离总和最小。通过数学定义&#xff0c;我们将“质心”具象化&#xff0c;既然要使…

使用SpringBoot+Vue3开发项目(2)---- 设计文章分类的相关接口及页面

目录 一.所用技术栈&#xff1a; 二.后端开发&#xff1a; 1.文章分类列表渲染&#xff1a; 2.新增文章分类&#xff1a; 3.编辑文章分类&#xff1a; 4.删除文章分类 &#xff1a; 5.完整三层架构后端代码&#xff1a; &#xff08;1&#xff09;Controller层&#xff1a…

学习大数据DAY31 Python基础语法4和基于Python中的MySQL 编程

目录 Python 库 模块 time&datetime 库 连接 MySQL 操作 结构操作 数据增删改操作 数据查询操作 上机练习 7 面向对象 OOP 封装 继承 三层架构---面向对象思想模型层 数据层 业务逻辑显示层 上机练习 8 三层架构开发豆瓣网 关于我对 AI 写代码的看法&#xf…

大模型技术在企业应用中的实践与优化

【导读】大模型技术更新层出不穷&#xff0c;但对于众多企业及开发者而言&#xff0c;更为关键的命题则是如何进行应用落地&#xff0c;实现真正的智能化转型。本文系统且深入地探讨了大模型在企业应用中的关键环节和技术要点。从构建高质量的专属数据集、选择适宜的微调策略&a…

天线增益测试方法之射频器件S参数测试软件

天线增益的精确测量对于优化无线信号传输至关重要。NSAT-1000射频器件S参数测试软件作为针对S参数的测试设备&#xff0c;大幅提高了测试精度和效率。本文将为大家介绍该软件在天线增益测试方面的具体操作流程。 一、准备工作 在测试天线增益之前&#xff0c;需要准备好测试软件…

【启明智显分享】Model3A 7寸TFT触摸彩屏智能电压力锅解决方案

随着智能家居市场的快速发展&#xff0c;电压力锅作为厨房电器的代表之一&#xff0c;正逐步向智能化、高端化转型。为了进一步提升用户体验&#xff0c;增强产品竞争力&#xff0c;我们推出基于Model3A 7寸触摸彩屏电压力锅解决方案。该方案旨在通过Model3A芯片的强大性能与7寸…

24/8/5算法笔记 BGD,SGD,MGD梯度下降

今日对比不同梯度下降的代码 1.BGD大批量梯度下降(一元一次&#xff09; 首先导入库 import numpy as npimport matplotlib.pyplot as plt 随机生成线性回归函数 Xnp.random.rand(100,1)w,bnp.random.randint(1,10,size2)#增加噪声&#xff0c;更像真实数据 #numoy广播机制…

mysql的安装与基本操作

1、centos7 中安装 mysql 8.x&#xff08;1&#xff09;下载安装包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar&#xff08;2&#xff09;解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar&#xff08;3&…

PXE实验-使用kickstart批量自动部署操作系统

实验准备&#xff1a;rhel7.9具备图形界面的虚拟机&#xff0c;虚拟机网络配置可用&#xff0c;VMware 中NAT的DHCP功能关闭&#xff0c;虚拟机中yum源已配置好 1.在虚拟机中安装kickstart并且启动图形制作工具 yum install system-config-kickstart.noarch -y system-config…

【第13章】Spring Cloud之Gateway全局异常处理

文章目录 前言一、异常处理1. 响应实体类2. 异常处理类 二、单元测试1. 无可用路由2. 服务不可用 总结 前言 网关作为我们对外服务的入口起着至关重要的作用&#xff0c;我们必须保证网关服务的稳定性&#xff0c;下面来为网关服务增加异常处理机制。 一、异常处理 1. 响应实…

动态规划.

目录 &#xff08;一&#xff09;递归到动规的一般转化方法 &#xff08;二&#xff09;动规解题的一般思路 1. 将原问题分解为子问题 2. 确定状态 3. 确定一些初始状态&#xff08;边界状态&#xff09;的值 4. 确定状态转移方程 &#xff08;三&#xff09;能用动规解…

小程序 发布流程

1&#xff1a; 点击HbuilderX 菜单栏上的 发行> 小程序-微信&#xff08;适用于uni-app&#xff09; 2: 第二步&#xff1a; 需要再弹出框中填写发布系小程序的名称和AppId 之后&#xff0c; 点击发行按钮。 3&#xff1a;在Hbuilder 的控制台中 查看小程序发布编译的进度。…

VMware17下载与安装

1.下载 通过百度网盘分享的文件&#xff1a;VMware17 链接&#xff1a;https://pan.baidu.com/s/1gCine3d3Rp_l3NYAu5-ojg 提取码&#xff1a;ek25 --来自百度网盘超级会员V3的分享 2.安装

k8s(六)---pod

六、pod&#xff08;k8s中最小的调度单元&#xff09; pod中可以有一个或多个容器 1、官网 2、简介 Pod是k8s中最小的调度单元、Pod具有命名空间隔离性 3、如何创建一个Pod资源&#xff08;主要两种方式&#xff09; 1&#xff09;kubctl run ①kubectl run nginx–imagereg…

k8s(七)---标签

一、标签&#xff08;适用于资源定位&#xff09; label是一对key和value,创建标签后&#xff0c;方便对资源进行分组管理。 1.帮助 kubectl label --help 2.打标签 pod 针对于pod打标签 key是env&#xff0c;value是test kubectl label po nginx envtest 给pod打标签 3.查看 k…