NVIDIA Jetson Jetson Nano刷机+ROS安装+深度学习配置

.NVIDIA Jetson Jetson Nano刷机+ROS安装+深度学习配置

V1.0.0 – by Holden

Date : 2021-10-22

1. Jetson Nano 简介

​ NVIDIA 在2019年NVIDIA GPU技术大会(GTC)上发布了Jetson Nano开发套件,这是一款售价99美元的计算机,现在可供嵌入式设计人员,研究人员和DIY制作商使用,在紧凑,易用的平台上提供现代AI的强大功能。完整的软件可编程性。Jetson Nano采用四核64位ARM CPU和128核集成NVIDIA GPU,可提供472 GFLOPS的计算性能。它还包括4GB LPDDR4存储器,采用高效,低功耗封装,具有5W / 10W功率模式和5V DC输入;

​ Nano按照内存划分为两种,左边是4GB型号,右边是2GB型号,如下图所示(当然,4GB也有两种,但是外观一致);

​ 本文章使用的是Jetson Nano 4GB版本

在这里插入图片描述

​ 完全兼容这些框架和NVIDIA领先的AI平台,可以比以往更轻松地将基于AI的推理工作负载部署到Jetson。Jetson Nano为各种复杂的深度神经网络(DNN)模型提供实时计算机视觉和推理。这些功能支持多传感器自主机器人,具有智能边缘分析的物联网设备和先进的AI系统。甚至转移学习也可以使用ML框架在Jetson Nano上本地重新训练网络。
在这里插入图片描述
在这里插入图片描述

​ 更多介绍可以查看官方网站: https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#intro

2. Jetson Nano刷机介绍

开题说明,一切以官方的刷机教程为准,任何问题,只有官方可以给你最权威的解答!!!

2.1 工具准备工作

  • 由于Jetson Nano 没有内置硬盘,所以需要安装一张TF卡作为硬盘使用,TF卡建议买64G的,32G也能够使用,但是刷机完成之后剩余空间就比较小了。
  • 准备一块读卡器,用来PC跟TF卡的烧录使用。
  • 准备一台带有Ubuntu系统的PC;Windows系统也可以使用,本文不做Windows方面流程介绍!!!

2.2 下载镜像以及烧录工具

在这里插入图片描述

​ 点击下载需要登录Nvidia的账号,如果没有需要注册账号才能下载,建议使用外网下载

​ 文件大小大概6.5G左右,附上我已经下载好的百度云链接:

4GB内存镜像–>链接: https://pan.baidu.com/s/1E3ybUCxzxqSNZAHjdvqJaA 密码: lg43

2GB内存镜像–>链接: https://pan.baidu.com/s/1dCqKd2Hjp6mXz5X2tJ24Zg 密码: l6lw

  $ ./balenaEtcher-1.5.122-x64.AppImage

2.3 烧录原生镜像到TF卡

将TF卡插入到读卡器,并插入到电脑主机的USB口,进行以下步骤;

1、点击Flash form file选择刚才下载好的SD Card Image压缩包

在这里插入图片描述

2、点击select target选择要烧录到的TF卡(有的也会自动识别TF卡),点击Flash

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、需要输入电脑主机密码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4、烧录成功

在这里插入图片描述

2.4 开机启动

​ 将烧录好的TF卡插入到Jetson Nano开发板上,连接好鼠标、键盘、显示器、最后连接电源,启动开发板;

能看到初次进入界面,安装引导直接Next就行;

在这里插入图片描述

2.5 深度学习组件配置

原生镜像会默认安装了cuda、cudnn等,系统安装后需要进行以下配置:

[1] .导出cuda路径到bashrc

export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin

[2] .安装ROS(melodic 版本)

参考ROS 官方安装教程:http://wiki.ros.org/cn/melodic/Installation/Ubuntu

3. 镜像克隆制作

[1] 当我们在 Jetson Nano开发板上安装了各种工程以及各种环境后,需要进行新的镜像导出,以下为导出方法;

[2] 将TF卡取出并插入读卡器,将读卡器插入Ubuntu 主机。

[3] 在主机上新开一终端,并输入如下指令查看SD卡的分区名。

$ sudo fdisk -u -l

​ 显示如下,我的TF卡分区为/dev/sdc

Disk /dev/sdc: 29.2 GiB, 31312576512 bytes, 61157376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B81CC800-DEB8-47E1-A23C-04D0D166A06A

Device     Start      End  Sectors  Size Type
/dev/sdc1  28672 61155327 61126656 29.2G Linux filesystem

[4] 重新打开一个终端输入如下指令,这样就会在~/目录下生成镜像文件Jetson-Nano.img.gz

$ sudo dd if=/dev/sdc conv=sync,noerror bs=4M | gzip -c > Jetson-Nano.img.gz

​ 运行以下指令可以查看克隆进度

$ sudo pkill -USR1 -n -x dd

在这里插入图片描述

克隆成功会在~/目录下生成镜像文件

在这里插入图片描述

4. 镜像重烧写

[1] 当我们在第4小节中导出新的镜像后需要导入到新的Jetson Nano,以下是导入方法;!!!注意,一定是同个型号的Jetson Nano!!!

[2] 将需要烧写的TF卡通过读卡器插入Ubuntu 主机,TF卡必须大于32G,并进行格式化!!!

[3] 在主机上新开一终端,并输入如下指令查看SD卡的分区名。

$ sudo fdisk -u -l

​ 显示如下,我的TF卡分区为/dev/sdc

Disk /dev/sdc: 29.2 GiB, 31312576512 bytes, 61157376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B81CC800-DEB8-47E1-A23C-04D0D166A06A

Device     Start      End  Sectors  Size Type
/dev/sdc1  28672 61155327 61126656 29.2G Linux filesystem

[4] 烧写镜像到TF卡

$ sudo -s
$ gunzip -c Jetson-Nano.img.gz | dd of=/dev/sdc bs=4M

同样重新打开一个终端,运行以下指令可以查看烧录进度

$ sudo pkill -USR1 -n -x dd

在这里插入图片描述

将烧录成功的TF卡插入到新的Nano,接上电源启动;

5. Jetson Nano调控命令

1.调控Jetson Nano风扇PWM

$ sudo sh -c 'echo 140 > /sys/devices/pwm-fan/target_pwm'  ##140代表调节PWM(0-255)

2. 安装jtop,查看各种GPU、CPU 等各种指标占用

首先安装支持环境包

$ sudo apt-get install git cmake
$ sudo apt-get install python3-dev
$ sudo apt-get install libhdf5-serial-dev hdf5-tools
$ sudo apt-get install libatlas-base-dev gfortran

然后用pip安装

$ sudo -H pip install -U jetson-stats

如果pip 不可以安装,更改为pip3即可

$ pip3 install --upgrade pip
$ pip3 install jetson-stats

然后直接执行jtop

在这里插入图片描述

3. 安装其他应用(wiresharklibpcap、openssl、glog、Tcpdump、gitVisual Studio Code…)

​ 写了一键安装脚本,有需要可以直接百度云网盘下载(密码是73j1):install_Jetson Nano.sh

脚本内容部分如下:

#!/bin/bash

#######################################################################################################
echo -e "\033[32m =====>             Installing Dependancy               <===== \033[0m"

## install basic third-part libraries ##

#install libpcap
sudo apt-get install -y  libpcap-dev

#install openssl
sudo apt-get install -y openssl
sudo apt-get install -y libssl-dev

#install protobuf
sudo apt-get install -y libprotobuf-dev protobuf-compiler

#install wireshark
sudo apt-get install -y wireshark

#install doxygen
sudo apt-get install -y doxygen

4. Jetson Nano开启 VNC 远程服务

[1] 修改以下文件

$ sudo gedit /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml

​ 添加一个节点

    <key name='enabled' type='b'>
      <summary>Enable remote access to the desktop</summary>
      <description>
        If true, allows remote access to the desktop via the RFB
        protocol. Users on remote machines may then connect to the
        desktop using a VNC viewer.
      </description>
      <default>false</default>
    </key>

[2] 编译

$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas

​ 现在就能通过鼠标打开 Desktop Sharing 了 , 注意不要勾选 You must confirm each access to this machine, 否则还需要鼠标点一下确认才能远程;

在这里插入图片描述

[3] 使用VNC

如果通过 ssh 远程到 Nano,,先运行下面命令;

$ /usr/lib/vino/vino-server

可以把上面这条命令加入到 gnome-session-properties,做成开机自启动;

然后使用 ubuntu 自带的 remmina 或其他工具连接即可

在这里插入图片描述

[4] 无显示器VNC远程分辨率异常解决方法

在VNC进入Nano后,运行下面命令可以将分辨率修改为1024x768;

$ xrandr --fb 1024x768

可以把上面这条命令加入到 gnome-session-properties,做成开机自启动;

到这里基本完成基本的安装,感谢阅读,有什么疑问可以一起交流;

猜你喜欢

转载自blog.csdn.net/m0_54792870/article/details/120908531
今日推荐