安装新版本,风险大,很多情况是未知的,会出现很多错误,
主要是库找不到,下载问题,版本匹配问题
解决方法: 复制错误信息或描述问题,网上搜。 如果折腾后还不行,
可用稳定的低版本,或用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站,或百家号等 同名视频