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

Jetson AGX ORIN 初始化&配置CUDA&Anaconda&带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 使用。

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jetson AGX Orin是一款强大的嵌入式计算平台,可以轻松安装ROS 2以实现机器人及其他自动化系统的开发和运行。以下是使用300字中文回答Jetson AGX Orin安装ROS 2的步骤和注意事项。 首先,确保Jetson AGX Orin已经正常运行,并且您已经完成了基本的设置和配置。 接下来,从ROS 2官方网站(https://index.ros.org/doc/ros2/Installation/Foxy/Linux-Install-Debians/)下载适用于您的Jetson AGX Orin的ROS 2发行版,建议选择最新版本Foxy Fitzroy。下载完成后,将.deb文件保存到您的Jetson AGX Orin的本地存储中。 然后,在Jetson AGX Orin的终端中打开一个新的命令行窗口,以便在系统中进行安装。使用以下命令导航到.deb文件的目录: cd /path/to/deb/file 然后,使用以下命令安装ROS 2: sudo apt install ./ros-foxy-*.deb ROS 2的安装过程可能会花费一些时间,具体取决于您的Jetson AGX Orin的性能和网络连接速度。在安装过程中,请耐心等待,直到安装完成。 安装完成后,您需要设置ROS 2的工作环境。使用以下命令执行此操作: source /opt/ros/foxy/setup.bash 现在,您可以开始使用ROS 2在Jetson AGX Orin上进行开发和运行机器人应用程序了。请查阅ROS 2的文档和教程,以了解更多关于ROS 2在Jetson AGX Orin上的使用方法和功能。 总结一下,安装ROS 2到Jetson AGX Orin的过程包括下载适用于该平台的ROS 2发行版,并使用apt命令进行安装。安装完成后,使用source命令设置ROS 2的工作环境。最后,您就可以开始使用ROS 2在Jetson AGX Orin上进行开发和运行机器人应用程序了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值