Jetson Nano出来一段时间了,借着带同学们玩的由头买了套回来,终于有机会替换原来的树莓派玩玩了。这篇文章是“玩转Jetson Nano”的开篇,当然有可能玩得转也有可能玩不转,试试看:)主要介绍入手后的Nano环境配置。尽管已经有很多类似的帖子,感觉还是有必要把个中关键和心得记下来,希望以后再用时少走弯路吧,也供有需要的同学参考。

本文主要开机准备和远程连接设置两大内容,具体为:

1. 开机前的准备

1.1 认识Nano

先通过Nano官网提供的信息认识一下Nano开发者套件。

(1)Jetson Nano Developer Kit盒中包括:

  1. Jetson Nano开发人员套件
  2. 小纸卡,具有快速启动和支持信息
  3. 折叠纸架(用于放置Nano的架子)

(2)我们还需要:

  1. microSD卡(最低16GB)
  2. USB键盘和鼠标
  3. 电脑显示器(HDMI或DP接口)
  4. Micro-USB电源(5V⎓2A)
  5. 一台能上网的计算机。

(3)Nano的主要接口

① microSD卡插槽用于主存储

② 40针扩展接头

③ Micro-USB端口,用于5V电源输入或用于数据传输

④ 千兆以太网端口

⑤ USB 3.0端口(×4)

⑥ HDMI输出端口

⑦ DisplayPort输出端口

⑧ 直流桶式插孔,用于5V电源输入

⑨ MIPI CSI摄像机连接器

1.2 硬件准备

下面开始迫不及待的动手。

1.2.1 必备

MicroSD卡与读卡器1套。因系统刷完SD卡大约13G,后续还要安装各种框架和存储深度学习模型文件,所以推荐32GB及以上容量的卡。读卡器用于将SD卡插入计算机的USB接口烧录系统。
Micro-USB电源。Jetson Nano不包括电源,需要自己准备1根5V⎓2A的Micro USB电源线,加上手机充电头即可供电;也可以准备一个5V⎓4A的电源适配器,为后续陆续增加的外设提供功率保障。
USB键盘鼠标。
网线。Nano官方提供一个Ubuntu18.04系统,在该系统的基础上,安装和更新必要的包时必须联网。
上网计算机1台。用于烧写microSD卡等。

1.2.2 选配

USB接口摄像头或CSI接口摄像头1个。用于AI机器视觉项目验证。
无线上网模块1个。Nano有一个千兆网口,只能有线连接上网。
HDMI或DP接口显示器1台。包括显示器和相关连接线。在配置好远程之前需要连接显示器进行必要设置。
小型散热风扇1个。Nano自带无源散热板,可以支持10W的模块在25°C左右的环境温度下使用。如果有额外散热需求,需要加装风扇。

1.3 在SD卡上烧写系统

在使用开发套件之前,SD卡要烧写好操作系统,以及JetPack工程所需的其他组件。最简单的方法就是直接下载官方提供的镜像文件,并且按照Getting Started with Jetson Nano Developer Kit教程操作。

1.3.1 下载镜像

官方镜像下载地址:

https://developer.nvidia.com/embedded/dlc/jetson-nano-dev-kit-sd-card-image

下载完成解压到本地硬盘。

1.3.2 格式化SD卡

推荐使用SDFormatter软件格式化SD卡。

1.3.3 将镜像烧录到SD卡

使用Etcher软件写入镜像。打开Etcher软件,依次点击:

[Select image] 打开下载的镜像文件-->[Select drive] 选择microSD卡-->[Flash!] 烧录,大约30分钟完成。

将烧录好镜像系统的microSD卡插入Nano的卡槽

1.4 网络连接

以下两种方法之一可以实现Nano上网。

  • 使用网线连接路由器的LAN口
  • 安装无线模块(需要另购)

1.4.1 安装无线模块

安装无线模块需要将Nano的主芯片从主板上拆下来:卸掉两个螺丝,然后轻轻将散热片两侧的卡锁向外拨开,此时主芯片板和散热片会弹起来,将其轻轻拔出插槽;将无线模块安装在位于主板上的插槽中,重新安装主芯片板。如图所示。

装好无线模块,开机后找到wifi信号连接即可。

1.4.2 设置静态IP

如果需要,也可以设置静态IP,方便远程连接。

以无线连接为例。在桌面右上角无线连接中,选择[Wi-Fi设置],点击连接的[齿轮]设置符号,修改[IPv4连接方式]为[手动],添加静态IP地址,子网掩码和网关信息,重启后生效。如下图所示。

1.5 供电

Nano的供电方式为以下三种方式之一:

(1)Micro USB供电

默认供电方式。用手机充电器+Micro USB线连接J28接口。

(2)5V⎓4A的DC电源供电

如果连接的外设模块比较多,导致总电流需求大于2A的话,可以先用方形塑料帽连接J48引脚的跳线,切换成5V⎓4A的DC电源供电(接受带有2.1×5.5×9.5 mm电源插头)连接J25接口。连接J48引脚后Micro-USB供电失效。

(3)通过J41扩展接口上的2个5V供电

将Nano套件连接到电源时,J41扩展接口上5V电源引脚始终可用。可以使用两个5V引脚为套件分别提供3A的电源。这种供电方式一般用于外加扩展板的统一供电。例如外加电机驱动板时,只需要通过电池给驱动板供电,然后从驱动板分一路电源插入J41对应的5V供电引脚给Nano供电即可。

几个接口位置如下图所示。

我选择使用5V⎓4A电源供电。连接好显示器和键盘鼠标后就可以开机啦!开机后有一些常规设置,就不多啰嗦了,不过建议设置为上电自动启动,因为Nano没有电源开关,上电自启方便以后使用。

2. 远程连接

玩过树莓派的同学一定知道这种开发套件比较好用方式,就是让它安安静静的被远程连接,不必专门配一套键盘鼠标和显示器。这里介绍两种远程连接方式,都安装,按需取用。

2.1 远程登录终端

首先介绍最常用的SSH远程连接Nano的方法。SSH是专门为了远程登录会话和其他网络服务提供的安全性协议,用于远程连接Linux服务器。SSH连接方式有串口和网络两种。Jetson Nano串口在J41扩展接口上,本文使用网络连接。

SHH远程优点:简单易用,Nano默认开启,无需设置
SHH远程缺点:没有图像界面操作不便,不能显示图像,机器视觉的AI程序调试不便
用过树莓派的同学对SSH连接应该不陌生。与树莓派不同的是,Jetson Nano的系统是默认开启SSH服务,所以只要Jetson nano网络连接正常就可以直接使用SSH登录,不用另外设置。

2.1.1 获取Nano的IP

用网线将Nano与家里路由器的LAN口连接上网。然后打开终端,执行ifconfig命令获取IP,如下图eth0接口的IP为10.0.0.107

2.1.2 SHH远程登录

Windows系统可以使用PuTTY或者XShell软件使用SHH远程登录Nano。

(1)使用PuTTY实现SSH远程连接过程为:

① 打开PuTTY软件,输入Nano的IP地址(SSH默认端口是22)

② 点击Open连接Nano

③ 客户端服务端进行联机加密认证

④ 认证通过联机成功

(2)使用XShell实现SHH远程

这里特别推荐使用XShell远程,因为它功能更丰富,使用更方便:

  • 可以记录账号密码,连接后自动登录
  • 可以为不同的主机设置个性化描述
  • 可以同时打开一个主机的多个终端
  • 可以同时打开不同主机的多个终端

功能基本都简单易懂,就不再啰嗦了。

上图为XShell管理多个主机的不同连接。

2.1.3 SSH图形化工具WinSCP

下面一鼓作气安装WinSCP图形化SHH工具,可以用于后续将模型文件从自己的电脑传输到Nano,非常方便。

WinSCP下载地址:https://www.onlinedown.net/soft/20088.htm

安装完成后,直接输入上一步得到的Nano的IP、主机用户名、密码即可访问Nano的文件系统。

连接后可以执行各种文件传输等操作,例如直接将左侧本地文件上传到Nano的指定文件夹。

试试鼠标从左边把文件拖到右边,再从右边拖到左边,开不开心?

2.2 远程登录桌面

桌面远程优点:操作直观方便,可以显示程序运行的视频或图像结果。
不同系统之间的桌面远程大家很熟悉了,实现的方法主要有3种(或更多):

Teamviewer:最好的远程软件,没有之一。悲剧的是,Nvidia Jetson主板运行64位版本Ubuntu的ARM64处理器,而TeamViewer不直接支持该处理器。也就是不支持Jetson系列开发套件。
共享桌面 (Desktop Sharing):Ubuntu系统有Desktop Sharing功能,可以使用windows系统远程登录Ubuntu,但由于Nano定制版的Ubuntu系统少了许多东西,导致桌面共享有问题,解决起来需要比较繁琐,所以直接忽略此方式。
VNC远程:适合Nano,简单易行,推荐。
VNC的条件为:远程的ubuntu机器已经登录进入桌面,且已经开启vino-server,则在远程使用vnc-viewer可直接连接。因此,要做两件事:

在Nano上安装vino-server
在Nano上启动vino-server。

2.2.1 安装VINO:VNC Server

打开Nano终端,依次执行

sudo apt update
sudo apt install vino

2.2.2 设置VINO登录选项

依次执行

gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false

2.2.3 将网卡加入VINO服务

执行,查看网卡UUID

nmcli connection show

显示如下,我们使用的是有线网络,因此拷贝第一行Wired connection 1的UUID

将UUID拷贝粘贴到如下命令的单引号[‘your UUID’]之间,并执行

dconf write /org/gnome/settings-daemon/plugins/sharing/vino-server/enabled-connections "['your UUID']"
export DISPLAY=:0

2.2.5 VNC测试登录

(1)在windows上安装VNC软件

在自己电脑的windows系统中安装VNC viewer

下载地址:https://www.realvnc.com/en/connect/download/viewer/

当然,其他地方应该也可以下到绿色版。

(2)在Nano上启动vino-server

Nano上执行

/usr/lib/vino/vino-server

显示如下,表示成功

本指令执行后,终端不关闭,在windows系统打开VNC viewer软件执行如下操作登录Nano:

[File] --[New connection].. 输入登录信息-- [ok]

  • VNC Server: 输入Nano的IP地址
  • Name:输入Nano的用户名

第一次连接会弹出警告信息,点击[continue],如果出现绿色大眼睛则大功告成!

2.2.6 添加开机启动vino-server

我们希望每次Nano上电开机后,自动启动vino-server,只需要将上述命令加入开启启动选项,这样就彻底接键盘显示器的麻烦了。下面快来设置吧!

在Nano的Ubuntu系统左上角dash中搜索application会出现“开机启动应用”设置,或者通过命令打开“开机启动应用”设置:
sudo gnome-session-properties

打开Startup Applications应用,添加如下开机启动内容

  • 名称:StartVinoServer
  • 指令:/usr/lib/vino/vino-server

重启Nano,试试能否直接从VNC再次登录吧!

2.3 安装Jtop监控运行

最后,安装Jtop实时监控Nano的运行状态。

执行安装命令

sudo pip3 install jetson-stats

安装完成后,终端运行

sudo jtop

可以远程查看系统运行的动态信息:

Jtop有四个页面监控Nano运行状态,ALl, GPU, MEM, CTRL和INFO信息,使用左右键切换页面。下图为GPU状态。

本文更新链接:

https://blog.csdn.net/iracer/article/details/104453423

————————————————
版权声明:本文为CSDN博主「iracer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iracer/article/details/104453423