说明
本教程详细介绍了Jetson Nano系统的安装烧录和深度学习环境配置。
VMware16虚拟机安装
SDKManager基于Ubuntu完成JetsonNano镜像系统的烧录。因此需要通过VMware虚拟机安装Ubuntu系统。注意硬盘尽可能分配大一些,最小80GB。虚拟机安装Ubuntu系统的过程不再赘述。
SDKManager系统烧录
SDK Manager下载:NVIDIA SDK Manager
1.安装SDKManager
直接点击安装
直接安装不了可以选择执行以下命令安装,可能需要换apt源
sudo apt-get -f install
sudo dpkg -i sdkmanager_1.9.0-10816_amd64.deb
2.将JetsonNano与PC连接起来,选择连接虚拟机(FC_REC脚接GND)
3.打开SDKManager
需要NVIDIA账号,自行注册
4.可能会有版本更新,确认更新
5.SDK自动检测板载型号,勾选如图所示,Host不需要勾选
7.Jetson OS和Jetson SDK都选择安装,如果虚拟机磁盘空间不足,则只能选择安装Jetson OS系统
Download now Install later建议勾选,否则极有可能下载失败。
8.下载完成后在/home路径下发现以下两个文件,下载完成。
9.重新打开SDKManager,选择离线安装
配置用户名和密码
10.等待安装完成。
将系统迁移至固态硬盘
1.格式化您已安装的 SSD
安装您的和SSD并启动,然后打开菜单并进行搜索。disk启动磁盘应用程序,您将看到此。
点击右上角三个点点。选择 Format Disk
现在让我们选择主分区的大小。我建议你使用16 GB交换文件。
给卷起个名字。然后单击。然后你会看到这个未来。Create
现在,您已成功创建卷。
2.将根源从SD卡复制到SSD
首先,复制该项目。
git clone https://github.com/jetsonhacks/rootOnNVMe.git
cd rootOnNVMe
然后将根源文件复制到您的SSD
./copy-rootfs-ssd.sh
3.启用从 SSD 启动,运行以使服务生效。
./setup-service.sh
4.重启系统
reboot
切记! 就算root移植到固态中 也不要删除emmc中的root 因为系统还是要经过emmc引导到SSD上!!!
配置深度学习环境
如果在刻录步骤安装好了,那么这里就不需要安装了。
1.CUDA
这里有两种方法。第一种通过bootFromExternalStorage安装。第二种使用sdk-manager安装。
方法一:bootFromExternalStorage安装
从Github获取bootFromExternalStorage,执行命令:
git clone https://github.com/jetsonhacks/bootFromExternalStorage.git
给bootFromExternalStorage赋权限
sudo chmod -R 777 bootFromExternalStorage
运行脚本
cd bootFromExternalStorage
./install_jetson_default_packages.sh
然后就开始下载jetpack的默认配置环境,里面包括CUDA和cuDNN等。
方法二:sdk-manager安装
这个安装可前面安装JetPack系统操作类似,然后将板子上Micro USB通过数据线和电脑链接。
然后将Jetson SDk全选,然后转到第三步,下载这些软件并安装。等待完成后就可以配置CUDA的环境变量了。
配置CUDA环境变量
安装完成后,输入ncvv -V,发现并不能读取CUDA的版本,这是因为环境变量还没有配置
输入vim ~/.bashrc命令打开文件,在文件结尾输入以下语句,保存。
export PATH=/usr/local/cuda-10.2/bin${
PATH:+:${
PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
更新环境变量配置
source ~/.bashrc
然后再输入nvcc -V,就可以看到CUDA的版本信息了。
2.cuDNN
虽然安装了cuDNN,但没有将对应的头文件、库文件放到cuda目录。cuDNN的头文件在:/usr/include,库文件位于:/usr/lib/aarch64-linux-gnu。将头文件与库文件复制到cuda目录下:
cd /usr/include && sudo cp cudnn.h /usr/local/cuda/include
cd /usr/lib/aarch64-linux-gnu && sudo cp libcudnn* /usr/local/cuda/lib64
修改文件权限,修改复制完的头文件与库文件的权限,所有用户都可读,可写,可执行:
sudo chmod 777 /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
重新链接
cd /usr/local/cuda/lib64
sudo ln -sf libcudnn.so.8.4.0 libcudnn.so.8
sudo ln -sf libcudnn_ops_train.so.8.4.0 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.4.0 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_infer.so.8.4.0 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.4.0 libcudnn_cnn_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.4.0 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_adv_train.so.8.4.0 libcudnn_adv_train.so.8
sudo ldconfig
测试cuDNN
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
如果配置成功 测试完成后会显示:“Test passed!”。
3.miniconda
wget https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-py38_4.12.0-Linux-aarch64.sh
sudo sh Miniconda3-py38_4.12.0-Linux-aarch64.sh
安装完后可能需要在.bashrc配置环境变量,
sudo vim ~/.bashrc
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/dell/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/dell/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/dell/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/dell/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
source ~/.bashrc
4.pytorch
pytorch版本不能随意安装,必须安装英伟达编译的好的库文件,
链接:PyTorch for Jetson
选择对应jetpack版本的pytorch文件。
我的是5.0.2的,所以可以选择1.12.0版本的pytorch。点击链接然后下载。
等待下载完成后,执行
pip install torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
安装torchvision
执行命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
下图是vision torchvision和pytorch的对应表
v1.12.0版本的pytorch对应v0.13.0版本的vision torchvision,所以执行命令:
git clone --branch v0.13.0 https://github.com/pytorch/vision torchvision
获取vision torchvision,然后执行下面的命令安装
python setup.py install --user
验证安装
import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
报错:ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
5.jtop
# 安装pip3
sudo apt install python3-pip
# 安装Jtop工具
sudo -H pip3 install -U jetson-stats
# 启动jtop
sudo jtop
可以看到 CUDA、cdDNN、TensorRT的版本。
TensorRT 状态查询
dpkg -l | grep nvinfer
6.ONNX
sudo apt-get install protobuf-compiler libprotoc-dev
pip install onnx