 WIFI STA)
1.网络配置简介本文档介绍了系统的网络基础配置。另外为了解决在程序中修改网络配置需求我们也提供使用yaml-cpp库修改网络配置的简单示例。1.1netplan与yaml文件1.1.1背景本分析系统运行环境采用的是Ubuntu22.04系统。由于Ubuntu从18.04版本不再使用 ifupdown 配置网络而改用 netplan所以在 /etc/network/interfaces 配置固定IP是无效的必须在/etc/netplan/中进行使用yaml文件网络配置即我们需要了解yaml文件的基础语法。1.1.2Netplan的网络配置使用技巧阅读《Netplan的网络配置使用技巧》里面详细说明了其语法基础和注意事项1.2WIFI使用操作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 apply2.快速上手2.1开发环境准备如果您初次阅读此文档请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》并按照其相关的操作进行编译环境的部署。在PC端Ubuntu系统中执行run脚本进入EASY-EAI编译环境具体如下所示。cd ~/develop_environment ./run.sh 22042.2源码下载以及例程编译首先在虚拟机后台终端执行以下命令创建外设单例源码管理目录cd /opt mkdir -p EASY-EAI-PI2/demo首先到【百度网盘】上下载相关的单例程序链接https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd1234提取码1234比如把单例程序下载到此电脑\D:\BaiduNetdisk (无规定用户可自主选择)如下图所示。再将下载好的单例复制进入虚拟机的文件系统过程如下图所示。最后进入到对应的例程目录执行编译操作具体命令如下所示cd EASY-EAI-PI2/demo/01_network ./build.sh注* 由于依赖库部署在板卡上因此交叉编译过程中必须保持/mnt挂载。若有以下报错则需要在【开发板上】安装一下libyaml-cpp-dev库sudo apt-get install libyaml-cpp-dev2.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; }