当前位置: 首页 > 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热点实现无线通信的配置结束

相关文章:

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

WiFi相关功能使用教程(wpa_supplicant及wpa_cli) 在之前的博客文中,我们已经成功交叉编译了wpa_supplicant和wpa_cli相关文件。 此篇文章中我们将介绍如何使用和配置WiFi模块。 先将生成的可执行文件拷贝到设备里 采用TFTP的方式拷贝到设备中并全都加上可执行权限…...

CentOS7 离线安装 Postgresql 指南

一、背景 服务器通常都是离线内网环境,想要通过联网方式一键下载安装 Postgresql 不太现实,本文将介绍如何在 CentOS7 离线安装 Postgresql,以及遇到困难如何解决。 二、安装包下载 先在本地下载好 rpm 包,再通过 ftp 上传到服…...

详解 为什么 tcp 会出现 粘包 拆包 问题

TCP 会出现 粘包 和 拆包 问题,主要是因为 TCP 是 面向字节流 的协议,它不关心应用层发送的数据是否有边界,也不会自动分割或合并数据包。由于 TCP 的流控制和传输机制,数据可能在传输过程中被拆分成多个小的 TCP 包,或…...

C/C++后端开发面经

字节跳动 客户端开发 实习 一面(50min) 自我介绍是否愿意转语言,是否只愿意搞后端选一个项目来详细谈谈HTTP和HTTPS有什么区别?谈一下HTTPS加密的具体过程: 非对称加密 对称加密 证书认证的方式 非对称加密是为了保证对称密钥的安全性。 对称…...

HTML之JavaScript DOM编程获取元素的方式

HTML之JavaScript DOM编程获取元素的方式 1.获得document DOM树window.document(是window的属性)2.从document中获取要操作的元素1.直接获取var aaa document.getElementById("username") // 根据元素的id值获取页面上的唯一一个元素,有同名的则返回找到的第一个var…...

路由器的WAN口和LAN口有什么区别?

今时今日,移动终端盛行的时代,WIFI可以说是家家户户都有使用到的网络接入方式。那么路由器当然也就是家家户户都不可或缺的设备了。而路由器上的两个实现网络连接的基础接口 ——WAN 口和 LAN 口,到底有什么区别?它们的功能和作用…...

人工智能(AI):科技新纪元的领航者

摘要 人工智能(AI)作为当今科技领域最具变革性的力量之一,正以惊人的速度重塑着我们的世界。本文旨在全面且专业地介绍人工智能,涵盖其定义、发展历程、关键技术、应用领域、面临的挑战以及未来展望等方面,以期为读者…...

CSS通过webkit-scrollbar设置滚动条样式

查看::-webkit-scrollbar-*各项关系 以下图为例&#xff0c;可以分别定义滚动条背景、滚动轨道、滚动滑块的样式。 需要先给外部容器设置高度&#xff0c;再设置overflow: auto&#xff0c;最后设置三个webkit属性。 <!DOCTYPE html> <html lang"en">…...

Seata1.5.2学习(二)——使用分布式事务锁@GlobalLock

目录 一、创建数据库 二、配置consumer-service 1.pom.xml 2.application.properties 3.启动类 4.其他代码 三、配置provider-service 1.pom.xml 2.application.properties 3.启动类 4.其他代码 四、分布式事务问题演示与解决办法 (一)分布式事务问题演示 (二)…...

三级分类bug解决

文章目录 前端后端 前端 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf.org" lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&q…...

华为 网络安全 认证

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 华为 网络安全 认证&#xff1a;保障信息安全的重要一环 在数字化时代的今天&#xff0c;网络安全成为了企业和个人都需要高度重视的问题。尤其是在企业信息化的…...

企业金融数字场景平台:架构设计、实践与未来趋势

随着数字化转型的深入&#xff0c;企业金融领域正经历着前所未有的变革。中国民生银行信息科技部赵鑫团队提出的《企业金融数字场景平台》架构设计&#xff0c;不仅展现了金融科技的前沿应用&#xff0c;也为行业提供了宝贵的实践经验和未来发展的新视角。 架构设计&#xff1…...

网络运维学习笔记 019 HCIA-Datacom综合实验03

文章目录 综合实验3实验需求一&#xff1a;A公司网络规划二&#xff1a;B公司网络规划 配置一、ip、vlan、vlanif&#xff0c;stp、eth-trunkSW1SW2SW3R1 二、ospfSW1R1 三、NATR1ISP 四、拒绝ping允许httpSW1 五、右半部分vlan、dhcp、ospf、NATSW4R2 综合实验3 实验需求 一&…...

Python--函数进阶(上)

1. 参数深入理解 1.1 参数传递的内存机制 Python中参数传递的是内存地址&#xff08;引用传递&#xff09;&#xff0c;而非值拷贝。这意味着&#xff1a; 可变对象&#xff08;列表、字典&#xff09;在函数内修改会影响外部变量。不可变对象&#xff08;数字、字符串&…...

Linux 常见面试题汇总

在当今数字化时代&#xff0c;Linux 作为一种开源、稳定且高效的操作系统&#xff0c;在服务器领域占据着举足轻重的地位。无论是运维工程师、开发人员还是系统管理员&#xff0c;掌握 Linux 相关知识都成为了必备技能。这篇博客将为大家汇总一些常见的 Linux 面试题&#xff0…...

网络运维学习笔记 015网工初级(HCIA-Datacom与CCNA-EI)NAT网络地址转换

文章目录 NAT(Network Address Translation&#xff0c;网络地址转换)思科&#xff1a;1&#xff09;PAT2&#xff09;静态端口转换 华为&#xff1a;1&#xff09;EasyIP2&#xff09;NAT Server静态NAT&#xff1a;动态NAT&#xff1a;实验1&#xff1a;在R1上配置NAPT让内网…...

蓝桥杯刷题25.2.22|打卡

一、幸运数 3491 谨记&#xff1a;使用函数&#xff0c;拆分成多个小问题&#xff0c;不容易出错 #include <iostream> using namespace std; //计算位数 int check(int a){int count0;while(a){aa/10;count;}return count; } bool fun(int sum){int countcheck(sum);int…...

学习笔记-沁恒第五讲-米醋

一&#xff0c;设置音量 上次 这次 #include "uart.h" #include "debug.h" void audio_init() { Usart3_Init(); } void audio_play(u8 num) { u8 string[]{0x7e,0x05,0x41,0x00,num,0x05^0x41^0x00^num,0xef}; u8 i; for(i0;i<7;i) { USART_Se…...

骁勇善战的量化利器:多因子模型【量化理论】

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲alpha策略制定后的测试问题 风险模型雏形 股票因子受多种因素影响&#xff0c;其价格由多种因素决定&#xff0c;所谓的多因子策略就是要发掘诸如此类的因子&#xff0c;以一种合理的方…...

Android Loader机制解析

参考: Android Loader 机制...

使用Docker部署SearXNG

SearXNG 搜索引擎 SearXNG 是一个整合了超过70个搜索服务结果的免费的私有互联网搜索引擎&#xff0c;用户不会被网站跟踪或被建立档案进行特征分析&#xff0c;良好地保障了用户的隐私。知识库可以有效地弥补大模型的知识欠缺问题&#xff0c;但依旧无法补充或弥补知识库和大…...

C# ConcurrentQueue 使用详解

总目录 前言 在C#多线程编程中&#xff0c;数据共享如同走钢丝——稍有不慎就会引发竞态条件&#xff08;Race Condition&#xff09;或死锁。传统Queue<T>在并发场景下需要手动加锁&#xff0c;而ConcurrentQueue<T>作为.NET Framework 4.0 引入的线程安全集合&a…...

armv7l

在 **ARMv7l** 中&#xff0c;最后的字符是字母 **“l”**&#xff08;小写字母 “L”&#xff09;&#xff0c;而不是数字 **“1”**。 --- ### 1. **ARMv7l 的含义** - **ARMv7**&#xff1a;指的是 **ARM 架构的第 7 代版本**&#xff0c;是一种广泛应用于嵌入式系统&…...

spring中关于Bean的复习(IOC和DI)

文章目录 1.spring程序开发步骤1.1 导入spring开发的基本包坐标1.2 编写Dao接口和实现类1.3 创建spring核心配置文件1.4 在spring配置文件中配置UserDaoImpl1.5 使用Spring的Api获得Bean实例 2. Bean实例化的三种方式2.1 无参构造方法实例化2.2 工厂静态方法实例化2.3 工厂实例…...

Docker内存芭蕾:优雅调整容器内存的极限艺术

title: “&#x1f4be; Docker内存芭蕾&#xff1a;优雅调整容器内存的极限艺术” author: “Cjs” date: “2025-2-23” emoji: “&#x1fa70;&#x1f4a5;&#x1f4ca;” 当你的容器变成内存吸血鬼时… &#x1f680; 完美内存编排示范 &#x1f4dc; 智能内存管家脚本…...

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格&#xff0c;用于比较Flask中的…...

【蓝桥杯单片机】客观题

一、第十三届省赛&#xff08;一&#xff09; 二、第十三届省赛&#xff08;二&#xff09;...

QT中经常出现的用法:组合

在 C 中&#xff0c;一个类包含另一个类的对象称为组合&#xff08; Composition &#xff09;。这是一种常见的设计模式&#xff0c;用 于表示一个类是由另一个类的对象组成的。这种关系通常表示一种 " 拥有 " &#xff08; "has-a" &#xff09;的关系。…...

下载CentOS 10

1. 进入官网&#xff1a;https://www.centos.org/ 2. 点击右上角的Download进入下载页面。 3. 选择对应的CPU架构&#xff0c;点击ISOs下面的Mirrors开始下载。...

第9章:LangChain让大模型结构化输出

文章详细介绍了LangChain4j中如何使用结构化输出&#xff08;Structured Outputs&#xff09;。主要内容包括&#xff1a; JSON Schema&#xff1a;通过指定JSON Schema&#xff0c;LLM可以生成符合结构的输出。工具&#xff08;Tools&#xff09;&#xff1a;通过工具调用实现…...