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
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jetson Nano刷机可以使用SDK Manager工具进行操作。首先需要下载并安装SDK Manager工具,然后连接Jetson Nano设备到电脑上,打开SDK Manager工具,选择需要安装的JetPack版本,然后按照提示进行操作即可完成刷机过程。刷机过程中需要注意设备连接稳定,避免中断导致刷机失败。 ### 回答2: Jetson Nano是一款小型的AI计算平台,它具有高性能、低功耗和高效率的特点。为了实现更加精确和高速的AI计算,很多人选择刷机,并使用SDK Manager进行开发。以下是关于Jetson Nano刷机SDK Manager的详细指南。 1. 准备工作 在开始刷机之前,需要准备一些工具和材料。首先,您需要购买一块Jetson Nano板子,并下载NVIDIA SDK Manager,这是刷机过程的核心工具。此外,还需要一台电脑和一个USB驱动器,以存储Jetson Nano的映像文件和SDK Manager运行需要的软件。 2. 连接Jetson Nano 在将Jetson Nano连接到电脑之前,您需要确保其与电源适配器和显示器连接,并处于可启动状态。通过一个USB-Type C转USB-A线,将Jetson Nano连接到电脑USB接口上。 3. 启动SDK Manager 打开SDK Manager,选择"刷机"选项,之后SDK Manager将会自动检测连接的设备。如果您的Jetson Nano是第一次链接,必须在检测到设备后,更换它的系统映像。请选择想要安装的映像,SDK Manager将会将映像下载至电脑的某个目录下,然后写到USB驱动器中。 4. 进行刷机 当您的USB驱动器准备就绪后,插到Jetson Nano板子上,然后按下它的开机按钮,此时将会开始进入到L4T(Linux for Tegra)启动过程。也可能会遇到其他情况,例如SD卡被损坏或板子出现硬件问题,请自行查找解决方法。 5. 进行设置 安装完成后,您需要进行一些初始化设置。包括注册帐号、SSH设置、Wi-Fi网络连接等。这些设置将确保Jetson Nano能够连接到互联网,并在开发计算机上与您的IDE程序进行通信。 总之,Jetson Nano刷机应该只花费您大约半个小时的时间,其步骤并不难,只须按照提示进行即可。 刷机完成后,您就可以开始开发您的AI应用程序了。 ### 回答3: Jetson Nano是一款小型且功能强大的开发板,可以支持AI和深度学习的开发和运行。在使用Jetson Nano进行开发时,我们需要在其上安装特定的操作系统和软件。SDKmanager是一款用于Jetson Nano的刷机软件,可以用于快速方便地刷机并安装所需的软件和驱动程序。 首先,我们需要准备一些工具和材料。我们需要一台PC或笔记本电脑,并确保其与Jetson Nano连接,同时需要一张官方的SD卡,并用官方提供的“Etcher”软件将操作系统焊接到SD卡上。接下来,我们需要安装SDKmanager,该软件可以从NVIDIA官方网站上下载。一旦安装完成,我们需要打开该软件并在其中输入Jetson Nano的设备ID,该ID可以在Jetson Nano中找到。 在填写设备ID后,我们需要选择所需软件和驱动程序,并选择安装程序所需的版本。该软件将自动下载所选软件和驱动程序,然后开始为Jetson Nano进行刷机和安装。这个过程可能需要一些时间,取决于您所选择的软件和驱动程序。 如果您在安装期间遇到任何问题,则可以查看SDKmanager提供的日志文件来解决问题。一旦安装完成,我们可以打开Jetson Nano并开始开发和运行AI和深度学习模型。 总而言之,使用SDKmanager可以轻松快捷地为Jetson Nano刷机并安装所需的软件和驱动程序,为您的AI和深度学习开发提供便利。但是,在安装过程中可能会遇到一些问题,因此您需要耐心地解决它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值