NVIDIA Jetson Xavier NX 刷机记录(使用SDK Manager方法,并重新安装opencv)

本文章仅适用于使用 SDK Manager 对 NVIDIA Jetson 系列的emmc产品进行刷机。

准备工作

  1. 一台装有 Ubuntu16.04 或 18.04 的主机(虚拟机也行),剩余空间至少30G,因为后面需要下载 CUDA 等安装包到主机上,空间太小会报警告;
  2. 从 NVIDIA 官网下载 SDK Manager,下载地址:SDK Manager | NVIDIA Developer
  3. 一根 usb 数据线连接主机和 jetson;
  4. jetson 上电开机,并连接一个显示屏;

一、开始刷机 

jetson端:

将NX的FC REC引脚和GND引脚短接(二三引脚还是三四引脚都得)让NX进入烧写模式

短接可以使用跳线帽或者杜邦线

然后通过NX的microusb接口连接主机的USB接口,jetson端的步骤就已经完成了

主机端:

开始刷机前需要将你的主机安装上该SDK Manager

sudo apt install ./sdkmanager_2.0.0-11402_amd64.deb   //具体什么版本改成对应的

使用命令启动SDK

sdkmanager

我们等待一会将会看见页面如下所示

直接选择LOGIN登录,该登录需要你的NVIDIA 账号(没有的话自己申请一个),选择登录方式为Developer账户(跳转到NVIDIA网页登录确认)

STEP 01

当你登录成功后就看见这个界面,按这个图片的选择来打√,第一个不用管,第二个是选择你的jetson板子类型,我们是jetson xavier nx就选jetson xacier nx,下面那个红色是表示未检查到板子,这时候需要检查usb线有没有和nx连接到,多拔插几次或者换根数据线,直到下面是绿色为止

第三个JetPack是重中之重,这决定了你的ubuntu、CUDA等版本,根据自己的需求来选择具体的JetPack版本。该对应关系可在英伟达官网查到JetPack Archive | NVIDIA Developer,如多数教程选择的Ubuntu18.04就对应jetpack4.5.1版本

STEP 02

注意!这里我们先只安装Jetpack系统,等将系统迁移到SSD上面后,再进行其他SDK组件的安装(jetson Xavier NX系统自带内存16g不足以安装其他SDK组件)

勾选左下角接收协议后才能点击continue进入下一步下载安装!系统剩余空间如果大于17GB即可继续下载安装jepack系统。如果提醒disk内存不够或还需要xxMB,无需担心(文件下载到主机的路径无需更改,为保证后续组件安装,建议在开始使用SDKmanager前,主机留足40G以上的内存)

STEP 03

接下来就是漫长的等待下载安装界面

当下载完成要刷新目标设备时,SDK Manager 会打开一个对话框。提示会提供有关设备以使其准备就绪以进行闪烁的说明:其中,将启动方式更改为手动,输入并创建 Jetson 的用户名和密码。(后续安装SDK组件过程中选择自动)

STEP04

等待系统烧写完成,时间稍久,Jetson NX会重启,

我们拔掉杜邦线或者跳线帽,如果接上显示屏就会看到ubuntu登录界面,无外接显示屏看进度条和听风扇转速就知道了。(此过程中可能会提醒烧写超时无需紧张继续即可,如果报错可以关掉SDKmanager重新烧录,一般电脑和NX的USB连线全程保持不断开就没问题)开机后连上键鼠,启动ubuntu系统后连接wifi、添加中文输入法、设置快捷键等基本操作。

此时nx的系统烧录就已经完成,但使用 Jetson-stats 来查看信息的时候,会发现cuda、opencv、等应用都没有被安装,这需要我们后续再接在SDK Manager再烧录一次,但在此之前我们需要迁移系统

二、设置SSD为首启动方式(扩容)

1、将SSD格式化

由于官方自带内存仅为16G,厂家一般提供SSD内存条用以扩容。插上内存条SSD后,在NX启动的Ubuntu系统中,打开disks软件,点击右上角菜单,将固态硬盘格式化。无需更改选项,直接格式化。然后点击左下角+号继续分区。

点击加号开始分区,增加16GB的空间作为SWAP交换空间(也可用gparted实现)重命名后创建。

效果如图所示:

2、将root等信息从SD卡复制到SSD:

首先,从git上复制最新rootOnNVMe项目到home目录下(通过U盘拷贝也可以)。

git clone https://github.com/jetsonhacks/rootOnNVMe.git
cd rootOnNVMe

到有该脚本的路径下,执行下面的脚本,将根源文件复制到SSD

./copy-rootfs-ssd.sh

 启动从SSD启动的脚本

./setup-service.sh

等待系统迁移成功,然后重启开机后就会发现内存变为了110G

 三、安装CUDA,CUDNN等组件

接下来开始安装CUDA等其他组件(记得千万要拔掉杜邦线或者跳线帽,USB别拔!),主机继续打开sdk manager。确定jetpack版本号,点击continue进入下一步。

必须保证jetpack版本与刷机的版本一致,否则安装会失败,如果忘记了可通过以下命令查看本机jetpack版本。

sudo apt-cache show nvidia-jetpack`

 在第二个界面取消系统部分的文件下载,选择下载其他SDK

后续步骤和前面的差不多,只要老老实实等待安装完成即可,期间可能会弹出一个要检测nx能不能下载进去的,到时候选择不管检测结果直接安装即可,安装完成后cuda、cudnn等即可安装完成。

启动jtop查看安装信息

sudo jtop

四、重装支持CUDA加速的OpenCV

1、卸载默认OpenCV

由上图可知默认的 OpenCV 版本是不带 CUDA 加速的,无法充分利用 NX 的 GPU 性能,所以需要卸载重装支持CUDA加速的版本,卸载命令如下:

sudo apt purge libOpenCV*
sudo apt autoremove
sudo apt update
2、安装依赖库

 在安装依赖之前建议换源,打开source.list文件,编辑前可以先把原来的内容复制后备份文档。

sudo gedit /etc/apt/sources.list

更换成清华源,也可以更换成阿里源/中科大等常用源,注意jepack5.02对于的是ubuntu20.04版本所以是focal而不是bionic(对应ubuntu18.04)。其中为了安装旧的libpng12需要加入xenial (ubuntu16.04)的源,如果你的ubuntu是18.04的需要换成对应的bionic的源,下面这个是20.04的

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe

 然后安装依赖。

sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran
sudo apt update
sudo apt install -y libjpeg8-dev libjasper-dev libpng-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils
sudo apt install python2-dev python3-dev python-numpy python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

可能会出现问题的是libjasper-dev依赖,通过以下命令解决。

sudo apt install libjasper1 libjasper-dev
 3、下载 OpenCV 和 opencv_contrib 源码

前往官方仓库https://github.com/opencv下载合适版本的OpenCV和opencv_contrib源码,笔者在装机时选择的是4.5.3版本,而安装的jepack系统自带OpenCV版本是4.5.4,不建议使用与jepack自带OpenCV差距过大的版本。

下载解压后可以将两者放在主目录下,将opencv_contrib-4.5.3移动到 OpenCV-4.5.3目录下,打开OpenCV-4.5.3目录新建build文件夹用以编译。

cd opencv-4.5.3
mkdir build
cd build
4、编译和安装 OpenCV 

在cmake编译之前,手动下载cmake过程中缺失的依赖https://files.cnblogs.com/files/arxive/boostdesc_bgm.i%2Cvgg_generated_48.i%E7%AD%89.rar(建议Windows下载解压成zip格式通过u盘拷入,ubuntu系统默认不支持rar格式)

解压后直接拷贝以下文件名的源码,放在opencv_contrib/modules/xfeatures2d/src/ 路径下即可。

boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

然后打开build文件夹,执行的 cmake命令如下:

cmake \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN="7.2" \
-D WITH_cuDNN=ON \
-D OPENCV_DNN_CUDA=ON  \
-D cuDNN_VERSION='8.4' \
-D cuDNN_INCLUDE_DIR='/usr/include/' \
-D CUDA_ARCH_PTX="" \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.3/modules \
-D WITH_GSTREAMER=ON \
-D WITH_LIBV4L=ON  \
-D BUILD_opencv_python3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
..   

其中

CUDA_ARCH_BIN、cuDNN_VERSION的目录版本要和本机对应,OPENCV_EXTRA_MODULES_PATH建议填写opencv_contrib里modules的绝对路径,CMAKE_INSTALL_PREFIX为安装路径。

然后进行编译安装,全开NX的12线程仍然需要编译接近2小时,编译安装完大概需要4小时

sudo make -j12
sudo make install -j12

安装成功后可以通过jtop指令查看,如图所示已安装好支持CUDA加速的OpenCV4.5.3版本

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Nvidia Jetson Xavier NX 刷机的步骤如下: 1. 下载 JetPack SDK,这是 Nvidia 提供的开发套件,包含了系统镜像、驱动程序、SDK 等。 2. 将 Jetson Xavier NX 连接到电脑上,使用 USB 线连接。 3. 进入恢复模式,按住电源按钮,同时按下复位按钮,等待几秒钟后松开复位按钮,此时 Jetson Xavier NX 进入恢复模式。 4. 在电脑上运行 JetPack SDK,选择刷机选项,按照提示进行操作。 5. 等待刷机完成,重新启动 Jetson Xavier NX。 注意事项: 1. 刷机过程中不要断开电源或 USB 连接。 2. 刷机前备份重要数据,刷机会清空所有数据。 3. 刷机前确认电脑上已安装好 JetPack SDK。 4. 刷机前确认 Jetson Xavier NX 进入恢复模式。 ### 回答2: NVIDIA Jetson Xavier NX 是一种高性能嵌入式计算机,它可以针对人工智能、机器学习和深度学习进行优化。如果我们想要定制该计算机系统,或更改操作系统,我们就需要进行刷机。 首先,我们需要下载所需的固件。官方提供了很多版本的系统供下载使用,我们需要选择最适合我们需求的版本。在下载完毕后,我们需要准备一个SD卡,并安装软件(Win32 Disk Imager)用于将系统镜像烧录到SD卡中,该软件可以从官网下载。 接下来,我们需要在启动时进入系统设置模式(按住电源按钮,同时按下重置按钮,松开重置按钮后再松开电源按钮),然后连接启动设备。启动设备可以是一个USB设备或者一个SD卡,使计算机能够识别新的系统。 然后,我们需要输入以下命令进入可引导设备: ``` # For USB device: $ reboot usb # For SD Card: $ reboot recovery ``` 一旦我们进入了引导设备,我们就可以开始刷机过程。 使用以下命令可以查看设备列表: ``` # 查看设备列表 $ lsblk # 显示格式化设备 $ sudo fdisk -l ``` 使用以下命令可以使用该镜像文件在SD卡上设置新系统: ``` $ sudo dd if=jetpack_4.5.1_xavier_nx_sd_card.zip of=/dev/mmcblk0 bs=1M status=progress ``` 注意:该命令将删除SD卡上的所有数据。如果我们希望保留现有数据,则可以使用GUI应用程序Etcher。 在完成SD卡设置后,我们将启动计算机,然后进入恢复模式。在此处,我们可以使用以下命令安装新的系统: ``` $ sudo chmod +x ./flash.sh $ sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1 ``` 该命令将卸载并格式化应用存储器,并在其中安装新的系统。 完成安装后,我们可以重新启动计算机。此时,我们已经完成了nvidia jetson xavier nx刷机过程。 ### 回答3: NVIDIA Jetson Xavier NX是一款非常强大的嵌入式计算机,可以用于各种AI、机器人和自动化控制应用。它内置了基于ARM架构的六核CPU和512核Volta GPU,同时还拥有8GB LPDDR4x内存和16GB eMMC存储空间。然而,当我们用该设备进行AI开发时,可能需要刷机来安装新的操作系统或驱动程序。下面是关于NVIDIA Jetson Xavier NX刷机的详细介绍。 首先,为了避免误操作导致设备变砖,我们需要备份当前系统的镜像。可以使用NVIDIA提供的工具JetPack进行备份。在备份完成后,我们可以下载新的系统包,并使用JetPack进行安装。 在执行刷机操作之前,需要使用Micro-USB电缆将Jetson Xavier NX与PC连接,并进入bootloader模式。在此模式下,设备可以通过USB进行刷机,并且没有操作系统可以干扰刷机过程。连接好设备后,我们可以使用JetPack中的“Flash OS”选项。 刷机过程可能需要一段时间,具体时长取决于设备所需的软件包大小和PC的性能。在刷机过程中,JetPack会在设备上安装各种软件包、驱动和库文件,需要有足够的存储容量和内存空间。为了提升效率和减少出错率,我们应该尽量在稳定的网络环境下进行刷机,并选择可靠的软件源。 刷机完成后,我们需要重新启动设备,并检查新的操作系统是否正常运行。此时可以进行一些简单的操作测试,例如运行NVIDIA自带的示例程序或自己编写的简单的Python脚本。如有必要,可以安装额外的软件包和库文件,以满足特定的应用需求。 总之,刷机是在使用NVIDIA Jetson Xavier NX进行AI开发时不可避免的一步操作,它帮助我们安装新的系统,修复已有的故障,从而有效地提高开发效率和开发质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值