当前位置: 首页 > article >正文

WiFi相关功能使用教程(wpa_supplicant及wpa_cli)

WiFi相关功能使用教程(wpa_supplicant及wpa_cli)

在之前的博客文中,我们已经成功交叉编译了wpa_supplicant和wpa_cli相关文件。
此篇文章中我们将介绍如何使用和配置WiFi模块。

先将生成的可执行文件拷贝到设备里
在这里插入图片描述
采用TFTP的方式拷贝到设备中并全都加上可执行权限

tftp -gl wpa_supplicant  10.112.218.13

在这里插入图片描述
拷贝wpa_supplicant.conf 到/etc/目录想

cp  wpa_supplicant.conf /etc/

执行:

-D 驱动程序名称(可以是多个驱动程序:nl80211,wext)
-i 网络接口名称
-c 配置文件
-B 在后台运行守护进程
-d:增加调试信息

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B -d

报错如下:
在这里插入图片描述提示没有这个库,
我们找到之前生成的成果物libnl的库中需要用到的动态库都将其拷贝过来并通过tftp拷贝到设备里

在这里插入图片描述
将这几个文件全都加上可执行权限
在这里插入图片描述
然后把这些动态库都拷贝到设备中的/lib/目录下

cp libnl-* /lib/

再次执行命令在后台启动wpa_supplicant

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf –B -d

配置文件 /etc/wpa_supplicant.conf文件里,添加下面代码:

ctrl_interface=/var/run/wpa_supplicant  #必须配置
update_config=1 #强制更新覆盖配置 
ap_scan=1  #AP扫描(默认为0),=1是工作在nl80211的优化工作。为了寻找隐藏了的网络


network={
	ssid="userxxx" #接入点名称
	psk="passwdxxx" #接入点密码
	priority=0   #优先级组,(默认为0)优先级数值越大,就越早在扫描结果中得到匹配,如果优先级组相同,则将会根据安全规则、信号强度等来作为选择的依据。
}

在这里插入图片描述
出现如上错误,再次打开/etc/wpa_supplicant.conf文件,将文件中Example blocks下的所有样例全都注释掉,仅保留自己新增的WiFi链接信息
在这里插入图片描述
在这里插入图片描述
然后重新使用TFTP工具更新设备中的wpa_supplicant.conf文件并拷贝到/etc/目录下
在这里插入图片描述
执行命令前需要进入到/var/目录下新建一个run子目录(若已经存在则忽略该步骤,原因是启动wpa_cli客户端的时候 会去链接该目录下生成的wpa_supplicant文件夹目录下的节点(该文件启动wpa_supplicant服务器的时候会自动生成)),若不存在该目录直接启动wpa_supplicant会失败
在这里插入图片描述
最后再次执行该命令

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B -d

在这里插入图片描述
执行结果如下执行结果如下
在这里插入图片描述
在这里插入图片描述
查看/var/run目录,发现自动生成一个文件夹和wlan0节点
在这里插入图片描述
执行完这个命令后实际上设备就已经成功连接上Wifi热点
查看手机热点发现设备已连接成功,能显示出来连接设备的Mac地址
在这里插入图片描述
通过串口输入命令ifconfig –a查看设备Wifi网卡的wlan0地址,可以发现能对上
在这里插入图片描述
上图中可以看到我们的wlan0仅有IPV6的地址没有IPV4
我们通过串口输入如下命令,使用DHCP自动分配IP地址

udhcpc -i wlan0

在这里插入图片描述
再次查看我们的网络情况 ifconfig –a
在这里插入图片描述
如上图所示,现在我们的Wifi网卡有ipv4的地址了
输入如下命令查看我们网关信息

route –n

在这里插入图片描述
如上图所示我们的默认网关用的还是有线IP的网关,输入如下命令删除我们原有的网关,改用wlan0的网关

route del default gw 10.112.218.254

至此设备连接Wifi热点实现无线通信的配置结束


http://www.kler.cn/a/562293.html

相关文章:

  • 使用AWS服务Amazon Bedrock构建大模型应用
  • AI agent(以AutoGPT为例)和AI Workflow 区别
  • DeepSeek 与其他大语言模型相比,优势和劣势
  • Ae:导入 3D 模型
  • 在Linux上创建一个Docker容器并在其中执行Python脚本
  • Windows程序设计28:MFC模态与非模态对话框
  • Jenkins 构建 Unity 打包 .apk 同时生成 .aab
  • 爬虫解析库:pyquery的详细使用
  • 数据安全_笔记系列03:数据脱敏(Data Masking)深度解析
  • 批量导出数据库表到Excel
  • Java面试八股文整理
  • 【React】React 性能优化
  • C#连接sql server
  • CSS编程基础学习
  • FFmpeg 命令行全解析:高效音视频处理从入门到精通
  • <tauri><rust><GUI><PLC>基于tauri,编写一个串口485调试助手
  • 【前端】Axios AJAX Fetch
  • 4.1 Go结构体的指针
  • Spring 原始注解详解与实战指南
  • VC++零基础入门之系列教程 【附录E MFC快速参考指南】