Jetson Nano学习 之 Jetbot 篇——基于Jetson Nano镜像配置 jetbot

    xiaoxiao2022-07-07  207

    基于Jetson Nano的镜像配置jetbot

    文章目录

    基于Jetson Nano的镜像配置jetbot1. 烧录Jetson Nano镜像2. 设置i2c权限3.安装 pip 以及其他 python 依赖4. 安装 TensorFlow5. 安装 PyTorch6. 安装 traitlets7.安装 jupyter lab8.安装 jetbot repo9.配置 jetbot service10.添加 swapfile11. JetBot notebooks 复制到 home 路径下另附,直接烧录jetbot镜像

    本文记录自己烧录jetson nano镜像,逐步搭建Jetbot环境的过程。是自己的踩的坑,提供参考。依据的官方文档如下: https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Create-SD-Card-Image-From-Scratch

    1. 烧录Jetson Nano镜像

    参考Getting Started With Jetson Nano Developer Kit 我用的是其中windows下的方法。 注意:

    安装时使用的 username / password 为 jetbot / jetbot。(应该没有必要)设置成自动登录。(log in automatically)Ubuntu 软件源修改等步骤不赘述。

    2. 设置i2c权限

    $ sudo usermod -aG i2c $USER

    3.安装 pip 以及其他 python 依赖

    $ sudo apt-get update $ sudo apt install python3-pip python3-pil $ sudo pip3 install --upgrade numpy

    4. 安装 TensorFlow

    文档中给出的参考:TensorFlow For Jetson Platform 我的安装步骤如下:

    #Install HDF5 as required by TensorFlow: $ sudo apt-get install libhdf5-serial-dev hdf5-tools # Install pip3: $ sudo apt-get install python3-pip # Install the following packages: $ pip3 install -U pip $ sudo apt-get install zlib1g-dev zip libjpeg8-dev libhdf5-dev $ sudo pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker grpcio six mock requests gast h5py astor termcolor

    在Jetson Download Center中可以找到对应的TensorFlow的whl安装文件。 我下载的是tf_gpu-1.13.1+nv19.4-py3(安装时nv19.5还没有,编辑本文时刚出)。

    $ sudo pip3 install ~/Downloads/tensorflow_gpu-1.13.1+nv19.4-cp36-cp36m-linux_aarch64.whl

    5. 安装 PyTorch

    找不到文档中给出的(torch-1.0.0a0+18eef1d-cp36-cp36m-linux_aarch64.whl), 但顺着Jetson Nano的wiki找到了PyTorch for Jetson Nano—— PyTorch 1.1的安装指导。根据python3的方式:

    Chrome浏览器下载torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl https://nvidia.box.com/shared/static/veo87trfaawj5pfwuqvhl6mzc5b55fbj.whl 这一步是因为网络不好总是中断,索性先下载下来。

    $ sudo pip3 install ~/Downloads/torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl $ sudo pip3 install torchvision

    6. 安装 traitlets

    Install traitlets (master, to support the unlink() method)

    $ sudo python3 -m pip install git+https://github.com/ipython/traitlets@master

    7.安装 jupyter lab

    $ sudo apt install nodejs npm $ sudo pip3 install jupyter jupyterlab #不要添加--user参数 $ sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager $ sudo jupyter labextension install @jupyterlab/statusbar $ jupyter lab --generate-config $ jupyter notebook password #设置jupyter notebook密码

    8.安装 jetbot repo

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

    9.配置 jetbot service

    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

    这里使用了两个python脚本制作并添加了两个service,且设置成开机启动。 jetbot_stats.service 控制oled显示ip、cpu占用、内存占用等信息。 jetbot_jupyter.service 启动jupyter lab。 如果jetbot_jupyter.service出现问题则无法通过浏览器使用jupyter lab。 影响后面运行Examples。 这里可以使用 systemctl 相关命令验证 jetbot_jupyter、jetbot_stats 两个service 是否正常运行。

    # 列出所有加载失败的 Unit $ systemctl list-units --failed # 列出正在运行的 Unit $ systemctl list-units # 查看某个 Unit 的日志 $ sudo journalctl -u jetbot_jupyter.service # 实时滚动显示某个 Unit 的最新日志 $ sudo journalctl -u jetbot_jupyter.service -f

    10.添加 swapfile

    因为Jetson Nano只有4GB内存,很容易内存耗尽,导致进程被强制kill。 有必要添加swapfile,这里官方文档添加了4GB的swapfile。

    $ sudo fallocate -l 4G /var/swapfile #4G 即为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'

    也可以使用installSwapfile.sh脚本来创建, 参考:github.com/JetsonHacksNano/installSwapfile 本质操作完全一样。

    11. JetBot notebooks 复制到 home 路径下

    $ cp -r ~/jetbot/notebooks ~/Notebooks

    至此配置完成,重启即可。 oled灯会亮起。 可以跟着wiki Examples继续学习。

    另附,直接烧录jetbot镜像

    另外,直接烧录nvidia提供的已经配置好的jetbot镜像方法参考这个官方文档: https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Software-Setup 直接烧录的方法建议直接下载63GB版本的镜像,64GB本人的64G卡(SanDisk 64GB A1)提示空间不足。

    如有错误,还请指正。

    最新回复(0)