NVIDIA Jetson Nano 2GB 系列文章(42):无线WIFI的安装与调试
2021-12-15 17:49
无线网络是操控无人车的必要设备,因为我们不可能让无人车拖着一条网路线去进行操作。要为 Jetson Nano(含 2GB)装上一片无线网卡是非常简单的事情,但复杂的是“设置”的细节,必须兼顾更多可能的使用场景。
如果您的设备只打算在自己熟悉的环境里使用的话,如办公室、实验室、家里等等,应该都会存在一台用的比较习惯的无线路由器,可以轻松配置或查找出 Jetbot 的无线网络 IP,因为只要无线网卡与无线路由执行过一次连线,就能将密码记录在 Jetbot 里面,只要以后不关闭无线网,在 Jetbot 开机之后就能直接连上。
但如果您的 Jetbot 经常需要到陌生环境去测试或演示,上述方式就没法使用了。比较好的状况是去到一个保密要求低的地方,对方愿意提供无线网的密码让 Jetbot 进行,我们可以先透过 USB 连线方式,透过 SSH 对 Jetbot 下达无线网连接的指令,这样还是能完成连线的任务。
如果前往的地方,安全要求高,甚至是在户外没有无线路由的地方,这样无线网就完全无用武之地了。
本文的重点就是要解决这样的麻烦问题,根据不同使用状况提供以下两种建议方式:
1. 将 Jetbot 或控制台 PC 的无线网卡设置为“热点”模式:
2. 自带一个掌上型便携无线路由:
不管使用哪种方式,首先我们还是得为 Jetbot 先安装一片合适的无线网卡。
安装无线网卡
Jetson Nano 提供 M.2 Key-E 与 USB 两种网卡接口,而 2GB 版本并不提供 M.2 接口,因此只能使用 USB 的网卡。以下简单说明以下两种网卡以及安装的方式:
(1)M.2 Key-E 接口:
这种网卡的信号质量比较好,不过存在以下缺点:
A. 安装过程复杂:必须拆卸 Jetson Nano 核心模块的两个螺丝,并将其取下之后才能安装上这个无线网卡,然后再装上核心模块。以下是简化过的 6 个安装步骤的图片,提供参考:
B. 需要有额外天线:这个部分看似简单,但实际上是有复杂度的,因为销售网卡的供应商大部分没有提供配套的 IPX 天线,需要根据采购的网卡的接口,再自行到淘宝上采购配套的天线,这种 IPX 的规格从第一代到第四代的接口都不兼容。
(2)USB 接口:
这种网卡非常方便,只要插上 Jetson Nano 2GB 的其中一个 USB 口就行,唯一的缺点就是有效距离较短,不过在 30~50 米范围内的操作,大致上是能满足 Jetbot 的使用,推荐使用这类的无线网卡会比较方便。
NVIDIA 官方在 https://elinux.org/Jetson_Nano#Wireless 提供一份 Jetson Nano(含2GB)的网卡推荐列表,包括 M.2 接口与 USB 接口的都有,不过请注意一下 USB 无线网卡的外形,最好选择下图左边这种“短”型的比较好,右边这种长度对 Jetbot 的运行与旋转会造成麻烦。
为了统一实验的过程,接下去的部分全部都使用 USB 无线网卡的方式来配合说明,而 M.2 网卡的设置方式也是一样的。
用USB数据线进行连线
接下去我们先使用具备数据传输并带有 Micro B 接口的 USB 线,将控制台 PC 与 Jetson Nano(含2GB)如下图一般地进行连接。这里必须再三强调的,就是所使用的 USB 线必须具备数据传输功能,很多初学者经常反映会出现连线失败的状况,追究原因,都是因为使用了只具备充电功能的 USB 线,当然无法完成连线,但是这从外观上也没法识别,只能实际尝试之后才能确认。
如果连线正常,在 Windows 操作环境下,会听到 USB 设备连接的提示声,在 Ubuntu 操作系统下会弹出一个类型下图的窗口,就表示形成连线:
确认连线的方法,最好直接在指令窗口执行“ping 192.168.55.1”,如果能能通(如下图),就能用 ssh 或者 Jupyter 来操作 Jetson Nano(含2GB)。
如果您的 Jetbot 使用前面文章所教导的 Docker 容器创建的话,在 Jupyter 所操控的范围是在容器内部,无法对 Jetson Nano(含2GB)进行配置,因此后面的操作全部以 SSH 远程命令窗口进行。
现在就打开一个命令终端,执行以下指令:
如果您使用 Jetbot 提供的镜像烧录 TF 卡的话,这里的用户名与秘密都是“jetbot”。Windows 用户请自行在网上找到合适的 SSH 工具。登陆上 Jetbot 设备之后,请执行以下指令检查无线网卡是否已经被系统检测到:
如果出现以下信息表示安装成功;如果没有出现信息,表示无线网卡的安装有问题,需要检查网卡本身是否为 Jetson Nano(含2GB)所支持的:
“wlan0: flags=4099 mtu 1500”
将Jetbot的WIFI与控制台PC都连上同一个无线热点
虽然 Jetbot 现在关闭图形桌面,会让很多操作必须透过指令方式来处理,大部分读者会觉得不太习惯。不过在网络设定方面,可以用 nmtui 提供的菜单式工具来协助,现在直接在 SSH 命令视窗里执行以下指令:
这里的菜单操作(如下图),主要依赖“上下键”与“ESC/Enter/Tab”五个键。下图中间为这个工具的主目录,点选“编辑连接”会进入到右边菜单、点选“启用连接”会进入左边菜单。
这个功能很简单,只要进入“启用连接”菜单后,在“Wi-Fi 参数”下面选择您要连线的热点,按下“Enter”就能进入连接这个热点所需要输入的密码窗口,输入秘密之后就能连上这个热点:
左图中的“阶梯状”表示接收到该热点的信号强度,连上之后会在该热点最左边出现“*”作为识别,如果要修改或查看这个网卡或热点的详细信息,就从“编辑连接”进入,选择要查看的热点后按下“Enter”,就能进入下图右边的窗口。
可以在控制台 PC 上另外开启一个 SSH 命令视窗,登陆到 Jetbot 后执行以下指令,看看得到的 MAC 地址是否一致?
下面只截屏无线网卡相关的信息:
如果 Jetbot 与您的控制台 PC 都连上同一个路由的时候,请在控制台 PC 上打开浏览器,然后输入 :8888 看看是否能连上 Jetbot?
例如前面连上路由之后,wlan0 里的 inet 地址(上图蓝色方块遮蔽的地方)为 192.168.0.13,现在就在浏览器上输入“192.168.0.13:8888”,如果能正常打开 Jetbot 操作界面,就表示这个无线网的连线是成功的。
后面就能将 USB 线取下,因为只要是在这个路由环境下,每次 Jetbot 开机就能自动连上这个无线路由,但如果您更换过网卡、或者面对新路由的时候,就需要重新执行一次这个连线的步骤。
将Jetbot或控制台PC的无线网卡设置为热点:
如果当您的 Jetbot 经常需要在不同地方做测试或演示,自然不能透过一台固定的无线路由为控制用 PC 与 Jetbot 进行无线连接,这时候可以将二者中的 WIFI 网卡设为热点,让另一个访问过来。
由于控制用 PC 是比较容易操作的,因此通常会用 Jetbot 的 WIFI 网卡设定成热点,这样就能让 Jetbot 端的连线 IP 固定为“10.42.0.1”,当然前提是您使用的网卡必须支持“热点”功能,如果遇到不支持热点功能的网卡,那就只能用控制台 PC 的无线网卡来作为热点,让 Jetbot 的 WIFI 访问过来,然后对 Jetbot 的 WIFI 设定为固定 IP 的方式,也是可行的。
现在我们以 Jetbot 无线网卡设置为热点的方式来做说明,同样的步骤也能在 Ubuntu 操作做系统的 PC 上执行,如果使用 Windows 操作系统的请自行在网上查询设置的方式。
由于前面的 nmtui 工具要操作热点设置需要相当繁琐的步骤,因此这里使用 nmcli 指令来操作,只需要两道指令就能处理好。以 Jetbot 的无线网卡设为热点的指令如下:
这里简单说明一下几个名称的用法与范例:
内部识别名称:这是给第二道指令去启动/关闭热点的识别名称,例如“USB-HS”
网卡名称:这必须对用网卡的实际名称,用 ifconfig 查询到这个无线网卡的名称为 “wlan0” ,因此这里就必须提供一样的名称。
外部识别名称:就是让外面设备能搜索到的 SSID 名称,例如 “jetbot-HS”
登陆密码:8 码以上
如果将上面的名词都对应上,那完整的指令就可以如下面:
如果执行第一个步骤时,出现“错误:设备 'wlx24050f289fa2' 既不支持 AP 也不支持 Ad-Hoc 模式”,就表示这个网络不支持热点功能。如果一切顺利的话,就能用 ifconfig 指令检查这个无线网卡的 IP 变成 ”10.42.0.1” (如下图),这就表示热点设置已经成功。
接着到控制台 PC,将无线网络连上 “jetbot-HS” 热点,成功之后就可以在浏览器上输入 “10.42.0.1:8888” 进入 Jetbot 的 Jupyter 控制界面。
假如 Jetbot 无线网卡不支持热点,但控制台 PC 支持的话,就将上面的操作放在 PC 上执行,然后将 Jetbot 连上 PC 热点的 WIFI 设置成 “IP=10.42.0.2/GW=10.42.0.1”的固定 IP 模式,这样也能在控制台 PC 的浏览器输入“10.42.0.2:8888”去访问 Jetbot。
透过便携(迷你)式无线路由的协助:
假如控制台 PC 与 Jetbot 的无线网卡都不支持热点功能时,那该怎么办呢?最好用的方法就是如下图的方式,透过一个独立的便携式迷你路由的辅助,使用网路线连接 PC 与迷你路由,这样就没有一开始连接网络的设定问题。
第一次要设定 Jetbot 的 WIFI 连上这个无线路由时,需要先透过 USB 连线方式去操控 Jetbot,一旦配置好之后就能将 USB 线拿掉,不用再受其约束,这是我们最为推荐的一种方式,包括在信号稳定性与操作难易度着两方面的经验。
至于路由的设置是个标准的路由配置问题,请针对您所挑选的路由器在网上就能轻易找到设置的细节,这里没有特殊需要设置的地方。
现在配置好 Jetbot 的 WIFI 连线之后,就能开始更得心应手地操作后面的内容。