拿到Jetson Nano开发板的第一件事,就是给它装上一个干净的操作系统。Jetpack4.6相当于NVIDIA为Jetson系列量身定制的"全家桶",包含了CUDA、cuDNN、TensorRT等核心组件。我建议直接从官网下载SD卡镜像,这样能避免后续各种依赖库版本冲突的坑。
镜像烧录其实很简单,但新手常在这里翻车。推荐使用balenaEtcher这个工具,它支持Windows/Mac/Linux三平台,操作界面就三个按钮:选择镜像、选择SD卡、开始烧录。记得先用SD Card Formatter彻底清空你的microSD卡(建议至少32GB容量),不然可能会出现莫名其妙的启动问题。
烧录完成后插卡开机,你会看到一个Ubuntu 18.04的桌面环境。先别急着装软件,这时候要做三件重要的事:
sudo ./flash.sh命令,把剩余未分配的SD卡空间利用起来/etc/apt/sources.list文件,把默认源替换成清华或阿里云的镜像源(具体操作后面会讲).bashrc文件末尾添加这几行:bash复制export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
在x86电脑上装PyTorch直接pip install就行,但Jetson Nano用的是ARM架构处理器,必须安装NVIDIA专门编译的版本。经过实测,Jetpack4.6对应的是PyTorch 1.7.0+TorchVision 0.8.1这个组合最稳定。
安装过程分三步走:
bash复制# 先装依赖库
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libjpeg-dev zlib1g-dev
# 下载预编译的PyTorch wheel包(注意这个链接可能会更新)
wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.7.0-cp36-cp36m-linux_aarch64.whl
# 安装PyTorch和依赖
pip3 install numpy torch-1.7.0-cp36-cp36m-linux_aarch64.whl
TorchVision需要从源码编译,这里有个小技巧:先用国内镜像克隆仓库能省不少时间:
bash复制git clone --branch v0.8.1 https://gitee.com/mirrors/vision torchvision
cd torchvision
export BUILD_VERSION=0.8.1
python3 setup.py install --user
编译过程大概要20-30分钟,期间Jetson Nano的风扇会狂转,这是正常现象。完成后可以跑个简单测试:
python复制import torch
print(torch.__version__) # 应该输出1.7.0
print(torch.cuda.is_available()) # 应该返回True
ROS在机器人开发中的地位不用多说,但在ARM设备上安装确实麻烦。Jetpack4.6基于Ubuntu 18.04,正好对应ROS Melodic版本。安装时建议按这个顺序操作:
首先配置软件源:
bash复制sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
然后安装核心包(这里推荐桌面完整版):
bash复制sudo apt update
sudo apt install ros-melodic-desktop-full
环境变量配置很容易被忽略,建议同时更新.bashrc和.zshrc(如果你用zsh的话):
bash复制echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc
source ~/.bashrc
验证安装是否成功:
bash复制roscore & # 后台启动ROS核心
rosrun turtlesim turtlesim_node # 应该能看到小乌龟界面
到这里基本环境已经搭好了,但还有几个性能优化的关键点:
内存管理:
Jetson Nano只有4GB内存,编译大项目时经常爆内存。我的解决方案是创建6GB的swapfile:
bash复制sudo fallocate -l 6G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效需要写入/etc/fstab
散热控制:
长时间高负载运行需要调整风扇策略,安装jetson-stats工具:
bash复制sudo pip3 install jetson-stats
sudo jtop # 可视化监控工具
版本兼容性:
这是最容易出问题的地方,特别提醒:
最后分享一个实用技巧:所有安装命令建议保存成shell脚本,下次重装系统时就能一键部署。我在实际项目中总结的完整安装脚本大概200行左右,包含错误处理和日志记录,可以节省大量重复劳动时间。