Jetson Nano 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内存,建议:
- 监控内存使用:
htop或free -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 file | CUDA库路径问题 | 添加 /usr/lib/aarch64-linux-gnu 到 /etc/ld.so.conf.d/ |
jupyter labextension install: command not found | Node.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 社区资源
- 官方论坛:https://forums.developer.nvidia.com/
- Jetbot GitHub:https://github.com/NVIDIA-AI-IOT/jetbot
- Jetson项目集合:https://github.com/JetsonHacksNano
- 教程视频:NVIDIA官方YouTube频道
18. 总结
搭建Jetbot开发环境虽然步骤较多,但每一步都是为了确保硬件和软件能够充分发挥Jetson Nano的性能。通过本文的详细指南,您应该能够:
✅ 成功安装JetPack及所有必要依赖
✅ 配置I2C、显示器及网络等基础功能
✅ 安装TensorFlow、PyTorch及其他机器学习框架
✅ 部署Jetbot机器人软件栈
✅ 设置系统服务实现开机自启
✅ 验证所有组件正常工作
✅ 排查常见问题并进行性能优化
记住:环境搭建只是开始,真正的乐趣在于基于这个平台进行创新开发。无论是智能小车、视觉识别系统还是边缘计算应用,Jetson Nano都为您提供了强大的计算平台和丰富的生态支持。
祝您玩转Jetson Nano,开发出令人惊叹的项目! — — 完 — """