Jetson Orin NX上手使用(Linux系统的配置&Jetpack的烧录&镜像的备份恢复)

本文详细记录了JetsonOrinNX在缺少emmc情况下,如何使用外部NVMeSSD,以及遇到SDKmanager不支持设备、Jetpack刷机问题的解决过程。作者通过手动设置和网络连接方式成功刷入Jetpack,并分享了Linux驱动包的安装步骤以及镜像备份和恢复的探索,强调了OrinNX设备备份恢复的特殊性。
摘要由CSDN通过智能技术生成

长文预警 本篇为完整过程记录 有特定需求可以跳转对应位置查看
先介绍手上拿到的orin nx模块:Jetson Orin NX 16GB
100TOPS的算力听起来顶呱呱
摸过一些jetson系列套件的我拿到手自信开搞……然后就自闭了
他好像跟以前的不是一个路子啊(以前摸过的有nano nx tx1 tx2) 遂上网搜索 好哎 没一个递纸的
OK 没事 必要的时候我会出手

Step1 确认orin nx基本情况

首先第一个问题是 它没有emmc……没有emmc……emmc(万恶之源——没有emmc)
查了一下 官方表示Supports external NVMe 那就找个能接nvme ssd的nx底板来用下吧 正好手里还有个之前用在nx上的闲置ssd
使用Linux系统PC操作应该不用讲吧

Step2 尝试刷jetpack

——————————2023.03 这是第一次尝试 不想看废话可以往下看2023.05的最新操作 本帖纯属记录用———————————
自信美女打开SDKmanager又傻眼了 这里面device选项没有orin nx啊只有agx orin
(缓缓打出一串问号?)
好吧 英伟达官网走一波
首先是老朋友jetpack archive页面——https://developer.nvidia.com/embedded/jetpack-archive
在这里插入图片描述
这里应该注意到的是jetpack版本5.0及以上的才有提到支持orin相关的产品(5.0以下不用看了 因为我看过了)
此处我选择jetpack5.1进行试验
在这里插入图片描述
按理来说我应该像往常一样在这里使用SDKmanager 但是前面也提到了实在是没有orin nx的选项 那么说到底 就没有办法使用SDKmanager来刷jetpack从而使用orin nx
在这里插入图片描述
文档中提到的SDKmanager支持的设备也确实不包括orin nx
——————————————————————我是分割线————————————————————
23.04.27 今天被客户问到orin nx jetpack烧录的问题 看了一下jetpack开始支持orin nx和orin nano了
在这里插入图片描述
后面有空会做一下尝试
———————————————我是分割线—————Jetpack烧录方法看这里————————————
23.05.23 是的 时隔一个月我又回来了 我终于知道为什么我用不了sdkmanager刷机了 先让我痛哭5秒钟呜呜呜呜呜
说回正题 在发现官方jetpack开始支持orin nx之后,我觉得我又可以了,但我第一步接入PC识别orin nx设备就失败了,如图,无法在sdkmanager中识别到设备(这里有可能跟底板有关系 但是不好确认 我前前后后还是使用过挺多款底板的)
在这里插入图片描述
于是在官方论坛发了帖子提问,有需要的朋友也可以看看有没有帮助:
在nvidia forum提问的帖子
其实在sdkmanager里第一步识别失败还不是最难受的,此时我使用lsusb是可以在PC端看到这个设备的,那按理来说我在sdkmanager里先手动选择设备,后面在连接着的情况下把相关文件刷进orin就可以了,但现实一定是残酷的,在orin刷到一半开机的时候,usb-typec口就会直接断开连接导致除了skip之后退出别无选择,也就是我根本没办法成功刷进去
*此处跳过我的多次尝试步骤,意识到自己废话太多了
一个月后的今天补充这一段是因为,我终于知道他识别不到不是我的问题,是orin本身的问题
那么怎么解决无法通过usb与网线识别的问题呢,我的解决方法如下:
首先最好还是PC要能识别到orin nx的设备,orin nx设备记得先短接REC和GND进入rec模式然后再连接PC、上电,前面设备的选择还有配置都可以通过手动(第一次弹窗时选择manual setup、输入要设置的用户名与密码、选择存储介质-我用的是nvme)的方式通过,然后进行以下步骤
1.sdkmanager刷机进行到一半时orin nx会开机,然后PC端会出现第二次弹窗,事先接好显示屏与键鼠
2.orin nx成功进入桌面后,连接wifi或网线,使其与PC处于同一局域网(此时usb连接可断开 无所谓)
3.orin nx端使用ip a指令查看分配到的ip地址,输入到第二次弹窗对应ip地址处,然后install
正常情况下就可以成功刷进jetpack了

在这里插入图片描述

Step3 尝试刷Linux驱动包

————————2023.03第一次尝试,如果只需要配置linux系统,想自己下载其他组件可以看这里——————————

按这么说的话 我好像就只能尝试这个法子了 先说明刷linux驱动包是不包括CUDA这些的 可能需要另行操作 同时对应的系统是Ubuntu20.04
在这里插入图片描述
jetpack5.1对应Linux驱动版本为35.2.1——https://developer.nvidia.com/embedded/jetson-linux-r3521
在这里插入图片描述
这里也提到这个版本是支持我现在使用的这款Jetson Orin NX 16GB的 那就看看guide里写的操作方式吧——https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/index.html
在这里插入图片描述
文档一上来就是quick start 那当然是先看这个部分了 同时这里也提到就是说明配置Linux系统的地方 接下来只要按这页文档内的内容进行操作即可
大致步骤如下:
1.下载对应的tbz2包——https://developer.nvidia.com/embedded/jetson-linux-r3521在这里插入图片描述
在这里插入图片描述
注意是下载在PC端

2.对下载的驱动进行解压配置 按指令操作即可
在这里插入图片描述

3.将orin nx通过micro usb接口接入PC(这里是什么接口取决于使用的底板 我使用的是Xavier NX的底板) 然后接上键鼠显示屏网线 不上电
PS:此处orin nx记得在底板上接上nvme接口的ssd 尝试过不接上 刷机时索引不到/nvme0n1后失败

4.以recover模式接入PC 此处方法众多 同样也取决于使用的底板 我使用的底板是通过短接REC和GND进入recover模式 此处短接后上电

5.确认是否以recover模式接入PC
在这里插入图片描述
PC端lsusb查看 对应编号为7323即成功

6.将驱动刷到Jetson上
在这里插入图片描述
根据指令操作即可

7.完成操作 开始在Orin nx上使用Linux
在这里插入图片描述

Step4 尝试镜像的备份恢复

————————————————2023.06.21 嘻嘻 我大冤种又来了————————————————
dbq我的写作风格是有点太活泼了毕竟搞到现在我精神已经有点不正常了
在我历尽艰难险阻配置完系统搞完自己的东西准备备份的时候,难题又来了,这里先吐槽英伟达,次次去论坛问都得不到正面回复,我去问别人生产底板的厂子都懂的比他们多。
这里就不附英伟达官方的解答帖子了,因为我反正是没看懂,只找到一点突破线索
首先说明:orin没有官方的备份烧录方法提供!以下为自行摸索内容
上链接:DeveloperGuide
在这里插入图片描述
官方手册的这个部分有提到如何克隆系统,我们先来看看
在这里插入图片描述
OK,这个方法行不通,别问,问就是我试过了,这是给带emmc的板子的方法,咱一开始就说了它没有emmc
继续往下看,下面这个行得通
在这里插入图片描述
我们找到刷机环境对应路径下的这个txt文件,里面有提到相关backup和restore的步骤
在这里插入图片描述
注意:在进行备份恢复前,还需要修改一下相关sh文件
在这里插入图片描述
如图,我们需要修改对应路径下这两个文件,将文件中的mmcblk0全部替换为nvme0n1

具体备份操作步骤如下:
1.短接底板REC与GND,进入rec模式,连接PC后上电
2.进入原刷机环境,在/Linux_for_Tegra路径下打开终端,我们需要执行以下语句来进行backup

sudo ./tools/backup_restore/l4t_backup_restore.sh -b <board-name>

此处boardname是需要在/Linux_for_Tegra路径下能找到对应conf文件的,我这里底板和核心板的搭配型号是p3768和p3767,路径下对应存在p3768-0000+p3767-0000.conf文件
在这里插入图片描述
因此最后我执行的语句为:

sudo ./tools/backup_restore/l4t_backup_restore.sh -b p3768-0000+p3767-0000

3.等待备份,备份过程中会显示进程,备份成功终端会有相应输出,完成后/Linux_for_Tegra/tools/backup_restore路径下会新增一个images文件夹

备份就完成啦,然后讲烧录,按理来说备份烧录都是一个套路,但,配环境从来没有按理来说
具体恢复操作步骤如下:
1.如果是要恢复到全新设备,需要对新设备进行刷机……(没错 我就是栽在这一步了 我备份当然是为了恢复到新设备啊结果不能直接恢复 我哭)
刷机步骤麻烦各位往前翻翻,是这样了,全新设备我尝试了是无法直接恢复自己备份的镜像的
2.当然了前面不管刷到什么程度其实关系都不大,只要可以开机进入熟悉的ubuntu界面了都可以,基本上能开机就可以skip后面的弹窗接着断电开始恢复自己的镜像了,然后就是老操作:
短接底板REC与GND,进入rec模式,连接PC后上电
3.进入原刷机环境,在/Linux_for_Tegra路径下打开终端,我们需要执行以下语句来进行restore

sudo ./tools/backup_restore/l4t_backup_restore.sh -r <board-name>

boardname没换底板和核心板类型的话,当然还是一样,最后我执行的语句为:

sudo ./tools/backup_restore/l4t_backup_restore.sh -r p3768-0000+p3767-0000

4.等待恢复,恢复过程中会显示进程,恢复成功终端会有相应输出,提示需要重启jetson设备,然后就正常给orin上电接显示屏,成功的话就会进入之前备份的环境啦

写在最后:讲道理不太理解英伟达为什么推出了orin却又什么相关资料都没有完善,但从我这段时间搜索来看使用的人也不算少,大家咋都不分享配置经验呢,搞开源的东西果然还是需要大家共同建设啊

  • 23
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
对于 Jetson Orin NX,您可以使用 NVIDIA 提供的 JetPack SDK 来进行内核编译。JetPack SDK 是一个包含了操作系统、驱动程序和工具的软件包,用于支持 NVIDIA Jetson 系列的开发板。 以下是编译内核的一般步骤: 1. 下载并安装 JetPack SDK:从 NVIDIA 官方网站上下载适用于 Jetson Orin NX 的最新版本的 JetPack SDK,并按照官方文档进行安装。 2. 准备编译环境:在 Jetson Orin NX 上安装所需的编译工具链和依赖项。可以通过 JetPack SDK 的安装程序自动安装这些工具。 3. 获取 Linux 内核源代码:使用 JetPack SDK 中提供的工具从 NVIDIA 的源代码仓库中获取适用于 Jetson Orin NXLinux 内核源代码。 4. 配置内核:进入内核源代码目录,并执行适当的命令来配置内核。您可以使用`make menuconfig`命令进行交互式配置,或者使用已有的配置文件。 5. 编译内核:执行`make`命令以开始内核编译过程。这可能需要一段时间,具体取决于系统配置和编译选项。 6. 安装内核映像:将编译好的内核映像和相应的模块复制到 Jetson Orin NX 上,并更新引导加载程序以使用新的内核。 请注意,编译内核可能需要一定的时间和系统资源,因此请确保您的系统具有足够的空间和性能来执行这些操作。此外,操作系统和驱动程序的更新可能会带来一些风险,请在进行任何更改之前备份重要数据,并仔细阅读官方文档和教程。
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值