2025年了,你还不会配置Jetson Orin NX嘛?
2025年了,你还不会配置Jetson Orin NX嘛?
我的设备为:Jetson Orin NX 16G + JetPack6.1+达妙科技载板
帅气的Jetson Orin NX拿到手了,都2025年了你还不会配置嘛???让我一篇文章带你不糟蹋这一美丽的艺术品!

Cuda、CuDNN、TensorRT配置
首先我们拿出一块刚刚烧录完的崭新板子,具体烧录的教程可以参考我的这一篇博客:Jetson Orin NX烧录+设备树更改?看这一篇就够了! - SkyXZ - 博客园接着我们输入 nvcc -V会发现终端提示如下:bash: nvcc: command not found,有些教程会跟你说只要在bashrc中输入环境命令就好了,但是其实你就是没有安装任何的cuda,因为接下来你运行以下的命令会发现根本找不到nvcc!
jetson@ubuntu:/usr/local$ ls -l /usr/local/cuda-12.6/bin/nvcc
ls: cannot access '/usr/local/cuda-12.6/bin/nvcc': No such file or directory
为了进一步探究我们到底缺少了什么我们可以先安装Jetson-stats来查看我们当前设备的状态,我们输入以下命令
sudo apt install python3-pip
sudo -H pip3 install -U jetson-stats
sudo jtop
等待安装完成之后并输入jtop之后有以下内容即代表安装完成

接着我们继续输入以下命令便能看到我们当前设备的信息(因为不排除Nvidia的Manager烧录有Bug)
sudo jetson_release #查看当前的设备的信息

会发现我们的新烧录好的设备里面没有CUDA和TensorRT,那么这时候我们便需要进一步安装JetPack了,JetPack 是 Nvidia为 Jetson系列开发板开发的一款软件开发包里面包含了常见的所有工具,并且在安装 JetPack的时候,会自动的帮你匹配所需CUDA、cuDNN、TensorRT等,我们在终端中输入以下命令:
sudo apt update
sudo apt install nvidia-jetpack -y
等个几分钟便能全部安装好,如果下载速度缓慢是网络问题,这个问题自行解决。接着我们继续输入一开始的命令便能发现我们需要的cuda和tensorrt都安装完成了
sudo jetson_release #查看当前的设备的信息

然后我们打开bashrc,把以下内容添加进~/.bashrc即可完成cuda的配置
sudo gedit ~/.bashrc #进入bashrc并在最后添加即可
export CUBA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH
source ~/.bashrc
source之后我们再输入nvcc -V会发现CUDA会有输出了

接着我们需要来处理CuDNN,虽然我们看到我们已经安装了cudNN但是我们还需要将对应的头文件、库文件放到cuda目录,cuDNN的头文件在:/usr/include,库文件位于:/usr/lib/aarch64-linux-gnu,运行以下命令即可:
cd /usr/include && sudo cp cudnn* /usr/local/cuda/include #复制头文件
cd /usr/lib/aarch64-linux-gnu && sudo cp libcudnn* /usr/local/cuda/lib64 #复制库文件
# 修改文件权限
sudo chmod 777 /usr/local/cuda/include/cudnn*
sudo chmod 777 /usr/local/cuda/lib64/libcudnn*
然后我们运行以下命令对cuDNN进行验证
sudo cp -r /usr/src/cudnn_samples_v9/ ~/.
cd ~/cudnn_samples_v9/mnistCUDNN
sudo chmod 777 ~/cudnn_samples_v9
sudo make clean && sudo make
./mnistCUDNN
如果出现如下内容即代表安装成功,配置没问题

OpenCV with CUDA
还记得我们上面查看板子信息的时候还有一个红色的No嘛,这个代表着我们板子上的OpenCV目前还不支持CUDA 加速,无法充分利用我们Orin NX强大的GPU,接着让我们开始配置这一项

首先我们先卸载默认OpenCV
sudo apt purge libopencv* -y
sudo apt autoremove
sudo apt update
sudo apt upgrade
然后我们安装我们需要的一些依赖
- Generic tools
sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall
- Image I/O libs
sudo apt install libjpeg-dev libpng-dev libtiff-dev
- Video/Audio Libs - FFMPEG, GSTREAMER, x264 and so on
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libavresample-dev
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev
sudo apt install libfaac-dev libmp3lame-dev libvorbis-dev
- OpenCore - Adaptive Multi Rate Narrow Band(AMRNB) and Wide Band(AMRWB) speech codec
sudo apt install libopencore-amrnb-dev libopencore-amrwb-dev
- Cameras programming interface libs
sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd ~
如果系统换源之后提示说E: Unable to locate package libdc1394-25-dev>,那么需要执行以下步骤来启用完整的软件源(包括 universe 和 multiverse 仓库),完成以下步骤之后即可进行下载了
sudo nano /etc/apt/sources.list
#将以下内容添加进去之后按 Ctrl + O,然后按 Enter 保存,接着按 Ctrl + X 退出
deb http://ports.ubuntu.com/ubuntu-ports focal main universe multiverse restricted
deb http://ports.ubuntu.com/ubuntu-ports focal-updates main universe multiverse restricted
deb http://ports.ubuntu.com/ubuntu-ports focal-security main universe multiverse restricted
sudo apt-get update
- GTK lib for the graphical user functionalites coming from OpenCV highghui module
sudo apt-get install libgtk-3-dev
- Python libraries for python3
sudo apt-get install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt install python3-testresources
- Parallelism library C++ for CPU
sudo apt-get install libtbb-dev
- Optimization libraries for OpenCV
sudo apt-get install libatlas-base-dev gfortran
- Optional libraries
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
接着我们下载OpenCV并解压
cd ~/Downloads #Cuda12需要较新版本的OpenCV
wget -O opencv.zip https://github.com/opencv/opencv/archive/refs/tags/4.10.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.10.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
接着进行Cmake一下
cd opencv-4.10.0/
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_opencv_python2=1 -D BUILD_opencv_python3=1 -D WITH_FFMPEG=1 \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.6 \ #修改为自己的cuda路径
-D WITH_TBB=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 \
-D WITH_CUDA=ON -D BUILD_opencv_cudacodec=OFF -D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_BIN=8.7 \
-D WITH_V4L=ON -D WITH_QT=OFF -D WITH_OPENGL=ON -D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_PC_FILE_NAME=opencv.pc \
-D OPENCV_ENABLE_NONFREE=ON \
#修改为自己的opencv_contrib下载路径
-D OPENCV_EXTRA_MODULES_PATH=/home/jetson/Downloads/opencv_contrib-4.10.0/modules \
-D INSTALL_PYTHON_EXAMPLES=OFF -D INSTALL_C_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF ..
过程中可能会要下载一些文件,我把这些文件最新的仓库附在下面,便于大家直接下载,然后复制到Downloads/opencv-4.6.0/build/downloads/{对应的文件夹}文件夹没有的可以自己创建
https://github.com/WeChatCV/opencv_3rdparty.git #wechat_qrcode
当Cmake完成之后我们往上翻打印输出的Info有如下输出即代表Cmake成功

接着我们开始编译
nproc #查看设备核心数
make -j$(nproc) #-j4编译时间约为 1~3 小时
sudo make install #安装
编译完成不报错即代表编译完成

安装过程不报错即为安装完成

最后我们再次执行以下jtop验证以下是否安装完成,出现如下现象则代表成功

至此我们的安装全部结束啦!!!
2025年了,你还不会配置Jetson Orin NX嘛?的更多相关文章
- 在Linux(Ubuntu/openSUSE/CentOS)下配置ASP.NET(Apache + Mono)
[题外话] 闲的无聊竟然想尝试测试自己做的项目在不同操作系统上的性能表现,所以决定试试在Linux上部署Apache和Mono的环境.由于平时很少接触Linux,所以从网上找了几篇文章(附在相关链接中 ...
- [转] vim自定义配置 和 在ubnetu中安装vim
Ubuntu 12.04安装vim和配置 问题: ubuntu默认没有安装vim,出现: jyg@ubuntu:~$ vim test.cThe program 'vim' can be foun ...
- Hibernate 基础配置及常用功能(三)
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...
- Spring MVC错误页面配置
当前SpringMVC非常流行,在大多数情况,我们都需要自定义一些错误页面(例如:401, 402, 403, 500...),以便更友好的提示.对于spring mvc,这些当然是支持自定义的,sp ...
- 使用 Fluent API 配置/映射属性和类型(摘自微软Data Access and Storage)
使用 Fluent API 配置/映射属性和类型 使用实体框架 Code First 时,默认行为是使用一组 EF 中内嵌的约定将 POCO 类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体 ...
- 为docker配置固定ip
docker默认使用bridge模式,通过网桥连接到宿主机,而容器内部的ip则从网桥所在的ip段取未用的ip.这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端 ...
- ASP.NET 5 入门 (2) – 自定义配置
ASP.NET 5 入门 (2) – 自定义配置 ASP.NET 5 理解和入门 建立和开发ASP.NET 5 项目 初步理解ASP.NET5的配置 正如我的第一篇文章ASP.NET 5 (vNext ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程
UEditor是百度开发团队奉献的一款很不错的在线编辑器.在百度自己很多产品上都有应用,本文主要是该编辑器的配置教程. 1.下载UEditor,当前最新版本是1.3.6.这里下载的.net版本,选择U ...
- vim IDE平台-打造属于自己的配置
vim IDE平台-打造属于自己的配置 一.前言 目前工作环境基本以Linux为主,自然用到VIM也很多,很早就对如何提高VIM的使用效率有所研究,限于时间关系,也没做个系统记录和资料积累,时间久了又 ...
- spring第一课,beans配置(上)
1.通过property配置bean <!-- 配置一个 bean --> <bean id="helloWorld" class="com.atgui ...
随机推荐
- 安装了多个python版本指定pip安装目录
#检查库安装的目录import os import numpy as np import pandas as pd print(os.path.dirname(np.__file__)) print( ...
- 什么是AOP面向切面编程?怎么简单理解?
本文原文地址:什么是AOP面向切面编程?怎么简单理解? 什么是AOP面向切面编程 面向切面编程(AOP)通过将横切关注点(cross-cutting concerns)分离出来,提供了一种增强代码模块 ...
- 9-4 vector对象是如何增长的
.size():容器中有多少元素 .capacity():不重新分配内存时,可容纳多少元素 .reserve(n):分配至少能容纳n个元素的内存 n>capacity时会分配使得capacity ...
- jmeter如何产生批量数据?
在使用jmeter时,若需要产生批量数据,可以通过连接数据库--执行相关sql进行操作,例如添加20条数据 步骤: 1.添加jdbc 数据库配置信息 2.添加循环控制器(循环次数20) 3.循环控制器 ...
- IPC-7093A-CN 中文 2020底部端子元器件(BTCs)设计和组装工艺的实施
IPC-7093A 标准为实施底部端子元器件(BTCs)提供了基本的设计和组装指南.具体而言,IPC-7093A 提供了与 BTCs 相关的关键设计.材料.组装.检查.维修.质量和可靠性问题的指南. ...
- 零基础入门gRPC:从 0 实现一个Hello World
在之前讲解 Nacos 注册中心的过程中,我曾简要提到过 gRPC,主要是因为 Nacos 的最新版已经采用了 gRPC 作为其核心通信协议.这一变化带来了显著的性能优化,尤其在心跳检测.健康检查等接 ...
- MySQL 8.0 OCP 最新中文考试题库(如需完整版请联系作者)
大家好!今天要给大家带来的是由Oracle公司研发的MySQL 8.0认证考试试题本次试题是全网最全面的试题,总共包含123道.试题正确率在95%以上.对于在今年报考MySQL8.0 中文版本的考生有 ...
- apisix启动报错undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
报错内容 2024/08/06 16:56:13 [error] 154236#154236: *7039 [lua] plugin.lua:110: load_plugin(): failed to ...
- (Redis基础教程之五)如何在Redis中操作字符串
如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...
- 推荐给初级Java程序员的3本进阶书
ImportNew 注: 原作者在这篇文章中介绍3本不错的技术书籍.作者认为这些书籍对新手或者学生而言尤其有帮助.通过一些基础性的教程入门后,我们可以使用Java做基础性的编程.然而,当我们需要从初级 ...