本文使用jetson orin nx 16GB开发板,为yolov5模型进行基础的环境搭建,主要包括cuda、pytorch、torchvision、onnxruntime。同时通过vscode实现ssh远程连接。
总体流程
- 配置ssh服务
- jetpack工具包安装
- 构建包含pytorch、torchvision镜像/容器
- vscode使用ssh连接容器
配置ssh
需要分别在开发板和容器内两个位置安装。
安装命令:
apt-get update
apt-get install openssh-server
jetpack安装
这一步主要是为了安装cuda。
jetson官方提供了jetpack工具包,里面包含配套的cuda,以及一些其他库,非常方便。
流程
构建镜像
由于涉及到与jetson版本的兼容性问题,安装pytorch、torchvision时不能简单地通过pip install来安装,可以参照正常安装流程 进行安装。
所以笔者决定采用nvidia官方构建的镜像,已经帮我们预安装好了pytorch、torchvision,只要根据你的jetpack版本选择镜像即可,非常方便。
参考镜像使用の官方文档即可。需要注意的几点:
- 进入容器后,可以检查一下是否有torch、torchvision:
pip list | grep torch
- 进入容器后,python默认是python2,python3默认是python3.8.为了可以通过python直接用python3,可以小小改动一下:
rm -f /usr/bin/python
ln -s /usr/bin/python3.8 /usr/bin/python
- 这里通过run创建容器后,
-it
就是直接进入到容器里了(省去docker exec
),--rm
是指容器一旦停止就删除该容器,有些危险,可以删去这个命令。 - 由于后期需要通过ssh远程控制开发板、并进入到这个容器里去,因此需要在创建容器时指定端口映射,便于自己的电脑ssh连接时可以通过端口映射连接到容器里,命令:
docker run -p 2323:22
这里的2323
是开发板的端口,22
是容器端口,一般默认是22
。注意官方文档中的命令--network host
要删去。
此外,还要按照其他配置中的配置步骤->进入容器并配置ssh
进行端口相关的配置。
vscode使用ssh
主要流程如下:
- 安装插件remote-ssh
shift + ctrl +p
选择下拉框中的connet to host- 输入连接命令
ssh root@ip -p 2323
p.s. 因为笔者的开发板用户名为tunnel,容器用户名是默认的root,因此:
这里可以加深对端口的理解,也就是2323和22都是开发板对外的端口,不同在于2323是通向容器的,22是开发板自己的。# 进入开发板 ssh tunnel@ip -p 22 # 进入容器 ssh root@ip -p 2323