Jetson Xavier NX远程登录

一. 远程桌面
在windows10远程上操作jetson Xavier,远程的前提:jetson xavier和Windows的PC在同一个局域网内(我这里是直接在windows10上开启热点)。
安装xrdp:sudo apt-get install xrdp vnc4server xbase-clients
1.1:桌面共享没反应
桌面共享其实就是一个vnc-server(因此没有必要再在linux上安装vnc-server了),如果要远程,必须要先开启共享,允许其他人控制自己电脑。
这里发现双击了桌面共享,没反应。

解决方案:

安装dconf-editor:sudo apt-get install dconf-editor
运行dconf-editor,更改系统配置,org ==> gnome ==> desktop ==> remote-access,关闭以下两个:promotion-enabled和requre-encryption
开启桌面共享:/usr/lib/vino/vino-server
1.2 开启远程
在Windows10上安装vnc-client,官网地址:https://www.realvnc.com/en/connect/download/viewer/windows/

输入linux的ip后,直接连接即可。

1.3 建立双击可执行文件.desktop
由于每次我开启远程桌面的时候,都需要在命令行输入相关指令,很麻烦,就想说有没有可以直接在像windows一样快捷方式
写一个shell脚本来开启桌面共享:vim ~/vnc-server.sh
bash #!/bin/sh /usr/lib/vino/vino-server

在桌面上新建一个.desktop文件:vim ~/Desktop/vnc-server.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Categories=true
Version=1.0
Name=vnc-server
Exec=sh /home/yy/vnc-server.sh #注意这里是绝对路径
Path=/home/yy
Terminal=false # 是否保留终端
StartupNotify=true # 开机自启动
给.desktop文件加上可执行权限:sudo chmod +x ~/Desktop/vnc-server.desktop
1.4 开机自动开启
创建开机自启动文件夹:mkdir ~/.config/autostart
复制.desktop文件到该文件夹下:cp ~/Desktop/vnc-server.desktop ~/.config/autostart/
给.desktop文件加上可执行权限:sudo chmod +x ~/.config/autostart/vnc-server.desktop
二. 配置cuda和cuDNN
用JetPack刷机(本人选用的是Jetpack4.4.1),jetpack地址:https://developer.nvidia.com/embedded/jetpack-archive

安装完成后,我们可以查看jetpack的版本:cat /etc/nv_tegra_release,同时已经给我们安装好了CUDA 10.2 、cudnn 8.0 、opencv、python3.6。
2.1 设置cuda环境变量
​ 查询cuda版本:nvcc -V基本就能看到cuda信息了,但是这里却报错没有nvcc指令。解决方案:将cuda添加到环境变量中

sudo vim /etc/profile,这里说下其实在/usr/local下有2个cuda相关文件夹,分别是cuda和cuda-10.2,你会发现其实是一致的。
export PATH=/usr/local/cuda-10.2/bin: P A T H e x p o r t L D L I B R A R Y P A T H = / u s r / l o c a l / c u d a − 10.2 / l i b 64 PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64 PATHexportLDLIBRARYPATH=/usr/local/cuda10.2/lib64LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-10.2
source /etc/profile,再去命令行输入nvcc -V就可以看到cuda10.2的信息了
2.2 设置cuDNN
安装好的cuDNN的头文件:/usr/include/cudnn.h 安装好的cuDNN的库文件:/usr/lib/aarch64-linux-gnu/libcudnn*

(1) 而这些头文件和库文件都不在cuda目录下,因此要复制到cuda目录下:

复制头文件:sudo cp /usr/include/cudnn.h /usr/local/cuda/include
复制库文件:sudo cp /usr/lib/aarch64-linux-gnu/libcudnn* /usr/local/cuda/lib64/
(2) 修改文件权限:sudo chmod 777 /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

(3) 重新软连接:

cd /usr/local/cuda/lib64
sudo ln -sf libcudnn.so.8.0.0 libcudnn.so.8
sudo ln -sf libcudnn_ops_train.so.8.0.0 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.0.0 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_infer.so.8.0.0 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.0.0 libcudnn_cnn_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.0.0 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_adv_train.so.8.0.0 libcudnn_adv_train.so.8

sudo ln -sf libcudnn_ops_train.so.7.3.1 libcudnn_ops_train.so.7
sudo ln -sf libcudnn_ops_infer.so.7.3.1libcudnn_ops_infer.so.7
sudo ln -sf libcudnn_adv_infer.so.7.3.1 libcudnn_adv_infer.so.7
sudo ln -sf libcudnn_cnn_infer.so.7.3.1 libcudnn_cnn_infer.so.7
sudo ln -sf libcudnn_cnn_train.so.7.3.1 libcudnn_cnn_train.so.7
sudo ln -sf libcudnn_adv_train.so.7.3.1 libcudnn_adv_train.so.7
(4) 编译与验证:

sudo ldconfig
sudo cp -r /usr/src/cudnn_samples_v8/ ~/
cd ~/cudnn_samples_v8/mnistCUDNN
sudo chmod 777 ~/cudnn_samples_v8
sudo make clean
sudo make
./mnistCUDNN # 验证cuDNN
(5) 查询cuDNN版本:cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

三. 配置torch和torchvision
3.1 配置torch
这里安装torch的方式和普通的windows和linux下安装不一样,pytorch有专门的jetson版本
Pytorch的jetson版本下载地址:https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048

下载完成后直接使用pip进行安装:sudo pip3 install numpy torch-1.9.0-cp36-cp36m-linux_aarch64.whl
安装必须的依赖:sudo apt-get install libopenblas-base libopenmpi-dev
3.2 配置torchvision
由于安装的是1.9.0版本的pytorch,直接安装于其对应的torchvision(0.10.0):sudo pip3 install torchvision==0.10.0

3.3 验证GPU可用
命令行打开python,导入torch包:import torch
查看pytorch可调用的cuda版本:torch.version.cuda
查看cuda是否可用:torch.cuda.is_available()
3.4 使用yolo遇到的问题
问题:RuntimeError: No such operator torchvision::nms

实验过程:在网上搜到的都是torch和torchvision的版本不对,要升级torchvision之类的,实验将torchvision升级到0.10.0,依旧不行。

解决方案:其实在使用yolo时的非极大值抑制的时候,可以将utils.general.py中nms相关代码替换

原始代码:i = torch.ops.torchvision.nms(boxes, scores, iou_thres)
替换代码:i = torchvision.ops.nms(boxes, scores, iou_thres)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值