Jetson Nano - 自己动手搭建Jetbot环境

Jetson Nano - 自己动手搭建Jetbot环境

1. 烧JetPack镜像SD卡

1)根据官方的Jetson Nano Developer Kit 指引下载镜像,并录制到SD卡 · 使用账户密码为 Jetbot / Jetbot · 确定系统是自动登录(免输入账户密码) · 插入SD卡到Jetson Nano主板,开机

2)进入Terminal输入代码 开机进入界面后,按快捷键进入Terminal Ctrl + Alt + T

3)启动 i2c 权限

// Enable i2c permissions
sudo usermod -aG i2c $USER;

2. 安装pip3、Python依赖项

// Install pip and some python dependencies
sudo apt-get update
sudo apt install python3-pip python3-pil
sudo pip3 install -U pip
sudo pip3 install -U numpy==1.16.1 future==0.17.1 mock==3.0.5 h5py==2.9.0 keras_preprocessing==1.0.5 keras_applications==1.0.6 enum34 futures testresources setuptools protobuf
sudo pip3 install --upgrade numpy

3. 安装TensorFlow

安装TensorFlow所需的系统包

// Install system packages required by TensorFlow
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev

正式开始安装TensorFlow

// Installing TensorFlow
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu

验证是否安装成功: 打开Terminal,输入Python3运行,再输入

import tensorflow

如果没有报错,代表TensorFlow成功安装并运行

4. 安装 PyTorch

1)下载PyTorch的安装文件whl 超链接需翻过去下载(主编另找时间上传到百度网盘供大家直接下载) 2)Scp安装文件 通过Scp方式将文件传到Jetson Nano的用户名录下/home/jetbot

// Installing PyTorch
sudo pip3 install torch-1.0.0a0+18eef1d-cp36-cp36m-linux_aarch64.whl
sudo pip3 install torchvision

5. 安装Traitlets

// Install traitlets (master, to support the unlink() method)
sudo python3 -m pip install git+https://github.com/ipython/traitlets@master

6. 安装Jupyter Lab

// Install jupyter lab
sudo apt install nodejs npm
sudo pip3 install jupyter jupyterlab
sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager
// Install jupyter lab
sudo jupyter labextension install @jupyterlab/statusbar

出现以上报错,忽略,继续以下

jupyter lab --generate-config
jupyter notebook password
// 设置一个密码
cd 
cd .jupyter
sudo nano jupyter_notebook_config.py

移到最后一行,添加以下内容到config

c.NotebookApp.allow_origin = ’*’ c.NotebookApp.ip = ‘0.0.0.0’

7. 安装这个repo

cd
sudo apt install python3-smbus

//将Jetbot这项目从Github克隆下来
git clone https://github.com/NVIDIA-AI-IOT/jetbot

cd jetbot
sudo apt-get install cmake
sudo python3 setup.py install

8. 安装Jetbot服务

cd jetbot/utils
python3 create_stats_service.py
sudo mv jetbot_stats.service /etc/systemd/system/jetbot_stats.service
sudo systemctl enable jetbot_stats
sudo systemctl start jetbot_stats
python3 create_jupyter_service.py
sudo mv jetbot_jupyter.service /etc/systemd/system/jetbot_jupyter.service
sudo systemctl enable jetbot_jupyter
sudo systemctl start jetbot_jupyter

9. 创建文件交换

sudo fallocate -l 4G /var/swapfile
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'

10. 复制JetBot notebooks到home文件下

cp -r ~/jetbot/notebooks ~/Notebooks

11. 常见问题排查

11.1 TensorFlow安装失败

症状

ERROR: Could not find a version that satisfies the requirement tensorflow-gpu

解决方案

  • 确认使用正确的索引URL:https://developer.download.nvidia.com/compute/redist/jp/v42
  • 检查JetPack版本是否匹配(Jetson Nano需要JP4.2+)
  • 尝试使用较旧版本:sudo pip3 install tensorflow==1.15.0+nv20.06

11.2 PyTorch安装链接失效

备选方案: 从官方NVIDIA仓库直接安装:

sudo pip3 install --pre torch torchvision torchaudio --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42

11.3 Jupyter Lab扩展安装失败

症状:出现节点版本不兼容错误

解决方案

# 安装兼容的nodejs版本
sudo apt install -y nodejs=12.* npm
# 或使用nvm管理node版数
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install 12

11.4 系统服务启动失败

检查服务日志

sudo journalctl -u jetbot_stats.service -f
sudo journalctl -u jetbot_jupyter.service -f

常见原因

  • 路径错误:确认脚本在正确目录
  • 权限问题:确保服务文件有正确权限
  • 依赖缺失:检查所需Python包是否安装

12. 验证安装是否成功

12.1 测试核心功能

# 测试I2C
sudo i2cdetect -y -r 1

# 测试TensorFlow
python3 -c "import tensorflow as tf; print(tf.__version__); print('GPU Available:', tf.test.is_gpu_available())"

# 测试PyTorch
python3 -c "import torch; print(torch.__version__); print('CUDA Available:', torch.cuda.is_available())"

# 测试Jetbot基本功能
python3 -c "import jetbot; print('Jetbot imported successfully')"

12.2 运行官方示例

cd ~/jetbot
# 运行基础运动控制示例
python3 notebooks/motion_control/motion_control.ipynb

# 运行物体跟踪示例(需摄像头)
python3 notebooks/collision_avoidance/collision_avoidance.ipynb

13. 性能优化建议

13.1 内存管理

Jetson Nano只有4GB内存,建议:

  • 监控内存使用:htopfree -h
  • 关闭不必要的服务:sudo systemctl disable snapd.service
  • 使用轻量级替代方案:考虑使用TensorFlow Lite而非全版TensorFlow

13.2 存储优化

  • 扩展swap空间(已在第9步完成)
  • 定期清理缓存:sudo apt clean && sudo pip cache purge
  • 考虑使用USB 3.0 SSD作为主存储提升IO性能

13.3 电源管理

  • 使用官方5V/4A电源适配器
  • 避免通过USB供电,可能导致电压不足
  • 添加散热片或小风扇防止降频

14. 替代安装方案

14.1 使用Docker容器

避免直接在系统上安装复杂依赖:

# 拉取NVIDIA官方Jetson容器
docker pull nvcr.io/nvidia/l4t-base:r32.4.3

# 运行带GUI的容器
docker run --runtime nvidia -it --rm \
    --net=host --env=DISPLAY=$DISPLAY \
    --volume=/tmp/.X11-unix:/tmp/.X11-unix:rw \
    nvcr.io/nvidia/l4t-base:r32.4.3

14.2 使用Jetson Nano官方镜像

NVIDIA提供预装JetPack的SD卡镜像:

  • 包含所有驱动和基础工具
  • 减少手动配置步骤
  • 适合快速开始开发

下载地址:https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write

15. 维护与更新

15.1 定期更新系统

sudo apt update && sudo apt upgrade -y
sudo pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 sudo pip3 install -U

15.2 备份环境

导出已安装的Python包列表:

pip3 freeze > requirements.txt

恢复环境:

pip3 install -r requirements.txt

15.3 清理无用文件

# 清理apt缓存
sudo apt autoclean
# 清理pip缓存
sudo pip cache purge
# 清理旧内核(谨慎操作)
sudo apt autoremove --purge

16. 常见错误及解决方法

错误信息可能原因解决方案
ImportError: No module named 'tensorflow'TensorFlow未正确安装重新执行TensorFlow安装步骤
OSError: libcudart.so.10.0: cannot open shared object fileCUDA库路径问题添加 /usr/lib/aarch64-linux-gnu/etc/ld.so.conf.d/
jupyter labextension install: command not foundNode.js未安装或版本过低安装Node.js 12+
Permission denied: '/root/.local'权限问题使用sudo或调整文件所有权
jetbot command not found未正确安装jetbot包重新运行 sudo python3 setup.py install

17. 进阶开发建议

17.1 使用虚拟环境

避免包冲突:

# 创建虚拟环境
python3 -m venv jetbot_env
source jetbot_env/bin/activate
# 在虚拟环境中安装依赖

17.2 交叉编译加速

对于经常需要编译的项目,考虑:

  • 使用更强大的主机机器进行交叉编译
  • 利用Jetson Nano的PCIe扩展(如通过M.2接口添加NVMe SSD)
  • 利用Jetson GPU加速某些计算任务

17.3 社区资源

18. 总结

搭建Jetbot开发环境虽然步骤较多,但每一步都是为了确保硬件和软件能够充分发挥Jetson Nano的性能。通过本文的详细指南,您应该能够:

✅ 成功安装JetPack及所有必要依赖
✅ 配置I2C、显示器及网络等基础功能
✅ 安装TensorFlow、PyTorch及其他机器学习框架
✅ 部署Jetbot机器人软件栈
✅ 设置系统服务实现开机自启
✅ 验证所有组件正常工作
✅ 排查常见问题并进行性能优化

记住:环境搭建只是开始,真正的乐趣在于基于这个平台进行创新开发。无论是智能小车、视觉识别系统还是边缘计算应用,Jetson Nano都为您提供了强大的计算平台和丰富的生态支持。

祝您玩转Jetson Nano,开发出令人惊叹的项目! — — 完 — """