前言:本文是本人经过无数踩坑之后做出的总结
一、需要的工具
1、SD卡:推荐使用闪迪或者金士顿的SD卡,使用其他牌子的SD卡在使用时可能会造成系统崩溃。
2、读卡器:使用电脑烧录镜像时使用
3、网线:假如板子不带网卡就需要使用网线联网。
二、镜像烧录
首先需要对SD卡进行格式化,
1、下载镜像文件:
Jetson Download Center | NVIDIA Developer
选择需要的镜像文件,由于采用SD卡烧录镜像,所以需要下载名称中带SD Card的镜像文件,我这里下载的是这个:
点击即可下载。
2、下载烧录软件:
balenaEtcher - Flash OS images to SD cards & USB drives
具体版本根据自己电脑的系统下载,我使用的是Windows系统,下载的版本为:
3、烧录文件
打开安装好的软件,选择下载的镜像文件进行烧录:
烧录成功后电脑无法查看SD卡是正常现象。
4、将SD卡插入jetson nano的卡槽即可开机,然后自行配置ubuntu系统即可。
三、环境配置
1、换源
系统默认源为ubuntu,更新下载速度奇慢,需要更新为国内源。
首先需要备份一下然后打开源文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /etc/apt/sources.list
删除里面全部内容,替换为:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
保存并关闭窗口,更新软件包:
sudo apt-get update
sudo apt-get upgrade
2、配置CUDA环境
jetson nano中已经内置好了CUDA,但需要配置环境变量才能使用,打开命令行添加环境变量即可。
sudo gedit ~/.bashrc
在文件末尾加入以下指令:
export CUDA_HOME=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.2/bin:$PATH
保存,查看是否配置成功。
nvcc -V
输出这些就表示配置成功了:
3、安装U盘挂载:
大容量设备可能会出现无法挂载,使用此命令后可使用U盘拷贝文件。
sudo apt-get install exfat-utils
4、配置conda
jetson nano的架构是aarch64,与windows和liunx不同不同,所以不能安装Anaconda、Miniconda和anconda,可以安装一个替代它的Archiconda。
下载网址:https://github.com/Archiconda/build-tools/releases
打开下载archiconda包的文件夹位置,使用终端cd进行这个文件夹,然后执行:
sudo apt-get install Archiconda3-0.2.3-Linux-aarch64.sh
若是使用上面指令报错则采用:
bash Archiconda3-0.2.3-Linux-aarch64.sh
安装时一直按enter键默认安装即可。
执行完上述指令后需要添加进环境变量:
sudo gedit ~/.bashrc
在文档最后一行后面添加:
export PATH=~/archiconda3/bin:$PATH
输入以下指令创建虚拟环境:
conda create -n yolov5 python=3.6 #创建一个python3.6环境
在虚拟环境中输入以下指令添加国内源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
安装pip:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install --upgrade pip
设置为默认源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
5、安装pytorch和torchvision
1、安装pytorch
去英伟达官网下载所需版本,我这里是1.8.0,网址如下:
PyTorch for Jetson - Jetson & Embedded Systems / Announcements - NVIDIA Developer Forums
由于jetson nano板使用的是ubuntu18.04,只能安装JetPack 4以下的pytorch包,采用JetPack 5以上的包会造成兼容性错误。
点击即可自动下载,若是下载不能进行,则需使用科学上网进行下载。
下载完成后在torchvision文件夹的目录下右键,进入终端,然后进入你创建的虚拟环境,输入以下命令:
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
安装torch时,一定要安装numpy,不然的话显示你安装torch成功,但是你conda list是找不到的。
sudo apt install python3-numpy
输入
export OPENBLAS_CORETYPE=ARMV8
输入python,进入python环境,在python环境下输入下方代码查看是否安装成功
import torch
print(torch.__version__)
2、安装torchvision
torchvision的版本需要和pytorch版本对应。
torchvision包已放到百度网盘链接:
链接:https://pan.baidu.com/s/1KToQaGkuozp6LtHPaS48zg?pwd=ucg0
提取码:ucg0
将包下载到板子上,使用终端进入该包,输入:
sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
python3 -m pip install -i https://mirrors.aliyun.com/pypi/simple pillow
export BUILD_VERSION=0.9.0
python setup.py install
以上便是pytorch安装全部步骤了。
四、安装yolov5
1、去官网上下载需要的版本
网址:ultralytics/yolov5 at v6.0 (github.com)
注:由于yolov5-6.1及以上版本已不再支持python3.6,而jetson nano的pytorch包最高支持版本为python3.6,所以只能下载6.0及以下版本,否则会出现报错。
点击左上角选择版本:
下载权重:Releases · ultralytics/yolov5 (github.com)
选择对应版本,我使用的是yolov5-6.0:
下载完后放入下载的yolo包里面。之后再进行依赖下载:
首先将numpy版本降低:
pip install numpy==1.19.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
使用终端打开下载的yolov5包,输入:
pip install -r requirements.txt
等待依赖安装完成即可。
2、测试
输入
python3 detect.py
可以看到结果输出到了runs/detect/exp中,打开文件夹可查看结果:
五、jetson nano远程连接
使用ssh远程连接可以更方便的进行配置。
首先在jetson nano中下载putty配置,输入ifconfig查看ip地址,对于有线网络,我们查看eth0下面的IP地址;对于无线网卡,我们查看wlan0下面的IP地址。