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

news/2025/2/25 5:11:39

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.niftyadmin.cn/n/5864983.html

相关文章

基于javaweb的SpringBoot酒店管理系统设计和实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

C1车证学习笔记

科目一: 口诀: 能停就停能帮就帮;只有违法没有违章;人行横道不停不调;酒驾无照十二扣掉;高速路三车行;60,90,110;能见度200步;限速60隔百步&…

整车解决问题举例

一,调度中心 业务流程优化 1,JOB 地址解析/库存校验/承运商分配 导致问题:日志表量多大,高德调用量过大,频繁调用第三方接口,接口处理慢 处理方案:降量,处理历史数据从时间维度&…

XML DOM4J 二、document对象

DOM4J获取Document对象: 使用DOM4J来加载XML文档,需要先获取SAXReader对象,然后通过SAXReader对象的read()方法来加载XML文档: SAXReader reader new SAXReader(); // reader.setValidation(true);Document doc reader.read(&…

C语言多人聊天室 ---s(服务端)

head.h #ifndef __HEAD_H #define __HEAD_H// 常用头文件 #include <stdio.h> #include <stdlib.h> #include <string.h>// 网络编程涉及的头文件 #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h>#include <…

Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复

一、日志管理 &#xff08;1&#xff09;基本介绍 日志文件是重要的系统信息文件&#xff0c;记录了如用户登录、系统启动、系统安全、邮件及各种服务等相关重要系统事件在安全方面&#xff0c;日志也至关重要&#xff0c;它能记录系统日常发生的各类事情&#xff0c;可用于检…

C#最新语言特性

C#最新语言特性 近几年持续引入多个新特性以提升开发效率和代码质量&#xff0c;截至今年2025年2月&#xff0c;C#的最新稳定版本是C#13&#xff0c;它是在2024年11月发布的&#xff0c;下方是一些C#13中的新特性以及近期版本特性。 C#13版本 params集合增强 params关键字得…

中间件专栏之redis篇——redis基本原理、概念及其相关命令介绍

一、redis是什么 redis是remote dictionary service的简称&#xff0c;中文翻译为远程字典服务&#xff1b; redis是一种数据库&#xff0c;若按照类型来归类&#xff0c;则其可以被归入三个类型数据库&#xff0c;分别为&#xff1a;内存数据库、KV数据库、数据结构数据库&a…