开发板官网教程
link
查看 ubuntu 版本
lsb_release -a
查看 cuda 版本
nvcc -V
如果找不到 nvcc,则
sudo vim ~/.bashrc
# 在文件末尾添加环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
# wq! 保存退出
# 更新配置文件
source ~/.bashrc
检查cudnn
cd /usr/src/cudnn_samples_v8/mnistCUDNN #进入例子目录
sudo make #编译
./mnistCUDNN #验证结果
格式化一张 sd 卡,sd卡需保证32g以上。
link
使用 balenaEtcher 烧录镜像
将 sd 卡插入 jetson-nano 开发板,接通显示器,接上电源自动启动,一路下一步到桌面
插上网线
远程文件传输
5.x、通过其他主机来下载不易下载的文件,再远程给开发板
5.1、(可用可不用)远程ssh文件传输
sudo apt install openssh-server
5.2、启动ssh服务器
sudo service ssh restart
5.3、客户端通过filezilla连接服务器
IP: sftp://192.168.3.8
用户名: admin
密码: xxx
墙
下载 clash-linux-armv8… 版的,别下错了
link
解压clash
gzip -d clash-linux-amd64-v0.17.1.gz
配置文件,将机场节点配置文件改为 config.yaml
config.yaml
修改权限
chmod +x clash-linux-amd64-v0.17.1
执行
./clash-linux-amd64-v0.17.1 -d .
修改代理
可以在浏览器输入 http://clash.razord.top/ 进行设置查看
sudo apt install python3-pip
如果遇到pip3无法安装(可能是环境变量的原因)
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
我下载的最新当前最新1.9.0版本:
link
下载后安装(torch 这里采用的是离线安装包):
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy==1.16.6
pip3 install torch-1.9.0-cp36-cp36m-linux_aarch64.whl
#测试是否安装成功
import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print(torch.randn((2,2)))
说明地址:link
注意 torch 和 torchvision 的版本有对应关系,1.9.0的pytorch对应0.10.0的torchvision,所以如下安装
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip3 install torchvision==0.10.0
手动去这个地址 https://github.com/pytorch/vision
找到 release 0.10 版本下载,解压后,进入文件夹
sudo python3 setup.py install
#测试是否安装成功
import torchvision
print(torchvision.__version__)
如果numpy当前的版本小于1.16.6,需要升级
pip3 show numpy
sudo pip3 install https://pypi.tuna.tsinghua.edu.cn/simple --upgrade numpy==1.16.6
安装 onnx
sudo apt install protobuf-compiler libprotoc-dev
sudo pip3 install onnx
检查
import onnx
print(onnx.__version__)
参考网站
link
sudo pip3 install onnxruntime
但是报错
Could not find a version that satisfies the requirement onnxruntime (from versions:)
No matching distribution found for onnxruntime
那么就只有手动编译了
#卸载旧版 cmake(非必须)
sudo apt remove cmake
下载cmake arrch64版本 : https://cmake.org/download/
tar -xvf cmake-3.20.6-Linux-aarch64.tar.gz
sudo mv cmake-3.20.6-Linux-aarch64 /opt/cmake-3.20.6
sudo ln -sf /opt/cmake-3.20.6/bin/* /usr/bin/
检查
cmake --version
cmake version 3.20.6
参考博客 :
link
git clone --recursive https://github.com/Microsoft/onnxruntime
cd onnxruntime
./build.sh \
--update --config Release --enable_pybind \
--build_shared_lib --build --build_wheel \
--use_openmp --use_tensorrt \
--tensorrt_home /usr/src/tensorrt \
--cuda_home /usr/local/cuda \
--cudnn_home /usr/lib/aarch64-linux-gnu
等待5个小时左右
原因:代理设置出错
解决方案:重置代理
git config --global --unset https.https://github.com.proxy
git config --global --unset http.https://github.com.proxy
若需使用代理,http协议和socket协议的配置分别如下,以8080端口为例:
**http**
git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global https.https://github.com.proxy https://127.0.0.1:7890
**socket**
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
onnxruntime 等待5个小时左右,编译成功后,执行
cd build/Linux/Release/dist
pip3 install onnxruntime_gpu_tensorrt-1.10.0-cp36-cp36m-linux_aarch64.whl
但是还是遇到了错误!!!找不到执行版本,推测是 pip3 的问题,于是卸载 pip3
最终解决方案是:
python3 -m pip uninstall pip
sudo apt remove python3-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo pip3 install onnxruntime -i https://pypi.douban.com/simple
#这里确实安装成功了,但是默认numpy-1.16.6版本被卸载替换成了1.9,导致了 Illegal instruction (core dumped) 错误
sudo pip3 uninstall numpy
sudo pip3 install numpy==1.16.6 -i https://pypi.douban.com/simple
#终于成功,通过测试
验证
import onnxruntime
print(onnxruntime.__version__)
import numpy
print(numpy.__version__)
import onnx
print(onnx.__version__)
import torch
print(torch.__version__)
import torchvison
print(torchvison.__version__)
windows上8.0.2后不支持 python版本的tensorRT,只有 C++ 版本的tensorRT。
jetson-nano开发板中默认安装了tensorrt,所以不用在安装了。
但是在使用 torch2trt 的时候可能会遇到如下报错:
AttributeError: ‘tensorrt.tensorrt.Builder‘ object has no attribute ‘max_workspace_size‘
原因是:
Got the same error when running using TensorRT Python 8.0.0.3 and 8.0.1.6
With nvidia-tensorrt-7.2.3.4 it works fine.
pip3 uninstall tensorrt #卸载当前版本
pip3 install nvidia-tensorrt==7.2.* --index-url https://pypi.ngc.nvidia.com
注意:以上命令在 jetson-nano中是无法使用的,官网只提供了 x86-64 cpu架构的包。
如果是jetson-nano中卸载了tensorrt那么在没有找到其他办法的情况下还是重新烧录系统吧。于是我有全部重来了一次。所以上述 关于 没有属性max_workspace_size 的问题还是再找其他办法解决的好。不要轻易删除 jetson-nano 自带 tensorrt 。
尝试: JetPack 之 NVIDIA SDK Manager 法
在这里下载 NVIDIA SDK Manager
link
下载后丢到 nano 中
sudo dpkg -i sdkmanager-1.6.1-8175_amd64.deb
结果报错:软件包体系架构amd64与本机系统体系结构amd64不符
于是:
sudo dpkg --add architecture amd64
sudo dpkg -i sdkmanager-1.6.1-8175_amd64.deb
结果发现 JetPack 根本就不是 arm架构的包,而是amd64的包,放弃折腾,重新烧录系统。
未尝试:可能可行方案,AArch64用户交叉编译样本,有兴趣可以尝试
tensorRT AArch64用户交叉编译样本
总结:tensorRT 是默认装好的,不要去折腾它!!!遇到问题,尽量不要通过卸载解决问题。
C++版:
link
python版:
link
torch2trt 下载地址:
link
python3 setup.py install
补充:windows上8.0.2后不支持 python版本的tensorRT,torch2trt 依赖 tensorRT,所以windows上不需要考虑安装 torch2trt。
把nano的卡用读卡器插到ubuntu机器上
sudo fdisk -u -l
备份:然后用下面命令将tf卡镜像并压缩,如果挂载名为sdb
sudo dd if=/dev/sdb | gzip >/home/yuehe/mBackup/jetson_nano_v01.img.gz
恢复
sudo gzip -dc /home/yuehe/mBackup/jetson_nano_v01.img.gz | sudo dd of=/dev/sdb
补充:ubuntu 弹出 挂载点(弹出u盘)
udisksctl unmount -b /dev/sdb1 //卸载挂载点。相当于(umount /dev/sdb1)
udisksctl power-off -b /dev/sdb //关闭驱动器