文章目录
- 前言
- 一、烧录系统镜像
- 1. 下载JetPack4.4
- 2. 烧录
- 3.链接显示器启动系统
- 4. 配置Samba服务器
- 5. 通过Samba共享文件
- 二、安装Jetbot
- 1.克隆代码库
- 2. 配置操作系统
- 3. 构建docker容器
- 4. 启动容器
- 5. 禁用容器
- 6. 相机问题解决
- 总结
前言
目前,JetBot的官方环境有两种安装方式
- SD卡镜像安装
- Docker安装
由于官方镜像存放在谷歌云盘,国内无法下载,所以顺利成章的选择Docker安装。
参考资料:
官方文档地址:jetbot.org/v0.4.3/index.html 官方代码库:https://github.com/NVIDIA-AI-IOT/jetbot
一、烧录系统镜像
1. 下载JetPack4.4
鉴于目前Docker安装方式仅支持JetPack4.4
因此下载以下版本 https://developer.nvidia.com/jetpack-sdk-44-archive
如果遇到网络不好的情况,可以移步到我的网盘下载:
链接:https://pan.baidu.com/s/1_mT8Q1w-29Ehv1ZTzYzCYA
提取码:sm5p
2. 烧录
使用balenaEtcher烧录SD卡镜像
3.链接显示器启动系统
需要一些简单的配置、语言、用户名、密码等
更新系统安装源
sudo apt-get update
更新软件
sudo apt-get upgrade
4. 配置Samba服务器
1. sudo apt-get install samba samba-common-bin
2. sudo vim /etc/samba/smb.conf
追加以下内容:
[nano]
path = /home/nano/
valid users = nano
browseable = yes
public = yes
writable = yes
3. 重启samba服务器
sudoo samba restart
4. 修改密码
sudo smbpasswd -a nano
5. 通过Samba共享文件
在windows资源管理器中输入路径\\IP地址,然后根据提示输入用户名密码,然后就可以当成本地磁盘使用了。
二、安装Jetbot
1.克隆代码库
git clone http://github.com/NVIDIA-AI-IOT/jetbot.git
如果网络下载比较慢的话,可以打开网页,使用迅雷下载,解压后通过samba导入进去。如果文件没有可执行权限,可以在shell中添加
chmod -R +x ./jetbot
2. 配置操作系统
配置电源模式
cd jetbot
./scripts/configure_jetson.sh
配置环境变量
cd docker
source configure.sh
以上命令禁用了桌面,如果需要,可以手动打开
sudo systemctl set-default graphical.target
配置docker运行环境
./set_nvidia_runtime.sh
设置jupyter运行环境
export JETBOT_JUPYTER_MEMORY=500m
export JETBOT_JUPYTER_MEMORY_SWAP=3G
3. 构建docker容器
直接调用build脚本构建
./build.sh
报错如下:
build构建脚本内容如下:
cd base && ./build.sh && cd ..
cd models && ./build.sh && cd ..
cd display && ./build.sh && cd ..
cd jupyter && ./build.sh && cd ..
cd camera && ./build.sh && cd ..
尝试分开构建,首先是base
cd base
./build.sh
依然报错,尝试在shell直接运行build.sh中的命令
sudo docker build \
--build-arg BASE_IMAGE=$JETBOT_BASE_IMAGE \
-t $JETBOT_DOCKER_REMOTE/jetbot:base-$JETBOT_VERSION-$L4T_VERSION \
-f Dockerfile \
../..
中途可能会遇到网络问题导致卡住或者报错,重新输入命令多试几次,大概率能好。如果还是有问题,可以按照我下面的方法解决。
问题1:下载TensorFlow遇到问题,服务器无法访问。
在英伟达官方下载中心找到了相同的版本,更改base/Dockfile中的如下内容
#ARG TENSORFLOW_URL=https://nvidia.box.com/shared/static/rummpy6q1km1wivomalpkwt2jy28mndf.whl
#ARG TENSORFLOW_WHL=tensorflow-1.15.2+nv-cp36-cp36m-linux_aarch64.whl
ARG TENSORFLOW_URL=https://developer.download.nvidia.cn/compute/redist/jp/v44/tensorflow/tensorflow-1.15.2+nv20.6-cp36-cp36m-linux_aarch64.whl
ARG TENSORFLOW_WHL=tensorflow-1.15.2+nv20.6-cp36-cp36m-linux_aarch64.whl
问题2: github代码库下载问题
git clone https://github.com/NVIDIA-AI-IOT/torch2trt
github代码库间歇性访问不上,目前CSDN加速计划提供了部分github代码库的镜像,每天更新一次。根据github的地址,生成镜像站 网页地址
如果网页能打开,说明已经包含对应的镜像
git clone
base/DockerFile文件中做如下修改:
# =================
# INSTALL TORCH2TRT
# =================
ENV TORCH2TRT_REPO_DIR=/opt/
RUN cd ${TORCH2TRT_REPO_DIR} && \
git clone && \
cd torch2trt && \
python3 setup.py install
# RUN cd ${TORCH2TRT_REPO_DIR} && \
# git clone https://github.com/NVIDIA-AI-IOT/torch2trt && \
# cd torch2trt && \
# python3 setup.py install
修改完毕后,再次输入构建命令完成安装。
回到docker目录下,打开build.sh文件,注释第一行
#cd base && ./build.sh && cd ..
cd models && ./build.sh && cd ..
cd display && ./build.sh && cd ..
cd jupyter && ./build.sh && cd ..
cd camera && ./build.sh && cd ..
构建其余模块
./build.sh
构建完毕后,通过docker images命令查看已安装镜像
docker images
如果报错说没有权限,则需要将用户加入docke用户组,命令重启生效
sudo usermod -aG docker XXXX
4. 启动容器
进入docker目录下, 查看启动脚本
source configure.sh
JUPYTER_WORKSPACE=${1:-$HOME} # default to $HOME
JETBOT_CAMERA=${2:-opencv_gst_camera} # default to opencv
if [ "$JETBOT_CAMERA" = "zmq_camera" ]
then
./camera/enable.sh
fi
./display/enable.sh
./jupyter/enable.sh $JUPYTER_WORKSPACE $JETBOT_CAMERA
启动命令如下:
./enable.sh $HOME
5. 禁用容器
./disable.sh
6. 相机问题解决
首先禁用容器
./disable.sh
重新启用容器
JETBOT_CAMERA = zmq_camera ./enable.sh $HOME
替换notebook中的相机代码
from jetbot.camera.zmq_camera import ZmqCamera
camera = ZmqCamera()
总结
通过Docker部署软件步骤比较简洁,如果不愿意使用Docker,我也会在最近整理一份最新的手动制作JetBot镜像的方法。