本文记录自己烧录jetson nano镜像,逐步搭建Jetbot环境的过程。是自己的踩的坑,提供参考。依据的官方文档如下: https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Create-SD-Card-Image-From-Scratch
参考Getting Started With Jetson Nano Developer Kit 我用的是其中windows下的方法。 注意:
安装时使用的 username / password 为 jetbot / jetbot。(应该没有必要)设置成自动登录。(log in automatically)Ubuntu 软件源修改等步骤不赘述。文档中给出的参考: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找不到文档中给出的(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 torchvisionInstall traitlets (master, to support the unlink() method)
$ sudo python3 -m pip install git+https://github.com/ipython/traitlets@master这里使用了两个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因为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 本质操作完全一样。
至此配置完成,重启即可。 oled灯会亮起。 可以跟着wiki Examples继续学习。
另外,直接烧录nvidia提供的已经配置好的jetbot镜像方法参考这个官方文档: https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Software-Setup 直接烧录的方法建议直接下载63GB版本的镜像,64GB本人的64G卡(SanDisk 64GB A1)提示空间不足。
如有错误,还请指正。