扫码加入

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

NXP 88W8987 STA模式连接AP实操:wpa_supplicant配置频段限制

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

NXP 88W8987 Wi-Fi 模组在 Linux 平台(i.MX8MN-EVK 开发板)下的 STA 模式,可通过 wpa_supplicant 工具快速连接 2.4GHz/5GHz AP,支持 WPA2-PSK 和 WPA3-SAE 两种加密方式,还能通过参数限制连接指定频段。核心思路是配置驱动参数、编写 wpa_supplicant 配置文件、启动服务并获取 IP,适用于工业物联网智能设备等需接入现有 Wi-Fi 网络的场景。本文详解从驱动配置到连接验证的完整流程,新手也能快速上手。

1. 核心前提与环境准备

1.1 硬件基础

  • 开发板:NXP i.MX8MN-EVK;
  • Wi-Fi 模组:NXP 88W8987(SD8987);
  • 辅助设备:USB 线(调试 / 烧录)、电脑(配置)、目标 AP(路由器 / 手机热点)。

1.2 软件与版本要求

  • 操作系统:i.MX Yocto Linux BSP L6.12.3_1.0.0;
  • 核心工具:wpa_supplicant(加密连接)、udhcpc(获取 IP);
  • 固件 / 驱动: combo 固件sduart8987_combo.bin(Wi-Fi + 蓝牙合一),驱动文件mlan.komoal.ko

2. 驱动配置:wifi_mod_para.conf 参数设置

STA 模式的正常运行依赖驱动参数正确配置,核心文件为/lib/firmware/nxp/wifi_mod_para.conf,需重点关注以下参数:

2.1 核心配置文件(直接复用)

SD8987 = { 
    cfg80211_wext=0xf 
    max_vir_bss=1 
    cal_data_cfg=none 
    drv_mode=1  # 仅启用STA模式(mlan0接口),也可设3(STA+uAP)、7(全接口,默认)
    ps_mode=1   # 启用802.11省电模式(AP控制),需禁用设2
    auto_ds=1   # 启用自动深度睡眠,需禁用设2
    host_mlme=1 # 支持WPA3加密(仅WPA3需配置)
    fw_name=nxp/sduart8987_combo.bin  # 固件路径,需确保文件存在
}

2.2 关键参数说明(避坑核心)

  • drv_mode:接口模式选择,1 = 仅 STA(推荐,避免接口冲突),3=STA+uAP,7 = 全接口;
  • host_mlme:WPA3 加密必需,设 1 即可,WPA2 可省略;
  • fw_name:固件路径不可错,无/lib/firmware/nxp目录需手动创建;
  • ps_mode/auto_ds:省电模式不影响连接稳定性,默认启用即可,异常时可设 2 禁用。

2.3 驱动加载与卸载

  • 加载驱动(随内核编译):
    modprobe moal mod_para=nxp/wifi_mod_para.conf
    
  • 单独编译驱动加载:
    insmod mlan.ko && insmod moal.ko mod_para=nxp/wifi_mod_para.conf
    
  • 卸载驱动(重新配置时):
    rmmod moal && rmmod mlan
    
  • 验证加载成功:ifconfig -a能看到mlan0接口(STA 默认接口名)。

3. 分场景连接步骤(2G/5G+WPA2/WPA3)

核心原则:先禁用 connman 服务(避免接口干扰)

所有连接操作前必须执行:
systemctl disable connman.service && systemctl stop connman.service

场景 1:连接 5G AP(WPA2-PSK 加密)

(1)编写配置文件(/etc/connect-to-5g-wpa2.conf

ctrl_interface=/var/run/wpa_supplicant 
update_config=1 
p2p_no_group_iface=1 
network={ 
    ssid="WEIDONG-5G"  # 目标AP的SSID
    psk="Apple_20220801"  # AP的连接密码(8位及以上)
    proto=RSN  # 启用WPA2
    key_mgmt=WPA-PSK  # 预共享密钥模式
    pairwise=CCMP  # 加密算法
    group=CCMP 
}

(2)启动 wpa_supplicant 并获取 IP

# 后台启动wpa_supplicant
wpa_supplicant -d -B -i mlan0 -c /etc/connect-to-5g-wpa2.conf -Dnl80211 &
# 获取IP地址
udhcpc -i mlan0

(3)验证连接

ping 8.8.8.8  # 能收到回复即连接成功

场景 2:连接 5G AP(WPA3-SAE 加密)

(1)编写配置文件(/etc/connect-to-5g-wpa3.conf

ctrl_interface=/var/run/wpa_supplicant 
ap_scan=1 
network={ 
    ssid="WEIDONG-5G" 
    scan_ssid=1 
    key_mgmt=SAE  # WPA3专属加密模式
    proto=RSN 
    pairwise=CCMP 
    group=CCMP 
    sae_password="Apple_20220801"  # WPA3密码字段(区别于psk)
    ieee80211w=2  # 强制启用管理帧保护(WPA3必需)
}

(2)启动服务并验证

# 先终止原有wpa_supplicant进程
killall wpa_supplicant
# 启动新配置
wpa_supplicant -d -B -i mlan0 -c /etc/connect-to-5g-wpa3.conf -Dnl80211 &
# 获取IP并ping测试(步骤同场景1)

场景 3:连接 2G AP(手机热点,WPA2-PSK)

(1)编写配置文件(/etc/connect-to-2g-wpa2.conf

ctrl_interface=/var/run/wpa_supplicant 
update_config=1 
p2p_no_group_iface=1 
network={ 
    ssid="OPPO"  # 手机热点SSID
    psk="12345678"  # 热点密码
    proto=RSN 
    key_mgmt=WPA-PSK 
    pairwise=CCMP 
    group=CCMP 
}

(2)启动服务并验证

wpa_supplicant -d -B -i mlan0 -c /etc/connect-to-2g-wpa2.conf -Dnl80211 &
udhcpc -i mlan0
ping 8.8.8.8

场景 4:限制仅连接 2G/5G 频段

通过freq_listscan_freq参数指定频段,添加到配置文件的network节点外:
  • 仅连接 2G 频段(添加到配置文件顶部):
    freq_list=2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484
    
  • 仅连接 5G 频段(添加到配置文件顶部):
    freq_list=5180 5200 5220 5240 5260 5280 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 5765 5785 5805 5825 5845 5865 5885
    

4. 关键参数深度解读(灵活适配场景)

4.1 频段限制参数

  • freq_list:强制 STA 仅连接指定频率的 AP,优先级高于scan_freq
  • scan_freq:仅扫描指定频率的 AP,未找到则不连接其他频段;
  • 适用场景:避免 2G/5G 频段干扰,确保设备连接到目标频段。

4.2 加密相关参数

  • ieee80211w:管理帧保护,WPA3 必需设 2(强制启用),WPA2 可选 0(禁用)/1(可选);
  • key_mgmt:加密模式,WPA-PSK对应 WPA2,SAE对应 WPA3(WPA3-Personal);
  • sae_password:WPA3 专属密码字段,区别于 WPA2 的psk,不可混用。

4.3 扫描与连接优化

  • ap_scan=1:默认扫描模式,先扫描所有 AP 再匹配 SSID;
  • scan_ssid=1:隐藏 SSID 的 AP 需启用,强制扫描并匹配目标 SSID;
  • update_config=1:自动保存连接过的 AP 配置,下次可自动连接。

5. 避坑核心事项

  1. 必须禁用 connman 服务:否则会占用 mlan0 接口,导致 wpa_supplicant 启动失败;
  2. WPA3 配置必选参数:host_mlme=1(驱动参数)+ key_mgmt=SAE + ieee80211w=2,缺一不可;
  3. 密码长度要求:WPA2/WPA3 密码需≥8 位,否则连接报错;
  4. 固件路径正确:确保/lib/firmware/nxp/下存在sduart8987_combo.bin,无 nxp 目录需手动创建;
  5. 频段参数格式:freq_listscan_freq后直接跟频率值,用空格分隔,无需括号。
88W8987 STA 模式连接 AP 的核心是 “驱动参数适配 + wpa_supplicant 配置文件定制”:WPA2/WPA3 需区分密码字段和加密参数,2G/5G 可通过频段参数精准限制,启动服务后获取 IP 即可正常联网。整个流程无需复杂开发,配置文件可直接复用,适配多数 Wi-Fi 接入场景。

相关推荐