• Jetson NX系统烧录以及CUDA、cudnn、pytorch等环境的安装


    安装虚拟机和Ubuntu18.04环境

    这两步比较简单,所以略了。虚拟机的配置需要注意硬盘空间大一点,至少40G。

    安装sdk-manager

    NVIDIA SDK Manager下载地址:https://developer.nvidia.com/drive/sdk-manager
    在这里插入图片描述

    sudo dpkg -i sdkmanager_1.9.0-10816_amd64.deb
    
    • 1

    在这里插入图片描述
    直接执行会报缺少依赖的问题,然后执行命令:

    sudo apt --fix-broken install
    
    • 1

    安装依赖。等待依赖安装完成。
    在这里插入图片描述

    依赖安装完成后再次执行安装sdk的命令。
    在这里插入图片描述

    在这里插入图片描述
    到这里sdk-manager安装完成了。

    NX烧录系统

    将第二个针和第三个针链接,然后将板子上Micro USB通过数据线和电脑链接,插入电源线。
    在这里插入图片描述
    打开sdk-manager,输入账号和密码登陆。
    在这里插入图片描述
    弹出对话框,选择Yes,然后点击OK。
    在这里插入图片描述
    进入主页面,可以看到,NX已经链接上了。然后只勾选Linux这一栏,安装JetPack。这是个下拉框,可以选择不同的版本,我直接选择最新版本。
    在这里插入图片描述
    然后,只勾选Jetson Linux,因为板子只有16G的空间,只能够安装系统的。按照下图选择好后,就可以进入下一步了。
    在这里插入图片描述
    接下来就是下载Jetson OS 然后开始烧录系统。

    在这里插入图片描述
    第一次烧录,正常情况下都可以顺利完成,我这张图是二次烧录时出现的。下面会介绍第二次烧录时应该怎么做。
    在这里插入图片描述

    烧录完成后,就可以将链接第二针脚和第三针脚的线取下来了。

    在这里插入图片描述
    等待烧录完成后,链接显示器开机并配置环境。
    在这里插入图片描述
    选择复选框,然后点击Continue
    在这里插入图片描述
    选择中文简体,不喜欢中文的,可以默认选择英文。
    在这里插入图片描述
    键盘布局选择英文,然后点击继续
    在这里插入图片描述
    设置用户名和密码。完成后点击继续。系统配置过程和安装Ubuntu系统是一样的,没有特别的设置。
    输入下面的命令查看Jetpack的版本。

    sudo apt-cache show nvidia-jetpack
    
    • 1

    将系统迁移到SSD

    接下来将系统迁移到SSD,NX只有16G的空间,只能安装个系统,其他的就别想了。迁移到SSD上才能发挥出作用。
    在这里插入图片描述
    如果没有安装SSD,先断电安装,然后点击Disks。

    在这里插入图片描述
    选择Format Disk格式化硬盘。
    在这里插入图片描述
    点击Format.

    在这里插入图片描述
    点击Format.在这里插入图片描述
    点击+符号,将硬盘挂载到系统。

    在这里插入图片描述
    调整硬盘大小。默认128G。
    在这里插入图片描述
    输入SSD硬盘的名字,比如“SSD”。
    在这里插入图片描述
    然后,点击Create。创建硬盘分区。如下图:
    在这里插入图片描述

    接下来,打开命令行,然后输入:

    git clone  https://github.com/jetsonhacks/rootOnNVMe.git
    
    • 1

    下载完成后,可以看到如下几个文件。
    在这里插入图片描述
    然后 进入 rootOnNVMe, 执行copy-rootfs-ssd.sh脚本。
    开始将系统复制到SSD,等待复制完成后。
    执行./setup-service.sh脚本。
    然后重启就可以从SSD启动系统了。

    安装CUDA

    这里有两种方法。第一种通过bootFromExternalStorage安装。第二种使用sdk-manager安装。

    bootFromExternalStorage安装

    从Github获取bootFromExternalStorage,链接:https://github.com/jetsonhacks/bootFromExternalStorage,执行命令:

    git clone https://github.com/jetsonhacks/bootFromExternalStorage.git
    
    • 1

    给bootFromExternalStorage赋权限

    sudo chmod -R 777 bootFromExternalStorage
    
    • 1

    运行脚本

    cd bootFromExternalStorage
    ./install_jetson_default_packages.sh
    
    • 1
    • 2

    在这里插入图片描述
    然后就开始下载jetpack的默认配置环境,里面包括CUDA和cuDNN等。

    sdk-manager安装

    这个安装可前面安装JetPack系统操作类似,然后将板子上Micro USB通过数据线和电脑链接。
    在这里插入图片描述
    然后将Jetson SDk全选,然后转到第三步,下载这些软件并安装。等待完成后就可以配置CUDA的环境变量了。

    配置CUDA环境变量

    安装完成后,输入ncvv -V,发现并不能读取CUDA的版本,这是因为环境变量还没有配置
    输入gedit ~/.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}}
    
    • 1
    • 2

    更新环境变量配置

    source ~/.bashrc

    然后再输入nvcc -V,就可以看到CUDA的版本信息了。

    配置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
    
    • 1
    • 2

    修改文件权限,修改复制完的头文件与库文件的权限,所有用户都可读,可写,可执行:

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    测试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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果配置成功 测试完成后会显示:“Test passed!”。

    安装pytorch

    pytorch版本不能随意安装,必须安装英伟达编译的好的库文件,链接:https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048。
    选择对应jetpack版本的pytorch文件。
    在这里插入图片描述
    我的是5.0.2的,所以可以选择1.12.0版本的pytorch。点击链接然后下载。
    等待下载完成后,执行

    pip install torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl 
    
    • 1

    安装whl文件。

    安装vision 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 
    
    • 1
    • 2
    • 3

    下图是vision torchvision和pytorch的对应表
    在这里插入图片描述
    v1.12.0版本的pytorch对应v0.13.0版本的vision torchvision,所以执行命令:

    git clone --branch  v0.13.0 https://github.com/pytorch/vision torchvision
    
    
    • 1
    • 2

    获取vision torchvision,然后执行下面的命令安装

     python setup.py install --user 
    
    • 1

    安装jtop工具

    # 安装pip3
    sudo apt install python3-pip
    
    # 安装Jtop工具
    sudo -H pip3 install -U jetson-stats
    # 启动jtop
    sudo jtop
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    点击INFO在这里插入图片描述
    可以看到 CUDA、cdDNN、TensorRT的版本。

    TensorRT 状态查询

    dpkg -l | grep nvinfer
    
    • 1

    在这里插入图片描述

    安装ONNX

    sudo apt-get install protobuf-compiler libprotoc-dev
    pip install onnx
    
    • 1
    • 2

    安装python的TensorRT

    下载TensorRT,链接:https://developer.nvidia.com/nvidia-tensorrt-8x-download
    选择Arm版本的TensorRT
    在这里插入图片描述
    在下载栏中可以看到TensorRT的具体版本,这个版本和板子的上的TensorRT板子一致。
    在这里插入图片描述
    下载完成后,解压文件,然后在python文件夹中找到对应的版本。
    在这里插入图片描述
    将其复制到板子上安装。

  • 相关阅读:
    macOS Tor 在启动期间退出
    Week 5 Linear Models for Classification (Part A)
    音视频进阶教程-实现直播SEI补充增强信息
    《MySQL 数据库(二)》
    el-cascader级联选择器-懒加载+多选+回显功能
    CSS 取消input的上下箭头
    ClickHouse 创建数据库建表视图字典 SQL
    Vue2 测试解决方案
    【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架
    【Linux】进程概念与进程状态
  • 原文地址:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/128031135