赞
踩
可以参考这个链接,基本不会报错:
如果遇到下面的 **Err: **, 建议换一个可以连接 VPN 的 WIFI 或者连接手机热点。
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 的输入法安装包,相关的安装命令可以参考链接:
中英文切换为 Ctrl + Space。
其实上面的网址里面就写有该如何安装 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)
虚拟环境的操作命令,安装库等就跟 amd64 的 Ubuntu 以及 windows 的一样:
# 创建虚拟环境
conda create -n py39 python=3.9
# 激活虚拟环境
conda activate py39
# 退出当前虚拟环境
conda deactivate
首先参考这个链接:
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、Mirror。Mirror 意思是镜像,这里就不解释了。
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 进行下载(是的,没看错,一个都不行),均显示无法找到对应的包,因此这个方式直接放弃,不过有人如果有需要自己编译的,可以自行在网站下载这些依赖包的源代码,进行编译之后再重新编译 libjasper 的 Source Package。不过这过程中间会遇到啥问题,我也不知道,因为我放弃这个方法了。
Binary Package:
这个方法我试过了,只能说真的好用。
因为是已经编译好的文件,所以直接拿来用就行,具体怎么用呢,就是直接把文件复制到对应的目录就行(基本上大部分的 Binary Package 的包都可以使用这个方法)
以这次的 libjasper 为例,打开下载好的 Binary Package 包,即 libjasper-devel-2.0.33-alt2.aarch64.rpm。解压之后可以看到文件夹的分布路径如下:
直接解压,然后按照路径将 jasper,pkgconfig,libjasper.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 使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。