Jetson AGX ORIN 初始化配置Anaconda带CUDA的OpenCV

Jetson AGX ORIN 初始化&配置CUDA&Anaconda&带CUDA的OpenCV

文章目录

  • Jetson AGX ORIN 初始化&配置CUDA&Anaconda&带CUDA的OpenCV
    • 1. Jetson AGX ORIN 初始化
    • 2. Jetson AGX ORIN 配置 Anaconda
    • 3. 安装带CUDA的OpenCV

1. Jetson AGX ORIN 初始化

可以参考这个链接,基本不会报错:

Jetson AGX ORIN硬件初始化和环境部署

如果遇到下面的 **Err: **, 建议换一个可以连接 VPNWIFI 或者连接手机热点。

Do you want to continue? [Y/n] y
Get:1 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-dev arm64 2.4.107-8ubuntu1~20.04.2 [135 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-radeon1 arm64 2.4.107-8ubuntu1~20.04.2 [18.7 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-nouveau2 arm64 2.4.107-8ubuntu1~20.04.2 [15.9 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-amdgpu1 arm64 2.4.107-8ubuntu1~20.04.2 [17.9 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-freedreno1 arm64 2.4.107-8ubuntu1~20.04.2 [17.9 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-tegra0 arm64 2.4.107-8ubuntu1~20.04.2 [6,212 B]
Get:7 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm-etnaviv1 arm64 2.4.107-8ubuntu1~20.04.2 [11.3 kB]
Err:8 http://ports.ubuntu.com/ubuntu-ports focal/main arm64 libpciaccess-dev arm64 0.16-0ubuntu1                                               
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) Could not connect to ports.ubuntu.com:80 (185.125.190.36), connection timed out Could not connect to ports.ubuntu.com:80 (185.125.190.39), connection timed out [IP: 185.125.190.39 80]
Ign:9 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libdrm2 arm64 2.4.107-8ubuntu1~20.04.2
Err:10 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libxtables12 arm64 1.8.4-3ubuntu2.1
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:11 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 iptables arm64 1.8.4-3ubuntu2.1
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:12 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libip6tc2 arm64 1.8.4-3ubuntu2.1
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:13 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libip4tc2 arm64 1.8.4-3ubuntu2.1
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:14 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 mount arm64 2.34-0.1ubuntu9.4
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:15 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 systemd arm64 245.4-4ubuntu3.23
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:16 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libsystemd0 arm64 245.4-4ubuntu3.23
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:17 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libapt-pkg6.0 arm64 2.0.10
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]
Err:18 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 apt arm64 2.0.10
  Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::16). - connect (101: Network is unreachable) Cannot initiate the connection to ports.ubuntu.com:80 (2620:2d:4000:1::19). - connect (101: Network is unreachable) [IP: 185.125.190.39 80]

注意: 安装 jtop 的时候,有的 ORIN 需要重启之后,再输入 jtop 才能生效。

另外编写环境变量的时候,vim 指令用不习惯的同学可以使用 gedit ~/.bashrc

安装输入法可以安装搜狗输入法,搜狗有针对 arm64 的输入法安装包,相关的安装命令可以参考链接:

全网最准确的Ubuntu 20.04 安装搜狗输入法的步骤

中英文切换为 Ctrl + Space

2. Jetson AGX ORIN 配置 Anaconda

其实上面的网址里面就写有该如何安装 aarch64 下面的 Anaconda,在此再写一下具体的操作步骤,并附带一个下载链接:

首先是 aarch64 版本的 Anaconda 的下载网址:
https://repo.anaconda.com/archive/?C=M&O=A

选择一个版本是:Anaconda3-2024.02-1-Linux-aarch64.sh,将下载的shell文件拷贝至home文件夹,打开终端,输入bash Anacondxx-Linux-aarch64.sh
yes 确定安装,然后确认安装的路径,一般直接回车安装在默认的 /home/名字/anaconda3 这个目录下,接着启动环境变量:

source ~/.bashrc

这时候会发现出现了 (base)

虚拟环境的操作命令,安装库等就跟 amd64Ubuntu 以及 windows 的一样:

# 创建虚拟环境
conda create -n py39 python=3.9
# 激活虚拟环境
conda activate py39
# 退出当前虚拟环境
conda deactivate

3. 安装带CUDA的OpenCV

首先参考这个链接:

Jetson Orin Nano安装OpenCV带cuda加速版本的全过程

在下载依赖包的时候一定要保证网络通畅。
在运行下面的命令时遇到的两个问题:

sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran
sudo apt update
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install -y libjpeg8-dev libjasper-dev libpng12-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 python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

问题1:E: Package ‘libpng12-dev’ has no installation candidate、

解决方法:参考这个链接:ubuntu E: Package ‘libpng12-dev’ has no installation candidate
换个包安装即可:

sudo apt install libpng-dev

问题2:E: Unable to locate package libjasper-dev

解决方法:参考这个链接:Ubuntu18.04安装OpenCV依赖包 libjasper-dev 无法安装的问题
怎么说呢,添加源这个东西可能有帮助,但是感觉帮助不会很大,不一定有用。

如果不是 Orin 的设备,如果处理器是 amd64 的,存在安装不了 libjasper-dev 的问题,可以查看这个链接:Ubuntu22.04安装opencv依赖包libjasper-dev出现unable to locate libjasper-dev的终极解决办法
温馨提示:http://security.ubuntu.com/ubuntu 这个链接里面是找不到 binary-arm64 这个包的,只有 amd64 版本的,因此这个链接并不能解决 Orin 上面 安装不了 libjasper-dev 的问题。

如果以上链接无法解决问题,建议直接去网站下载安装包。https://pkgs.org/
进去之后搜索 libjasper,找到 aarch64 对应的页面,如下图所示:

在这里插入图片描述翻到下面找到 Install Howto ,先尝试一下看看命令行是否可以直接安装,如果不行则下载 Download 下面的 Package

Package 有三个,分别的 Binary Package、Source Package、MirrorMirror 意思是镜像,这里就不解释了。

  • Binary Package
    • 编译好的可以直接使用的文件。
    • 一般包的命名里面包含了版本号、适应平台、适应的硬件类型等信息。例如:libjasper-devel-2.0.33-alt2.aarch64.rpm
    • 二进制的包里面会存在可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为 bin 的目录。(当然,这次的 libjasper 里面则是没有的 )
  • Source Package
    • 还没有编译好的源代码,需要用户自行编译。
    • 源码的压缩包命名就是软件的版本号。例如:libjasper-2.0.33-alt2.src.rpm
    • 源代码包里面的文件往往含有种种源代码文件,头文件 .h,C代码源文件 .c,C++代码源文件 .cpp / .cc 等。

在这里插入图片描述
Binary Package、Source Package 都下载了,然后解压之后看了里面的文件。

Source Package

如果要自己编译的话,需要注意,这个源代码编译需要额外的一些依赖包才能成功编译,依赖包如下所示:

BuildRequires: cmake
BuildRequires: libjpeg-devel
BuildRequires: libGL-devel libXext-devel libXi-devel libXmu-devel libglut-devel

而这些依赖包在 Jetson AGX ORIN 设备上面都无法通过 sudo apt install 进行下载(是的,没看错,一个都不行),均显示无法找到对应的包,因此这个方式直接放弃,不过有人如果有需要自己编译的,可以自行在网站下载这些依赖包的源代码,进行编译之后再重新编译 libjasperSource Package。不过这过程中间会遇到啥问题,我也不知道,因为我放弃这个方法了。

Binary Package

这个方法我试过了,只能说真的好用。

在这里插入图片描述
因为是已经编译好的文件,所以直接拿来用就行,具体怎么用呢,就是直接把文件复制到对应的目录就行(基本上大部分的 Binary Package 的包都可以使用这个方法)

以这次的 libjasper 为例,打开下载好的 Binary Package 包,即 libjasper-devel-2.0.33-alt2.aarch64.rpm。解压之后可以看到文件夹的分布路径如下:

  • usr
    • include
      • jasper
        • jas_*.h(一共 20.h 头文件)
    • lib64
      • pkgconfig
        • jasper.pc
      • libjasper.so

直接解压,然后按照路径将 jasperpkgconfiglibjasper.so 分别复制到对应的路径下。命令行如下所示:

cd /{your_libjasper_path}/usr			# 因为这个 libjasper-devel-2.0.33-alt2.aarch64.rpm 文件解压完得到的就是一个名为 usr 的文件夹
sudo cp -r include/lasper/ /usr/include/		# 将 include 下面的 jasper 文件夹复制过去
sudo cp -r lib64/ /usr/							# 将 lib64 整个复制过去(Orin 上面一开始是没有 lib64 这个文件夹的)

复制过去之后,进入解压好的 OpenCV 的文件夹。我是参考一开始的安装连接,安装的 4.5.5 版本。

问:opencv-4.5.5,和 opencv-contrib-4.5.5 分别要解压到哪里呢?
答:其实解压到哪里都可以,但是一般为了方便起见,将 opencv-contrib-4.5.5 的文件夹放在 opencv-4.5.5 的文件夹里面。( cmake 的时候路径参数给对就可以)

分布如下所示:

在这里插入图片描述
然后按照正常编译并且安装的流程,进行 opencv-4.5.5 的安装。
终端命令行为:

cd opencv-4.5.5

mkdir build

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_ENABLE_NONFREE=1 \
-DBUILD_opencv_python2=1 \
-DBUILD_opencv_python3=1 \
-DWITH_FFMPEG=1 \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_ARCH_BIN=7.2 \
-DCUDA_ARCH_PTX=7.2 \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_GENERATE_PKGCONFIG=1 \
-DOPENCV_EXTRA_MODULES_PATH=/home/jetson/Downloads/opencv-4.5.5/opencv_contrib-4.5.5/modules \
..
# 为什么 opencv_contrib-4.5.5 解压路径无所谓
# 因为此处的 DOPENCV_EXTRA_MODULES_PATH 这个参数就是需要 opencv_contrib 的模块路径,改成自己解压到的路径即可
# 我的就是:-DOPENCV_EXTRA_MODULES_PATH=/home/be/OpenCV/opencv-4.5.5/opencv_contrib-4.5.5/modules \
# Jetson AGX ORIN 内存比较大,可以直接 -j8 或者 -j12
make -j8
sudo make install

make -j8 之后结果如下图所示:

在这里插入图片描述完美!!!

然后再运行 sudo make install,发现无法安装到 Orin 上面,可能还是里面有的库存在问题。结果如下图:

在这里插入图片描述

不过,既然 opencv-4.5.5 已经编译完成了,那么就可以尝试使用了,只不过在编写 CMakeList.txt 的时候需要注意一些语句的书写,使用 set 编写 OpenCV 的路径了。

并不影响 CUDA 的 OpenCV 使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/480084.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[音视频学习笔记]七、自制音视频播放器Part2 - VS + Qt +FFmpeg 写一个简单的视频播放器

前言 话不多说,重走霄骅登神路 前一篇文章 [音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt VS2022,都什么年代了还在写传统播放器? 本文相关代码仓库: MediaPlay-FFmpeg - Public 转载雷神的两个流程…

css3鼠标悬停图片特效,图片悬停效果源码

特效介绍 css3鼠标悬停图片特效,图片悬停效果源码,可以在网页上面作为自己的动态加载名片,放到侧边栏或者网站合适的位置即可 动态效果 代码下载 css3鼠标悬停图片特效,图片悬停效果源码

阿里云 EMR Serverless Spark 版免费邀测中

随着大数据应用的广泛推广,企业对于数据处理的需求日益增长。为了进一步优化大数据开发流程,减少企业的运维成本,并提升数据处理的灵活性和效率,阿里云开源大数据平台 E-MapReduce (简称“EMR”)正式推出 E…

数据挖掘与机器学习 1. 绪论

于高山之巅,方见大河奔涌;于群峰之上,便觉长风浩荡 —— 24.3.22 一、数据挖掘和机器学习的定义 1.数据挖掘的狭义定义 背景:大数据时代——知识贫乏 数据挖掘的狭义定义: 数据挖掘就是从大量的、不完全的、有噪声的、…

基于docker配置pycharm开发环境

开发过程中,为了做好环境隔离,经常会采用docker来进行开发,但是如何快速将docker中的环境和本地开发的IDE链接起来是一个常见问题,下面对其进行简单的总结: (1)前期准备 开发环境docker和工具p…

ENISA 2023年威胁态势报告:主要发现和建议

欧盟网络安全局(ENISA)最近发布了其年度2023年威胁态势报告。该报告确定了预计在未来几年塑造网络安全格局的主要威胁、主要趋势、威胁参与者和攻击技术。在本文中,我们将总结报告的主要发现,并提供可操作的建议来缓解这些威胁。 介绍 ENISA 威胁态势报告…

活动回顾 | 走进华为向深问路,交流数智办公新体验

3月20日下午,“企业数智办公之走进华为”交流活动在华为上海研究所成功举办。此次活动由上海恒驰信息系统有限公司主办,华为云计算技术有限公司和上海利唐信息科技有限公司协办,旨在通过对企业数字差旅和HR数智化解决方案的交流,探…

在 Linux/Ubuntu/Debian 上安装 SQL Server 2019

Microsoft 为 Linux 发行版(包括 Ubuntu)提供 SQL Server。 以下是有关如何执行此操作的基本指南: 注册 Microsoft Ubuntu 存储库并添加公共存储库 GPG 密钥: sudo wget -qO- https://packages.microsoft.com/keys/microsoft.as…

53、Qt/信号与槽、QSS界面设计20240322

一、使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是…

IDEA调优-四大基础配置-编码纵享丝滑

文章目录 1.JVM虚拟机选项配置2.多线程编译速度3.构建共享堆内存大小4.关闭不必要的插件 1.JVM虚拟机选项配置 -Xms128m -Xmx8192m -XX:ReservedCodeCacheSize1024m -XX:UseG1GC -XX:SoftRefLRUPolicyMSPerMB50 -XX:CICompilerCount2 -XX:HeapDumpOnOutOfMemoryError -XX:-Omi…

赋能 DevOps:平台工程的关键作用

在当今快节奏的数字环境中,DevOps 已成为寻求简化软件开发和交付流程的组织的关键方法。DevOps 的核心在于开发和运营团队之间协作的概念,通过一组旨在自动化和提高软件交付生命周期效率的实践和工具来实现。 DevOps 实践的关键推动因素之一是平台工程。…

小程序渲染层图标错误

小程序渲染图标层出现错误: 官方提示:不影响可以忽略; 通过阿里巴巴矢量图标库--项目设置--字体格式--选中base64格式; 重新更新图标库代码,替换项目中的图标库; 重新加载小程序--渲染层错误的提示消失&…

[运维] 可视化爬虫易采集-EasySpider(笔记)

一、下载 ​下载地址 下滑到Assets页面,选择下载 二、解压运 ​解压压缩包,打开文件夹 在此文件夹下打开Linux Terimal, 并输入以下命令运行软件: ./easy-spider.sh 注意软件运行过程中不要关闭terminal。 三、使用 1.开始 首先点击…

Qt实现TFTP Server和 TFTP Client(一)

1 概述 TFTP协议是基于UDP的简单文件传输协议,协议双方为Client和Server.Client和Server之间通过5种消息来传输文件,消息前两个字节Code是消息类型,消息内容随消息类型不同而不同。传输模式有三种:octet,netascii和mail,octet为二…

浅谈Javascript虚拟列表(virtaul list)改造成虚拟表格(virtaul table)的技术

前端加载百万条数据列表,如果采用真实的DOM插入100万个div(或li)标签,肯定是非常卡顿的。这就不得不使用虚拟列表技术方案,但是虚拟列表技术方案网上有很详细的实现方法,今天我就来谈谈根据网上的方案&…

Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性

Prompt进阶系列5:LangGPT(提示链Prompt Chain)–提升模型鲁棒性 随着对大模型的应用实践的深入,许多大模型的使用者, Prompt 创作者对大模型的应用越来越得心应手。和 Prompt 有关的各种学习资料,各种优质内容也不断涌现。关于 Prompt 的实践…

ETL的全量和增量模式

在当今信息爆炸的时代,数据管理已经成为各行各业必不可少的一环。而在数据管理中,全量与增量模式作为两种主要的策略,各自具有独特的优势和适用场景,巧妙地灵活运用二者不仅能提升数据处理效率,更能保障数据的准确性。…

Alibaba spring cloud Dubbo使用(基于Zookeeper或者基于Nacos+泛化调用完整代码一键启动)

Quick Start Dubbo&#xff01;用更优雅的方式来实现RPC调用吧 - 掘金 dubbozookeeper demo 项目结构&#xff1a; RpcService 仅仅是提供服务的接口&#xff1a; public interface HelloService {String sayHello(String name); }DubboServer pom&#xff1a; <?xm…

爱普生EPSON全新传感技术方案亮相高交会,创造新时代“精智生活”

2023年中国国际高新技术成果交易会在深圳福田会展中心盛大举行&#xff0c;是目前中国规模最大、最具影响力的科技类展会之一。爱普生作为始终坚持“科技本地化”战略的技术创新前沿企业参与此次展会&#xff0c;为中国用户带来爱普生电子元器件三款创新技术与四大成熟传感器解…

基于JavaSpringmvc+myabtis+html的鲜花商城系统设计和实现

基于JavaSpringmvcmyabtishtml的鲜花商城系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末…