nvidia系列教程-AGX-Orin系统刷机及备份
目录
前言
一、准备工作
二、AGX Orin 系统刷机步骤
三、AGX Orin 系统备份
总结
前言
NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。
一、准备工作
在开始刷机和备份之前,请确保您已经准备好以下工具和资源:
- NVIDIA Jetson SDK Manager:这是 NVIDIA 提供的刷机工具,可以在 官方页面 下载。
- USB 线缆:用于将 AGX Orin 连接到主机电脑。
- Ubuntu 系统电脑:建议使用 Ubuntu 18.04 或 20.04 版本作为主机电脑。
- 存储设备:用于备份系统镜像的外部存储设备,如 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 \zstdSYSTEM_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 ]; thensudo apt-get install -y liblz4-tool
elsesudo 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 --helpUsage: 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 getshigher preference over the values set byflash.sh. In case of NFS booting, this scriptadds NFS booting related arguments, if -i optionis 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 internalrootdev. 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 aregular user, in which case only specific combinationsof 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 系统备份
备份操作可以在刷机前或系统配置完成后进行,以确保在出现问题时能够快速恢复。
-
连接存储设备
- 将外部存储设备连接到 AGX Orin,确保存储空间足够大以保存整个系统镜像。
-
创建备份镜像
sudo ./flash.sh -r -k APP -G system_n102.img y-c8-agx-orin-3550 mmcblk0p1
其中参数说明如下:
- -k APP:表示的是文件系统分区名称;
- -G system_n102.img:指定备份文件系统文件名称;
系统备份如下图所示:
备份途中会有百分比打印,全部部分完成有successfully打印
总结
通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。定期进行系统备份是保障系统稳定运行的重要措施,建议大家在进行重要更改前都进行备份操作。
如果您在操作过程中遇到任何问题,可以查阅 NVIDIA 的官方文档或寻求社区支持。希望这篇教程对您有所帮助!
相关文章:

nvidia系列教程-AGX-Orin系统刷机及备份
目录 前言 一、准备工作 二、AGX Orin 系统刷机步骤 三、AGX Orin 系统备份 总结 前言 NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷…...
将 Mojo 与 Python 结合使用
Mojo 允许您访问整个 Python 生态系统,但环境可能会因 Python 的安装方式而异。花些时间准确了解 Python 中的模块和包的工作原理是值得的,因为有一些复杂情况需要注意。如果您以前在调用 Python 代码时遇到困难,这将帮助您入门。 Python 中的模块和包 让我们从 Python 开始…...

Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
Unrecognized option: --add-opensjava.base/java.langALL-UNNAMED Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Disconnected from server 报错原因:这里我是启动一个SpringBoot项目的时候报这…...
js与ios、安卓原生方法互调。
注意方法名与参数需要与对方约束 1.js调用安卓原生方法 window.android.方法名(要传递的参数) 调用安卓方法并且传递参数过去:window.WebAppInterface.安卓方法("参数") window.安卓暴露的方法function(安卓传递过来的参数){} …...

C++——多态经典案例(二)制作饮品
案例:制作饮品的步骤是差不多一样的,假设都有四步,打开包装Open、煮水Boil、放杯子里面PutInCup、放佐料PutSomething、喝Drink 利用多态,制作茶和咖啡等饮品 分析:定义一个抽象类,纯虚函数包括Open、Boil…...

内网域森林之ProxyNotShell漏洞利用
点击星标,即时接收最新推文 本文选自《内网安全攻防:红队之路》 在渗透测试过程,如果目标环境存在Exchange服务器,我们也需要测试是否存在已知的远程命令执行漏洞,这里首先介绍ProxyNotShell。 ProxyNotShell和之前…...

SpringBoot基础 第一天
SpringBoot配置的文件名是固定的:application.yml application.properties YAML:以数据为中心 比Json xml更适合做配置文件 YAML语法: 1 字面量:普通值(字符串 布尔值 数字) (1) k: v (2) " "不会转义 会转义 2 对象,map(属性和值) (1)…...

【C/C++】C语言和C++实现Stack(栈)对比
我们初步了解了C,也用C语言实现过栈,就我们当前所更新过的有关C学习内容以栈为例子,来简单对比一下C语言和C。 1.C中栈的实现 栈的C语言实现在【数据结构】栈的概念、结构和实现详解-CSDN博客 ,下面是C实现的栈, 在St…...
mysql定时备份脚本
概述 整理Mysql数据库备份脚本,用在生产环境数据库定时备份。 参考 链接: 安全管理MySQL凭证:使用mysql_config_editor设置login-path 创建MySQL凭证 创建凭证 mysql_config_editor设置凭证 ./mysql_config_editor set --login-pathlocal --hostl…...

云原生 (1)
一、实验准备 1,准备一台rhel7的主机,并开启主机的图形。 2,关闭vmware DHCP功能。 3,配置好可用IP。 4,关闭火墙。 二、安装图形化kickstart自动安装脚本的工具 1. 基础配置 yum install system-config-kickstart ——安…...
gitlab-pages创建静态站点
配置.gitlab-ci.yml image: fe-image/node:2.8.2 # 表示使用有 nodejs 环境的 docker,python等也有其他的 docker。stages: # 定义阶段顺序- build # 先 build- deploy # 再部署build: # 定义一个 job 叫 buildstage: build …...
Python爬虫技术 案例集锦
让我们通过几个实际的案例来说明如何使用Python编写网络爬虫。这些案例将涵盖从简单的静态网页爬取到较为复杂的动态网站交互,并且还会涉及到数据清洗、存储和分析的过程。 案例 1: 简单的静态网页爬虫 假设我们需要从一个简单的静态新闻网站上抓取文章标题和链接…...

实战OpenCV之环境安装与配置
OpenCV是什么 OpenCV,英文全称为Open Source Computer Vision Library,是一个开源的计算机视觉和机器学习软件库。它设计用于提供一系列功能强大的算法,以帮助开发者处理图像和视频数据,实现各种视觉任务,包括…...
Android应用开发面试之Jetpack面试题分析汇总
Jetpack作为Android开发的一个重要框架,其相关问题在Android原生开发面试中也非常常见。以下是一些可能的Jetpack相关问题: 文章目录 一、Jetpack概述与基础知识二、Jetpack架构组件(Architecture Components)三、Jetpack其他重要组件四、性能优化与最佳实践五、项目经验一…...

【数据结构】栈的概念、结构和实现详解
本文来介绍一下数据结构中的栈,以及如何用C语言去实现。 1. 栈的概念及结构 栈:一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 栈中元素遵循后进先出…...
LeetCode 每日一题 2024/7/29-2024/8/4
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 7/29 682. 棒球比赛7/30 2961. 双模幂运算7/31 3111. 覆盖所有点的最少矩形数目8/1 LCP 40. 心算挑战8/2 3128. 直角三角形8/3 3143. 正方形中的最多点数8/4 572. 另一棵树…...

Golang死锁vs操作系统死锁
目录 一、死锁 二、Golang死锁场景 2.1 重复上锁 2.2 不会减少的 WaitGroup 2.3 空select 2.4 channel 一、死锁 1.golang中死锁的触发条件: 死锁是当 Goroutine 被阻塞而无法解除阻塞时产生的一种状态。 2.操作系统死锁: 发生死锁时,线…...
c/c++中π怎么定义
c/c中都没有π的专属变量,一般都是自定义。 方法1:#define pi 3.1415926 方法2:使用反三角函数const double pi acos(-1.0);...
基于whisper流式语音识别
为了实现持续监听麦克风并在检测到声音时进行转录,我们可以将流的监听时间设置为无限长。通过使用一个音量门限来检测是否有声音,然后进行转录。 安装依赖 确保安装必要的库: pip install torch torchaudio openai-whisper sounddevice nu…...

Web3 市场暴跌的时候,哪些token跌的少,哪些还涨了? binance 数据爬取及分析
我爬取了 binance 的一千多个币对信息,提取了以 usdt 计价单位的token,然后统计了一下各个 token 的涨跌情况,发现了2个逆势上涨的token,以及一些跌幅比btc,eth少的种类; 跌幅比btc,eth少的种类…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...