扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

NXP IW612 Linux 下 P2P 连接实操:wps_pbc 与 wps_pin 双方法详解

1小时前
25
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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 镜像

  1. 下载镜像:从 NXP 官网获取L6.12.20-2.0.0_MX93镜像包;
  2. 烧录模式:将开发板拨码开关设为 USB 下载模式(SW1301 [4:1]=0011);
  3. 执行烧录:解压镜像包,运行命令uuu uuu.auto-imx93-11x11-lpddr4x-evk
  4. 切换启动模式:烧录完成后,拨码开关恢复为正常启动(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 端:组所有者)操作

  1. 启动 wpa_supplicant:
wpa_supplicant -i p2p0 -Dnl80211 -c ./p2p_supplicant.conf -B
  1. 进入 wpa_cli 交互模式:
wpa_cli
  1. 创建 P2P 组:
p2p_group_add
  • 成功标志:输出OK,并显示P2P-GROUP-STARTED信息,包含 SSID(如 DIRECT-D0)、密码等。

2.2 设备 B(GC 端:组客户端)操作

  1. 启动 wpa_supplicant(同设备 A 命令):
wpa_supplicant -i p2p0 -Dnl80211 -c ./p2p_supplicant.conf -B
  1. 进入 wpa_cli 交互模式:
wpa_cli
  1. 搜索 P2P 设备(持续 15 秒):
p2p_find 15
  • 成功标志:搜索结果中出现设备 A 的 MAC 地址(如 fe:84:a7:51:87:fc)。
  1. 发起 P2P 连接(替换为设备 A 的 MAC 地址):
p2p_connect "fe:84:a7:51:87:fc" pbc join

2.3 设备 A(GO 端)确认配对

在设备 A 的 wpa_cli 中输入:
wps_pbc
  • 成功标志:输出OK,并显示WPS-SUCCESSAP-STA-CONNECTED信息。

3. 方法二:wps_pin Pin 码验证(安全连接)

适合需要身份验证、防止非法设备接入的场景,步骤如下:

3.1 设备 A(GO 端)操作

  1. 启动 wpa_supplicant(同方法一);
  2. 进入 wpa_cli 交互模式,创建 P2P 组:
p2p_group_add
  1. 设置 Pin 码(示例 Pin 码:88888888,可自定义 8 位数字):
wps_pin "fe:84:a7:51:87:fc" 88888888
  • 注:引号内为设备 A 自身的 P2P MAC 地址(可通过ifconfig p2p0查看)。

3.2 设备 B(GC 端)操作

  1. 启动 wpa_supplicant(同方法一);
  2. 进入 wpa_cli 交互模式,输入 Pin 码连接(替换为设备 A 的 MAC 地址和 Pin 码):
p2p_connect "fe:84:a7:51:87:fc" 88888888 join
  • 成功标志:输出OK,并显示WPS-SUCCESSCTRL-EVENT-CONNECTED信息。

4. 连接验证

在任意设备的 wpa_cli 中输入status,查看连接状态,成功标志如下:
  • 设备 A(GO 端):mode=P2P GOwpa_state=COMPLETEDssid=DIRECT-XX
  • 设备 B(GC 端):mode=stationwpa_state=COMPLETEDssid=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. 关键注意事项

  1. 烧录镜像报错:若提示 “Failure open usb device”,检查 USB 线连接、开发板 USB 口是否正确,或更换 USB 口重试;
  2. 驱动加载失败:确认wifi_mod_para.conf路径正确,固件文件名与实际一致(sduart_nw61x_v1.bin.se);
  3. 设备搜索不到:确保两块开发板在同一近距离范围内,无遮挡,且p2p_supplicant.confp2p_no_group_iface=1配置正确;
  4. MAC 地址正确:p2p_connect命令中的 MAC 地址需为设备 A 的 p2p0 接口地址(通过ifconfig p2p0查看),而非 eth0 地址;
  5. 连接超时:若长时间未建立连接,重启 wpa_supplicant(killall wpa_supplicant)后重新执行步骤。
IW612 在 Linux 下建立 P2P 连接的核心是 “驱动配置 + 角色协商”:wps_pbc 适合快速直连,无需手动输入密码;wps_pin 适合安全场景,通过 Pin 码验证防止非法接入。两种方法均基于 wpa_supplicant 和 wpa_cli 工具,步骤简洁,配置文件可直接复用,适用于工业控制物联网等设备直连场景。

相关推荐