WPA3功能开发及验证

本文基于《openssl/libnl/wpa_supplicant开源库交叉编译》总结文档https://blog.csdn.net/Bgm_Nilbb/article/details/120724443

前提:WPA3的支持是需要wpa_supplicant的版本>2.7 (本次使用2.9版本)
依赖库版本分别为(libnl-3.2.0、openssl-1.0.2r、wpa_supplicant2.9)

2022/09/29补充:2022年1月WIFI联盟强制要求WPA3支持R3,因此,wpa_supplicant版本尽可能使用2.10版本(缺点:占用资源更多)。2.9版本虽然也支持wpa3但不支持wpa3 r3,需要人为打入R3的patch,以及sae_pwe配置相关的处理。

1.首先交叉编译出wpa_supplicant
注意:a)是否开启SAE; 默认是支持的可从wpa_supplicant-2.9\wpa_supplicant\src.config中搜索看到
CONFIG_SAE=y
b)这里 注意下,编译wpa_supplicant要与wpa_supplicant运行的设备平台的编译器相同。
完成编译后将wpa_supplicant、wpa_cli打包入设备进行验证

2.执行如下命令
./wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf &
注意:a)wpa_supplicant的路径
b)各个参数的含义可以执行wpa_supplicant 查看,这里注意,-D后面的参数需要根据实际驱动支持的情况来选择(nl80211或wext),-i后跟网卡名,
c)后台运行可加&符号(这里原本我使用的是-B ,验证时存在问题,这里需要深究下两种后台运行的区别)

其他说明:
wpa_supplicant.conf 文件配置说明,完整说明可查阅wpa_supplicant-2.9\wpa_supplicant\src\wpa_supplicant.conf文件,这里举一个WPA3的简单例子

ctrl_interface=/var/run/wpa_supplicant
network={
ssid="CMCC-11223344"
psk="12345678"
key_mgmt=SAE
ieee80211w=1
} 

验证是否成功的方法
./wpa_cli -iwlan0 status
常见问题及注意事项:
1.ctrl_interface后的路径需要有可读写权限,因为在wpa_supplicant默认创建socket的方法会在该路径生成一个文件。该路径若无权限则socket会创建失败
2.注意驱动及内核编译时是否有打开WPA3(SAE)相关的配置开关,不同厂商实现不同,有些芯片厂商默认关闭该功能。
3.在1.2编译b)步骤时,若板子运行的是32为系统,在b) 命令前加入setarch i386,之后删除Makefile中的’-m32’即可,这里如果操作不正确,会到知道wpa_supplicant WPA2连接正常但WPA3连接失败

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值