jetson nano环境搭建从零制作jetbot镜像(带2小时视频演示)

    安装新版本,风险大,很多情况是未知的,会出现很多错误,

    主要是库找不到,下载问题,版本匹配问题

    解决方法: 复制错误信息或描述问题,网上搜。 如果折腾后还不行,

     可用稳定的低版本,或用docker容器方式安装

     详细视频 见B站,或百家号等 同名视频

1.下载BSP镜像

    https://developer.nvidia.com/embedded/downloads

   -> 下载SD卡官方原始镜像jetback (用翻墙加迅雷下载快)

  JetPack是bsp板级支持包(即让板子能运行的完整最小系统)

  包括L4T(bootloader 内核,rootf) 和多媒体库(如cuda opengl等) 和自研AI库(如TensorRT)

   注:但不包括tensroflow pytorch jetbot等。

2.烧写镜像

   注:这里用的是2021.10.9号 jetson 官网最新镜像(版本 6.1)

   开始 -> balenaEtcher -> 选烧录镜像(如sd-blob-b01.img)

   -> 点Select drive 选SD卡 -> 点flash烧写 (20多分钟)  ->

   烧写好后,把SD卡插入到小车 插入鼠标 键盘,和hdm线接显示器后,上电

3.初始设置

   板子的第一次ubuntu启动界面,会要你进行一些初始设置,如语言,选中文简体
  你所在地点,wifi设置,和用户名密码。是否需密码登录等。
   其它不确定的,用它的默认设置即可
   进入ubuntu主页面后,打开浏览器测试一下能否上网,不能则重新设置一下wifi

   $ ifconfig  可查看当前电脑IP

   添加ubuntu国内源,加速

   $ sudo vim     /etc/apt/sources.list   替换为国内加速源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security multiverse

   $ sudo apt-get update   更新源

4.远程登录

 $ ssh yhbd@192.168.10.237  远程登录板子(注意用户名,和ip地址,要和板子的一致)
                           选yes,输入密码后登录
                          如果之前做过免密登录,登录新板子时,需把.ssh目录的文件都备份后,删除掉
                          注意:密钥登录,比较卡最好改为免密登录

$ mkdir .ssh  方便后面免密登录传输公钥文件 

免密登录:

新开一终端:      
$ ssh-keygen -t rsa  
生成Key私钥和公钥
$ ls ~/.ssh   发现有生成文件 私钥id_rsa 和 公钥id_rsa.pub 
$ cd ~/.ssh
$ scp id_rsa.pub yhbd@192.168.10.237:/home/yhbd/.ssh/authorized_keys

       上传公钥到板子  注意用户名 和ip要改为你的
        
 
以后ssh登录都不用再输密码了。    关键是,不卡了(因密钥登录检测比较多,会比较卡)

4.安装pytorch

 进论坛 https://forums.developer.nvidia.com/  里搜 pytorch 
 第三方整理网站 https://elinux.org/Jetson_Nano -> PyTorch 安装程序
 发现 Jetson 的 PyTorch - 1.9.0 版现已推出
 找支持JetPack 4.6 的最新版本下载  Python 3.6 - torch-1.9.0-cp36-cp36m-linux_aarch64.whl 
和安装描述           
 版本匹配问题: https://github.com/pytorch/vision 
        PyTorch - 1.9.0  需配对 0.10.0 torchvision

$ cd ~/env
$ sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
$ pip3 install Cython     --timeout=3600

       如果还是非常慢 ,需更改Ubuntu源,用国内镜像代理网站加速
       换源后还慢,可设置超时3600秒,避免超时退出

$ pip3 install numpy torch-1.9.0-cp36-cp36m-linux_aarch64.whl  --timeout=3600  

     安装要20分钟左右

5.安装torchvision(0.10.0)

$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
注:因安装版本较新 不能采用sudo pip3 install torchvision 方式安装
$ git clone --branch 0.10 https://github.com/pytorch/vision torchvision 
如果直接下载不了 torchvision,可用已下载好的(通过网页板下载 0.10版的zip)
切换到本地电脑的终端 上传
$ scp vision-release-0.10.zip yhbd@192.168.10.237:/home/yhbd/env
再切换到板子终端

$ unzip vision-release-0.10.zip
$ cd     vision-release-0.10
$ export BUILD_VERSION=0.10.0    
$ python3 setup.py install --user  

     通过源码的脚本 安装torchvision  时间40多分钟
      中途卡在一个地方比较久,可以Ctrl +C 终止,重新再运行命令,它会接着前面继续往下编译
  异常:Download  https://pypi.org/simple/pillow/  下载失败
  自己去 https://pypi.org/simple/pillow/ 下载Pillow-8.4.0.tar.gz 离线包
   $ tar -xvf Pillow-8.4.0.tar.gz
   $ cd Pillow-8.4.0   看里面Readme  -> 找到安装说明
   $ python3 setup.py install
   安装成功后在重新运行 python3 setup.py install --user 就能安装成功了

6.验证

$ python3
>>> import torch
>>> print(torch.__version__)
1.9.0
>>> import torchvision
>>> print(torchvision.__version__)
0.10.0

7.安装jetbot

参考 https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Create-SD-Card-Image-From-Scratch    
$ sudo usermod -aG i2c $USER //启用 i2c 权限 -> oled屏显示ip等
$ pip3 install traitlets --timeout=3600

创建swapfile -》避免内存耗尽
$ sudo fallocate -l 4G /var/swapfile    

    设置交换文件的大小为4G,当内存不够用时,会把它看成内存的交换文件
$ 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'

 8.安装 jupyter lab

$ sudo apt install nodejs npm    
$ sudo pip3 install jupyter jupyterlab  
安装jupyter
   问题: 下载太慢,用新的源地址
   解决: sudo pip3 install jupyter jupyterlab -i https://pypi.tuna.tsinghua.edu.cn/simple
   报错: Did not find libzmq via pkg-config
   $ sudo apt-get install libzmq3-dev
   报错: _cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
   $ sudo apt-get install libffi-dev

   问题:安装时间长,超时了,加--timeout=3600 ,可以重新运行试试
   问题:下载慢,终止,重新运行几次试试,可能某次连接会较快
   问题:如果板子死机ssh断开,
       如 ssh: connect to host 192.168.10.237 port 22: Connection refused
       则重启板子,重联

   
$ sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager

   安装需20多分钟
   报错:ValueError: Please install nodejs >=12.0.0 before continuing.
   解决:安装最新版的node  
       https://nodejs.org/en/download/ 下载 ARMv8版  因 jetson nand 用CPU 是ARM  Cortex-A57  (64位ARMv8-A架构)
       $ tar -xvf node-v14.18.1-linux-arm64.tar.xz
       $ sudo ln -s /home/yhbd/env/node-v14.18.1-linux-arm64/bin/npm /usr/local/bin/
       $ sudo ln -s /home/yhbd/env/node-v14.18.1-linux-arm64/bin/node /usr/local/bin/

   
     
$ sudo jupyter labextension install @jupyterlab/statusbar  
安装需5分钟
$ jupyter lab --generate-config
$ jupyter notebook password 
输入密码 yhai

9.源码安装 jetbot

$ sudo apt install python3-smbus
$ git clone https://github.com/NVIDIA-AI-IOT/jetbot  
下载jetbot源码
$ cd jetbot
$ sudo apt-get install cmake
$ sudo python3 setup.py install 

   报错:
   ssd_tensorrt/FlattenConcat.cpp:277:58: error: invalid new-expression of abstract class type ‘FlattenConcat’
   build.make:62: recipe for target 'jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/FlattenConcat.cpp.o' failed
   setuptools>=42 is required for pyproject.toml configuration support
   ERROR: setuptools==39.0.1 is used in combination with setuptools_scm>=6.x

   Your build configuration is incomplete and previously worked by accident!

   注: 没精力查,可暂时跳过,但需记录,可能埋下雷,

10. 安装 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

     启动 jetbot_stats 服务
      systemctl:管理Linux的系统服务的命令(替代service: 串行启动 慢)

$ 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    
$ cd ..
$ cp -rf notebooks/ ~/  拷贝jetbot的测试示例程序 到主目录,方便使用

验证
网页登录 http://192.168.10.237:8888/ 输入密码yhai
打开 notebooks/basic_motion/basic_motion.ipynb

逐步运行,发现能控制小车,表示基本成功 注意小车电源开关要打开哦

  如果还有问题看 详细视频 见B站,或百家号等 同名视频

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值