Jetson配置

包含系统烧录JetPack、Pytorch配置等
我的设备为:Jetson Orin Nano 4GB

进入恢复模式

  1. 拔出板子上的所有外接线材
  2. 找到 FC_REC 和 GND,将板子的接口一侧朝向自己,我的设备上它们位于上方的边缘处(在风扇的垂直下方)
  3. 将它们短接(推荐使用跳线帽)
  4. 用一根高质量的type-C线将Jetson与宿主机相连
  5. 插上电源
  6. 在宿主机上检查是否连接
    • 宿主机为Windows:设备管理器中查找"APX"
    • 宿主机为Linux:lsusb查找"APX"

SDK Manager

我选择的安装方式为SDK Manager

推荐使用VMware虚拟机安装Ubuntu,我使用WSL2和Docker都踩了很多坑,综合而言VMware虚拟机安装是最方便的
安装的Ubuntu版本不可随意,这是部分对照表(截至2025-01-07):

Ubuntu版本 JetPack版本
2204/2404 6.1
2004/2204 6.0
1804/2004 5.1.4
1804/2004 5.1.3
1804/2004 5.1.2

如果要安装较旧的版本,请使用sdkmanager --archived-versions

安装时请不要挂机,注意报错,可能需要安装软件包,或者Jetson掉线
对于Jetson连接问题:

  1. 虚拟机设置中的USB设置,使用USB3.1标准
  2. 检查电脑的USB接口,优先使用其中的USB3.0及以上的接口
  3. 刷写过程中会频繁的掉线重连,请注意输出。有时候掉线后不会自动重连,注意VMware界面右下角,检查是否有"APX",如果有,请点击它并将其连接到虚拟机

RTL8821CE驱动

git clone https://github.com/lwfinger/rtw88.git
cd rtw88
make
sudo make install

配置Pytorch必看

如果要安装ultralytics

请在安装Pytorch前安装它,否则它会认为你已有的pytorch不兼容而直接安装cpu版本的Pytorch和TorchVision

Jetson无法使用普通的Pytorch

请查阅:Nvidia官方的torch手册
重点在这:
https://developer.download.nvidia.com/compute/redist/jp/v$JP_VERSION/pytorch/$PYT_VERSION

其中:
JP_VERSION
The major and minor version of JetPack you are using, such as 461 for JetPack 4.6.1 or 50 for JetPack 5.0.
PYT_VERSION
The released version of the PyTorch wheels, as given in the Compatibility Matrix

我建议先点进这里看看

import torch提示缺少libcusparseLt.so.0

请查阅:Pytorch论坛上对于:ImportError: libcusparseLt.so.0: cannot open shared object file: No such file or directory的解决方案

编译Torchvision

Torchivision官方仓库,选择与自己Pytorch版本对应的,该仓库页有说明

下载完成解压后进入目录 安装依赖包

  1. sudo apt-get install libopenblas-base libopenmpi-dev
  2. 在虚拟环境下安装pip install Cython
  3. 这里选择自己的版本export BUILD_VERSION=0.13.0
  4. 编译过程很漫长 会报warning 但是不用介意python setup.py install
  5. 等待编译完成

添加交换内存并设置为开机自动挂载

Jetson的内存较小,经常会出现内存不足的情况。扩展交换内存可以减缓这一问题

  • 添加交换内存
    sudo fallocate -l 8G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    free -h
  • 开机挂载
    sudo nano /etc/fstab
    末尾添加:/swapfile none swap sw 0 0
    sudo chmod 600 /swapfile
    sudo mount -a
    sudo swapon --all
    swapon --show
    free -h