NXP IW612 Wi-Fi 模组支持 STA、uAP、P2P 三种工作模式,在 Linux 平台(I.MX93-EVK 开发板)下,可通过 wps_pbc(一键配对)和 wps_pin(Pin 码验证)两种方式快速建立 P2P 连接。核心思路是加载驱动、配置 P2P 参数、启动 wpa_supplicant,通过 GO(Group Owner)与 GC(Group Client)角色协商完成连接,适用于无路由场景下的设备直连。本文详解从环境准备到连接验证的完整步骤,新手也能快速上手。
1. 核心前提与环境准备
1. 硬件基础
- 开发板:2 块 NXP I.MX93-EVK(自带 IW612 模组 Murata LBES5PL2EL);
- 辅助设备:USB 线(烧录与调试)、电脑(Linux 镜像烧录)。
2. 软件与版本要求
- 操作系统:Linux 6.12.20 Prebuilt Image(适配 I.MX93-EVK);
- IW612 驱动 / 固件:SDIW612---w9177o-V1,SDIO,FP99,18.99.3.p25.7;
- 工具:uuu 烧录工具、wpa_supplicant、wpa_cli(系统内置)。
1.3 基础配置(两块开发板均需执行)
(1)烧录 Linux 镜像
- 下载镜像:从 NXP 官网获取
L6.12.20-2.0.0_MX93镜像包; - 烧录模式:将开发板拨码开关设为 USB 下载模式(SW1301 [4:1]=0011);
- 执行烧录:解压镜像包,运行命令
uuu uuu.auto-imx93-11x11-lpddr4x-evk; - 切换启动模式:烧录完成后,拨码开关恢复为正常启动(SW1301 [4:1]=0000),上电开机。
(2)配置驱动加载参数
编辑驱动配置文件,启用 P2P 模式:
vi /lib/firmware/nxp/wifi_mod_para.conf
添加以下内容(直接复制使用):
SDIW612 = {
cfg80211_wext=0xf
drv_mode=7
ps_mode=2
auto_ds=2
wfd_name=p2p
p2p_enh=1
max_vir_bss=1
cal_data_cfg=none
fw_name=nxp/sduart_nw61x_v1.bin.se
}
(3)加载 IW612 Wi-Fi 驱动
modprobe moal mod_para=nxp/wifi_mod_para.conf
(4)创建 P2P 配置文件(p2p_supplicant.conf)
- 设备 A(后续作为 GO 端)配置:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
device_type=10-0050F204-4
device_name=NXP-P2P
config_methods="keypad push_button virtual display"
persistent_reconnect=1
p2p_no_group_iface=1
- 设备 B(后续作为 GC 端)配置:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
persistent_reconnect=1
p2p_no_group_iface=1
2. 方法一:wps_pbc 一键配对(快速直连)
适合无安全验证需求、需要快速建立连接的场景,步骤如下:
2.1 设备 A(GO 端:组所有者)操作
- 启动 wpa_supplicant:
wpa_supplicant -i p2p0 -Dnl80211 -c ./p2p_supplicant.conf -B
- 进入 wpa_cli 交互模式:
wpa_cli
- 创建 P2P 组:
p2p_group_add
- 成功标志:输出
OK,并显示P2P-GROUP-STARTED信息,包含 SSID(如 DIRECT-D0)、密码等。
2.2 设备 B(GC 端:组客户端)操作
- 启动 wpa_supplicant(同设备 A 命令):
wpa_supplicant -i p2p0 -Dnl80211 -c ./p2p_supplicant.conf -B
- 进入 wpa_cli 交互模式:
wpa_cli
- 搜索 P2P 设备(持续 15 秒):
p2p_find 15
- 成功标志:搜索结果中出现设备 A 的 MAC 地址(如 fe:84:a7:51:87:fc)。
- 发起 P2P 连接(替换为设备 A 的 MAC 地址):
p2p_connect "fe:84:a7:51:87:fc" pbc join
2.3 设备 A(GO 端)确认配对
在设备 A 的 wpa_cli 中输入:
wps_pbc
- 成功标志:输出
OK,并显示WPS-SUCCESS、AP-STA-CONNECTED信息。
3. 方法二:wps_pin Pin 码验证(安全连接)
适合需要身份验证、防止非法设备接入的场景,步骤如下:
3.1 设备 A(GO 端)操作
- 启动 wpa_supplicant(同方法一);
- 进入 wpa_cli 交互模式,创建 P2P 组:
p2p_group_add
- 设置 Pin 码(示例 Pin 码:88888888,可自定义 8 位数字):
wps_pin "fe:84:a7:51:87:fc" 88888888
- 注:引号内为设备 A 自身的 P2P MAC 地址(可通过
ifconfig p2p0查看)。
3.2 设备 B(GC 端)操作
- 启动 wpa_supplicant(同方法一);
- 进入 wpa_cli 交互模式,输入 Pin 码连接(替换为设备 A 的 MAC 地址和 Pin 码):
p2p_connect "fe:84:a7:51:87:fc" 88888888 join
- 成功标志:输出
OK,并显示WPS-SUCCESS、CTRL-EVENT-CONNECTED信息。
4. 连接验证
在任意设备的 wpa_cli 中输入
status,查看连接状态,成功标志如下:- 设备 A(GO 端):
mode=P2P GO、wpa_state=COMPLETED、ssid=DIRECT-XX; - 设备 B(GC 端):
mode=station、wpa_state=COMPLETED、ssid=DIRECT-XX。
示例输出(设备 A):
bssid=fe:84:a7:51:87:fc
freq=2412
ssid=DIRECT-D0
id=0
mode=P2P GO
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
5. 关键注意事项
- 烧录镜像报错:若提示 “Failure open usb device”,检查 USB 线连接、开发板 USB 口是否正确,或更换 USB 口重试;
- 驱动加载失败:确认
wifi_mod_para.conf路径正确,固件文件名与实际一致(sduart_nw61x_v1.bin.se); - 设备搜索不到:确保两块开发板在同一近距离范围内,无遮挡,且
p2p_supplicant.conf中p2p_no_group_iface=1配置正确; - MAC 地址正确:
p2p_connect命令中的 MAC 地址需为设备 A 的 p2p0 接口地址(通过ifconfig p2p0查看),而非 eth0 地址; - 连接超时:若长时间未建立连接,重启 wpa_supplicant(
killall wpa_supplicant)后重新执行步骤。
阅读全文
25