orin nano烧录系统,配置opencv440(笔记)

2 篇文章 0 订阅
1 篇文章 0 订阅

目录

一、jetson orin nano简介

二、烧录镜像 

三、安装ROS

四、配置CUDA

五、源码编译Open CV

 六、源码编译cv_bridge

一、jetson orin nano简介

版本系列:Jetson Orin Nano 4GB 和 8GB

处理器架构:aarch64

Jetson Orin Nano 系列规格
Jetson Orin Nano 4GBJetson Orin Nano 8GB
AI 性能20 TOPS40 TOPS
GPU搭载 16 个 Tensor Core 的 512 核 NVIDIA Ampere 架构 GPU搭载 32 个 Tensor Core 的 1024 核 NVIDIA Ampere 架构 GPU
GPU 最大频率625 MHz
CPU6 核 Arm® Cortex®-A78AE v8.2 64 位 CPU
1.5MB L2 + 4MB L3
CPU 最大频率1.5 GHz
显存4GB 64 位 LPDDR5
34 GB/s
8GB 128 位 LPDDR5
68 GB/s
存储(支持外部 NVMe)
视频编码1080p30,由 1-2 个 CPU 核心提供支持
摄像头多达 4 个摄像头(通过虚拟通道最多可支持 8 个***)
8 通道 MIPI CSI-2
D-PHY 2.1(高达 20 Gbps)
PCIe*1 x4 + 3 x1
(PCIe 3.0,根端口和端点)
USB*3x USB 3.2 2.0 (10 Gbps)
3x USB 2.0
网络*1x GbE
显示接口1x 4K30 多模 DP 1.2 (+MST)/eDP 1.4/HDMI 1.4**
其他 I/O3x UART、2x SPI、2x I2S、4x I2C、1x CAN、DMIC 和 DSPK、PWM、GPIO
功率7 瓦 - 10 瓦7 瓦 - 15 瓦
规格尺寸69.6 毫米 x 45 毫米
260 引脚 SO-DIMM 连接器

如图所示, Jetson Orin Nano 展示了带有 NVIDIA 安培架构 GPU 的 NVIDIA -Orin 架构。它有多达 8 个流式多处理器( SM ),1024 个 CUDA 核和多达 32 个用于 AI 处理的张量核组成。

Jetson Orin Nano 的方块图
Jetson Orin Nano 系列基准图

 NVIDIA Ampere Architecture 第三代 Tensor Cores 的每瓦特性能优于前一代,并在支持稀疏性的情况下带来更高的性能。通过稀疏性,可以利用深度学习网络中的细粒度结构化稀疏性,将 Tensor Core 操作的吞吐量提高一倍。

为了加速应用程序管道的所有部分, Jetson Orin Nano 还包括一个 6 核 Arm Cortex-A78AE CPU 、视频解码引擎、 ISP 、视频图像合成器、音频处理引擎和视频输入块。

Jetson Orin Nano 模块占地面积小,为 70x45mm , 260 针 SODIMM ,包括各种高速接口:

  • 最多七条 PCIe Gen3 通道
  • 三个高速 10 Gbps USB 3.2 Gen2 端口
  • 八通道 MIPI CSI-2 摄像头端口
  • 各种传感器 I / O

二、烧录镜像 

 注意:我是用固态硬盘烧录的,因此需要买一个固态硬盘,如果你有用过的固态一定要格式化(工具推荐DiskGenius)!!!

1、下载SDK Manager,需要注册NVIDIA账号。

2、推荐使用VMware虚拟机和Ubuntu18.04系统

注意:因为文件比较大,建议虚拟机存储大于50G。

3、安装VMware Tools

4、拖拽下载好的SDK Manager到虚拟机的linux系统,然后安装。

安装命令如下:

sudo apt-get -f install
sudo dpkg -i sdkmanager_1.9.3-10904_amd64.deb

5、安装好以后,点击sdkmanage图标打开软件,登录NVIDIA账号。

  • 短接FC_REC和GND(第二三引脚),接上TypeC数据线,然后接通电源
  • 选择“连接到虚拟机”,确保出现NVIDIA APX被勾选

 6、这个过程一定要网络稳定,网速好,我是用手机开的热点

  • STEP 01 取消勾选Host Machine,点击CONTINUE
  • STEP 02 只勾选Jetson Linux,选择I accept the terms and conditions of the license agreements,点击Create,然后CONTINUE,输入虚拟机密码,等待下载完成,如果中间出现问题,就是有些没有下载下载,更换网络后,重新登录下载(重新登录是必要的
  • 安装过程,出现以下界面,OEM Configuration下拉选择runtime
  • 等待安装完成,中间可能卡住,点击继续,安装过程很慢,需要耐心
  • 显示FINISH,移除杜邦线,接上屏幕,按照系统提示一步步安装就行。注意:这里有个bug,orin nano 系统环境语言一定要是英文,不然后面通过网络安装CUDA,OpenCV环境时会提示密码错误

7、使用SDK Manager安装CUDA 和Open CV环境

  • 确保虚拟机可以 ping 通orin nano
  • ifconfig #查看orin nano的IP地址
    ping 192.168.x.xxx
  • 打开SDK Manager,Orin Nano模块不需要检测链接,后面我们用IP互联搞定。选择好后点击下一步,我们不需要烧录系统,只需要安装驱动组件,所以取消勾选Jetson Linux,选择Jetson Runtime Components和Jetson SDK Components,同时接收协议。然后点击下一步
  • 弹出这个窗口后connection选择Ethernet, 配置好后,点击install
  • 开始安装,你只需要等待,中间如果出错,只能重新开始

 8、验证安装结果

安装jtop

sudo -H pip install -U jetson-stats
sudo systemctl restart jtop.service
sudo jtop

9、修改显存

sudo gedit /etc/systemd/nvzramconfig.sh
'''
修改mem = $((("${totalmem}"/2/"${NRDEVICES}")*1024))
为mem = $((("${totalmem}"*2/"${NRDEVICES}")*1024)) # 不要复制粘贴,可能会导致修改不成功
'''

 即将2前面的/改为* ,保存修改后重启

重启之后

free -h #可以看到"交换"已经不是0,我这里变成14G

三、安装ROS

ros的安装一直以来都是想学习ros的同学面对的第一道难关,但鱼哥的一键安装,真的会给我们初学者很大的便利,命令如下:

wget http://fishros.com/install -O fishros && . fishros

依次进行:

  • 选择一键安装:ROS
  • 一定要更换系统源
  • 还有rosdep记得安装,如果找不到rosdepc,使用如下命令:
pip install rosdepc

安装完成运行小王八检测是否安装成功

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

安装完成使用:

sudo apt update
sudo apt upgrade

四、配置CUDA

 打开文档

sudo gedit ~/.bashrc

在文档末尾添加,通过这种方法烧录的系统已经自动配置好了,直接查看即可。

export CUDA_HOME=/usr/local/cuda-11.4
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.4/bin:$PATH

保存并查看配置

source ~/.bashrc
nvcc -V    #如果配置成功可查看CUDA的版本号

五、源码编译Open CV

因为我需要用到GPU,所以重新编译安装OpenCV

sudo apt-get purge libopencv*
jtop

切换到INFO,Open CV显示 MISSING

执行以下命令

sudo rm -r /usr/bin/python3.9

1、安装依赖

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev

2、下载opencv-4.4.0opencv_contrib-4.4.0源码(需要科学上网,下载对应的分支)

mkdir ~/opencv440
cd ~/opencv440
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
mkdir ~/opencv440/opencv/build

此时目录结构:

~/opencv440/opencv/build

~/opencv440/opencv_contirb

3、接下来安装CMake-gui,在终端输入

sudo apt install cmake-qt-gui

4、然后执行

cd ~/opencv440/opencv/build
cmake-gui ..

5、然后会弹出CMake的图形化界面,在上方的两个路径里面

where is the source code选择opencv所在文件夹的路径,即~/opencv440/opencv/

where is to build the binaries选择build所在文件夹的路径,即~/opencv440/opencv/build

6、点击左下方的Configure按钮,选择Unix Makefiles,选择Use default native compilers(默认),然后点击Finish

窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的。正如上文所述,这里通过图形界面的方式来进行配置,更加直观方便。

7、这里需要对几个地方进行修改:

OPENCV_EXTRA_MODULES_PATH选择输入目录(单击这一行后方空白处即可选中),选择opencv_contrib文件夹中的modules文件夹

WITH_CUDA 一定要勾选

8、点击Generate生成配置文件,这一步应该比较快就完成了。(这里一般都会报错

错误以及修改如下:

错误1:

CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when available. Run “cmake --help-policy CMP0072” for policy details. Use the cmake_policy command to set the policy and suppress this warning.

FindOpenGL found both a legacy GL library:

解决:在cmakelist文件中加入下面内容:

if (POLICY CMP0072)
  set(OpenGL_GL_PREFERENCE LEGACY)
endif()

错误2: 

WeChatQRCode:Can't get detect caffemodel file for wechat qrcode.

解决:此方法适用于后续的问题,后文不再赘述。

打开日志:/home/orin/opencv440/opencv/build/CMakeDownloadLog.txt

sudo gedit /home/orin/opencv440/opencv/build/CMakeDownloadLog.txt #打开你自己的日志

 自己去github或是GitHub Proxy把这些文件下载下来,然后放到下面标出的路径下/home/orin/opencv440/opencv/.cache/wechat_qrcode/,并重命名为:238e2b2d6f3c18d6c3a30de0c31e23cf-detect.caffemodel,如果自己无法下载,我把需要的文档放在我的百度网盘里,需要的自取。如果找不到.cache文件,按住ctrl + h就会出现。

错误3:  

Face:Can't get model file for face alignment.

 解决:

和错误2解决方案相同,将face_landmark_model.dat重命名为7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat放入/home/orin/opencv440/opencv/.cache/data文件夹。

错误4: 

出现fatal error: boostdesc_bgm.i: No such file or directory。

解决:缺失boostdesc_bgm.i,boostdesc_bgm_bi.i,boostdesc_bgm_hd.i,boostdesc_binboost_064.i,boostdesc_binboost_128.i,boostdesc_binboost_256.i,boostdesc_lbgm.i,vgg_generated_48.i,vgg_generated_64.i,vgg_generated_80.i,vgg_generated_120.i等文件,从我的百度网盘下载到本地。

然后放到opencv_contrib/modules/xfeatures2d/src目录下就可以了。

9、再次点击Generate生成配置文件,详细检查确定不报错之后,关闭cmake-gui,在build文件夹执行以下代码,先查看自己的线程数

nproc
sudo make -j6 #6就是线程数

过程非常慢,得一个小时左右,可以开一局 

sudo make install

10、配置环境变量

安装成功后还需要设置opencv的环境变量。打开文件:

sudo gedit /etc/ld.so.conf.d/opencv.conf

将以下内容添加到最后:

/usr/local/lib

接下来配置库:

sudo ldconfig

更改环境变量:

sudo gedit /etc/bash.bashrc

在文件后添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
export PKG_CONFIG_PATH

保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。

jtop

就可以看到Opencv4.4.0 CUDA YES

  六、源码编译cv_bridge

 1、下载源码,一定要选择对应的分支cv_bridge noetic

2、初始化cv_bridge_ws编译工作空间

mkdir -p ~/cv_bride_ws/src
cd ~/cv_bride_ws/src
catkin_init_workspace
cd ..
catkin_make

3、下载cv_bridge源码

cd ~/cv_bridge_ws/src
git clone https://github.com/ros-perception/vision_opencv.git

 4、编译

cd ../
catkin_make install -DPYTHON_EXECUTABLE=/usr/bin/python3

5、更新环境变量

sudo gedit ~/.bashrc
source /home/orin/cv_bridge_ws/devel/setup.bash --extend #/home/orin/是我的绝对路径

6、测试

打开终端输入python3

python3
import cv_bridge
from cv_bridge.boost.cv_bridge_boost import getCvType

没有报错即成功编译,下班干饭。

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在PXE UEFI模式下引导Legacy系统是可行的。PXE(Preboot Execution Environment)是一种网络引导技术,允许计算机通过网络连接下载操作系统或其他可执行文件进行引导。UEFI(Unified Extensible Firmware Interface)是一种现代的固件接口,用于替代传统的BIOS进行系统引导和配置。 传统Legacy系统采用的是BIOS引导,而UEFI系统采用的是新一代的固件接口。虽然两种系统有区别,但PXE可以在UEFI模式下引导Legacy系统。具体步骤如下: 首先,在UEFI固件设置中,需要将启动模式设置为Legacy模式,以使系统能够识别和引导传统的Legacy系统。 然后,在网络上配置PXE服务器,并确保PXE服务器已正确配置并且与计算机所在的网络通信正常。 接下来,在计算机的UEFI设置中,将PXE网络引导作为首选引导设备。根据计算机的品牌和型号,具体的操作可能会有所不同。 当计算机启动时,它将自动检测网络,并尝试通过PXE服务器进行引导。PXE服务器将在网络上广播PXE引导请求,并提供可引导的Legacy系统镜像。 计算机接收到PXE服务器的响应后,开始下载Legacy系统镜像。下载完成后,计算机将通过PXE引导将Legacy系统加载到内存中,并自动执行。 需要注意的是,在PXE UEFI模式下引导Legacy系统可能会遇到一些兼容性问题,例如某些硬件驱动可能无法在UEFI模式下正常加载。因此,在切换引导模式之前,应考虑检查系统的兼容性和可能的问题。 总的来说,通过在UEFI模式下配置PXE引导,实现引导Legacy系统是可行的,但需要在设置和兼容性方面做适当的准备和检查。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值