树莓派机载计算机的联网操作教程
树莓派4B板载两种网络硬件资源
双频802.11ac无线网络
采用WiFi无线连接的方式,支持两种频段2.4GHz与5GHz,可以连接路由器设备WiFi、笔记本电脑通过无线网卡以及手机等共享热点出来的WiFil,实现加入互联网。
同时树莓派4B自身的WiFi也可以设置成AP模式,将树莓派自身的网络共享出来给其它设备使用,此时树莓派充当路由器的作用。当树莓派没有连接以太网时,树莓派4B的AP热点模式,可以为连接设备提供一个局域网实现轻松组网,方便远程ssh、vnc等登录计载设备进行现场调试(在实际调试中,此种情况在不具备外部联网条件时使用很方便)。
+- RPi -------+
+---+ 10.10.0.2 | +- Laptop ----+
| | WLAN AP +-))) (((-+ WLAN Client |
| | Bridge | | 10.10.0.5 |
| +-------------+ +-------------+
+- Router ----+ |
| Firewall | | +- PC#2 ------+
(Internet)---WAN-+ DHCP server +-LAN-+---+ 10.10.0.3 |
| 10.10.0.1 | | +-------------+
+-------------+ |
| +- PC#1 ------+
+---+ 10.10.0.4 |
+-------------+
千兆以太网口
-
采用板载千兆太网口直接通过有线连接的方式连接互联网,可以通过网线与路由器LAN口、笔记本电脑网口等连接。
-
两种联网方式在实际使用中都比较常见,针对无人机上机载计算机移动使用场景,大多数情况下采用无线连接的方式,千兆以太网口连接方式仅在新手入门学习过程、大批量数据更新下载等少数情形中使用。
两种联网方式在树莓派4B ubuntu 20.04 LTS系统中的使用教程
有线连接的方式:
-
网线连接路由器LAN口与树莓派以太网口:
此种方式需要一根网线将树莓派4B的网口与路由器LAN口相连,树莓派即可通过网线加入互联网或者局域网
树莓派网口 | 网线 | 路由器LAN网口 |
---|---|---|
用户可以通过路由器后台管理软件查看相关设备的IP地址,例如小米WiFi路由器后台如下
-
网线连接路由器LAN口与笔记本电脑网口
笔记本电脑的无限网卡通过WiFi链接的方式与以太网链接,电脑端可以通过网络共享的方式将WLAN网络通过网线分享给树莓派4B,连接方式和路由器类似,相当于上述链接中,路由器LAN口换成了笔记本电脑网口。下面以WIN10系统为例,笔记本电脑通过网线来共享网络步骤。
- 首先笔记本电脑需要通过无线网卡链接路由器,并且将电脑网口和树莓派4B的网口通过网线连接
- 打开电脑控制面板—所有控制面板项—网络连接,界面如下:
-
鼠标选中上图中②的WLAN,右击后选择属性进入WLAN属性,选择共享WLAN网络给以太网
-
通过笔记本电脑cmd命令依次窗口输入如下指令可以查询到树莓派外设ip地址
ipconfig
arp -a
-
通常来讲通过笔记本网线共享网络的树莓派4B的ip地址和路由器的ip地址的第三段有明显差别,也可以插拔网线对比前后ip状态变化来排查,示例如下
ipconfig
arp -a
-
其中路由器分配的第三字端为31,由笔记本共享的以太网主机ip第三字段为137,arp -a指令查询到的从机设备树莓派4B的ip地址为192.168.137.237,第三字段同为137,可以依据此规律,方便树莓派在未接显示屏的情况下查询树莓派4B的ip地址。7. 利用ssh或者vnc远程登陆树莓派系统,验证机载计算机IP信息如下:
通过WiFi无线连接的方式联网
- 树莓派4b可以通过WiFi无线连接路由器、笔记本电脑、手机共享出来的WiFi信号(通过手机共享出来的WiFi频段推荐为2.4G模式,因为树莓派地址设置为国内时,支持的5G信号频段不全,可能导致树莓派搜索不到部分缺失频段的WiFi信号),同理可以通过路由器管理系统查看IP地址,在WiFi密码已知且不方便更改用户名、密码的情况下,用户需要给树莓派外接显示屏,插上鼠标键盘后,手动连接对应的WiFi设备,这个太过简单,故不做过多介绍,设置界面如下选择对应WiFi名称输入密码即可联网。同理在终端输入
ifconfig
可查询IP地址
- 在实验室或者现场调试等不具备共有路由器构建的局域网的条件下,可以使用树莓派4B利用自带WiFi构建AP热点,笔记本电脑可以通过连接树莓派的WiFi热点实现登陆机载系统远程操作。相关环境安装命令如下(仅作为学习使用,配套飞机提供的树莓派4B镜像已经装好相关环境):
git clone https://github.com/oblique/create_ap
cd create_ap
make install
sudo create_ap wlan0 eth0 热点名 密码
当树莓派WiFi已经连接路由器的情况下,输入创建WiFi热点的AP指令会提示出错,提示wlan0不能既作为连接者又作为分享者,此时需要手动断开树莓派链接的路由器的WiFi链接(意味着只能建立笔记本、手机和树莓派之间的局域网连接,无法实现连接互联网,存在二者兼容的解决方案,配置相对会麻烦一点,考虑实际应用场景非必须,暂作为备选方案),再重新执行AP指令即可:
sudo create_ap wlan0 eth0 flight_nc 12345678
WARN: brmfmac driver doesn't work properly with virtual interfaces and it can cause kernel panic. For this reason we disallow virtual interfaces for your adapter. For more info: https://github.com/oblique/create_ap/issues/203 ERROR: Your adapter can not be a station (i.e. be connected) and an AP at the same time
WiFi热点创建成功后,笔记本电脑、手机等设备可以连接树莓派共享的热点WiFi信号,利用IP实现远程登陆操作
-
树莓派自动连接固定WiFi名称、密码的WiFi路由设备
本使用情形为已经存在对应WiFi名称、密码的WiFi路由设备,树莓派开机自动读取网络配置文件后,连接到对应网络,当前仅当树莓派周围存在和配置文件中名称、密码匹配的WiFi设备时,自动连接才会建立。网络配置文件的系统路径为/etc/netplan/01-network-manager-all.yaml,文件默认配置如下:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
默认配置表示的是将系统的网络配置权限交给系统网络管理器,用户需要手动连接WiFi或者通过有线网口连接的方式联网。当系统需要自动连接固定WiFi名称、密码的WiFi热点时,更改配置文件如下:
network: version: 2 ethernets: eth0: optional: true dhcp4: true # add wifi setup information here ... wifis: wlan0: optional: true access-points: "flight_namelesstech": password: "12345678" dhcp4: true
上述配置文件中默认的WiFi名称为:flight_namelesstech,密码为12345678,实际使用中用户可以根据实际来更改对应文件字段,也可以直接更改路由器的WiFi名称、密码和树莓派网络配置文件,也可以使用笔记本电脑创建对应名称、密码的WiFi热点,树莓派即可自动连接联网。(不更改网络配置文件直接改现实热点名称、密码的情形,特别适合没有外接显示屏,初次登陆系统的情形)。当树莓派方便外接显示屏的情况下,上述更改/etc/netplan/01-network-manager-all.yaml文件的操作就显得非常的多余了。
在有显示屏的情况下,初次登陆树莓派ubuntu系统只需要手动连接WiFi即可,后续树莓派工作只需要之前连接的WiFi热点存在,系统开机就会自动连接到之前连接的WiFi网络,查询IP地址后就可以远程登陆树莓派了。
下面对上述所有联网情形进行对比,列出各自适用情形,优缺点如下表:
联网类型 适用场景 优点 缺点 1、网口有线连接 无显示屏初次登陆树莓派系统、需更新应用下载大量数据等情况 连接稳定可靠 不适合机载计算机移动条件下使用 2、树莓派网卡AP热点WiFi 无开放局域网、无路由WiFi热点设备条件下 适合移动场景下使用 无法连接互联网,只能作为局域网使用 3、设置树莓派网络配置文件自动连接WiFi 首次登陆系统,且无外接显示屏幕情形 适合移动场景下使用 无 4、登陆系统后手动连接WiFi 适合在存在无限路由WiFi热点情况下使用(路由器WiFi、手机热点、笔记本电脑热点等) 适合移动场景下使用 无 实际使用过程中,机载计算机大多数情况工作在④②两种情况,在外接存在WiFi热点的情况,采用方式④,外部环境不存在可用WiFi热点的情况下采用方式②,我们提供默认的树莓派4B镜像初始就是工作在④情形,如果初次登陆树莓派系统,手头无外接显示屏的情况下,可以将自己手机配置成WiFi热点模式,WiFi名称为:flight_namelesstech,密码为12345678,创建热点成功后,树莓派会自动连接到该网络,建立网络链接和查询到IP地址后,后续就可以远程登陆,登陆到系统中就可以实现④②的切换。
当用户需要树莓派网络工作在②AP热点模式时,为了方便客户操作,已经写了对应脚本文件,实现开机自启动AP热点WiFi供用户远程登陆,依次电机菜单——控制中心——启动应用程序——添加后界面已经相关设置如下图,命令框填入的内容如下:
gnome-terminal -x /home/cindy/autostart/wifi_ap.sh
设置成功后重新启动计算机就可以实现开机自动进入AP热点WiFi模式,根据IP地址就可以远程登陆树莓派系统了,由于出厂默认采用的是登陆系统后手动连接WiFi,故客户需要自己手动完成上图操作才能进入实现上述功能。当实验室环境存在开放路由器WiFi时,本操作可以作为备选方案。实际使用者可以通过树莓派扩展板上的I2C口外接I2C接口的OLED显示屏很方便的查看联网状态以及IP地址、CPU温度、内存占用等信息。
异常问题处理
下面给出树莓派AP在自动创建WiFi后,及时已经停止运行WiFi创建,这个时候想要切换成手动连接路由器或者手机共享WiFi热点时,发现搜索不到WiFi信号,也不能手动创建进行连接,通过查看create_ap -h帮助信息可知:
意思是说当关闭AP热点后,需要手动将网络控制权限切换到ubuntu操作系统网络管理器,执行如下指令解决不能手动联网问题:
sudo create_ap --fix-unmanaged 返回: Trying to fix unmanaged status in NetworkManager...
645886570608)]
意思是说当关闭AP热点后,需要手动将网络控制权限切换到ubuntu操作系统网络管理器,执行如下指令解决不能手动联网问题:
sudo create_ap --fix-unmanaged
返回:
Trying to fix unmanaged status in NetworkManager...