瑞芯微RV1126B开发板(EASY-EAI-PI2) WIFI STA

描述

1. 网络配置简介

本文档介绍了系统的网络基础配置。另外为了解决在程序中修改网络配置需求,我们也提供使用yaml-cpp库修改网络配置的简单示例。

1.1 netplan与yaml文件

1.1.1 背景

本分析系统运行环境采用的是Ubuntu22.04系统。由于Ubuntu从18.04版本不再使用 ifupdown 配置网络,而改用 netplan,所以在 /etc/network/interfaces 配置固定IP是无效的,必须在/etc/netplan/中进行使用yaml文件网络配置,即我们需要了解yaml文件的基础语法。

1.1.2 Netplan的网络配置使用技巧

阅读《Netplan的网络配置使用技巧》,里面详细说明了其语法基础和注意事项

1.2 WIFI使用操作

1.2.1 接上WI-FI天线

人工智能

1.2.2 修改WI-FI网络配置

用以下命令查看开发板网络配置存放路径,会发现有2个配置文件。其中52-wlan0-init.yaml是【wif网卡】相关的netplan配置。

ls /etc/netplan/

人工智能

下面是一个把wlan0配置成DHCP的示例:

人工智能

关于网卡配置每一个部分的配置细节说明,如下图所示:

人工智能

如果对yaml进行过了修改,则需要执行下方命令进行更新:

sudo netplan generate sudo netplan apply

2. 快速上手

2.1 开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh 2204

人工智能

2.2 源码下载以及例程编译

首先,在虚拟机后台终端,执行以下命令,创建外设单例源码管理目录:

cd /opt mkdir -p EASY-EAI-PI2/demo

首先,到【百度网盘】上下载相关的单例程序:

链接:https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd=1234

提取码:1234

比如把单例程序下载到:此电脑\D:\BaiduNetdisk (无规定,用户可自主选择),如下图所示。

人工智能

再将下载好的单例复制进入虚拟机的文件系统,过程如下图所示。

人工智能人工智能人工智能

最后,进入到对应的例程目录执行编译操作,具体命令如下所示:

cd EASY-EAI-PI2/demo/01_network ./build.sh

注:

* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

人工智能

若有以下报错则需要在【开发板上】安装一下libyaml-cpp-dev库

人工智能

sudo apt-get install libyaml-cpp-dev

2.3 例程运行

通过串口调试ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata

人工智能

运行例程命令如下所示:

./test-wifi

此demo的效果是把wlan0的配置修改成wifi station,连接到一个叫HUAWEI-0H1YW8的wifi AP(热点)上。

2.4 运行效果

执行后若能成功连接,热点则会给开发板分配IP地址,效果如下所示。

人工智能

3. 操作例程

例程位于01_network/test-wifi/main.cpp

3.1 例程源码

以下代码展示了设置wlan0的热点连接的使用案例,供用户编码参考:

int main() { // 加载YAML文件 YAML::Node config = YAML::LoadFile("/etc/netplan/51-wlan0-init.yaml"); // =====================修改wifis的参数=========================== config["network"]["wifis"]["wlan0"]["dhcp4"] = "true"; config["network"]["wifis"]["wlan0"]["dhcp4-overrides"]["route-metric"] = "200"; config["network"]["wifis"]["wlan0"]["access-points"]["HUAWEI-0H1YW8"]["password"] = "lmo12345678"; // ============================================================= // 将修改后的YAML文档写回到文件中 std::ofstream fout("/etc/netplan/51-wlan0-init.yaml"); fout << config; fout.close(); // =======================重启网卡=============================== system("sudo netplan generate"); system("sudo netplan apply"); return 0; }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分