NXP 88W9098 Wi-Fi 模组凭借双 MAC 设计,可在 i.MX8MP-EVK 开发板上同时启用两个 STA 接口(mlan0 对应 5G、mmlan0 对应 2.4G),分别连接不同 AP,支持 WPA2-PSK 和 WPA3-SAE 加密,还能通过参数限制连接频段。核心思路是配置驱动参数、编写 wpa_supplicant 配置文件、禁用冲突服务并验证连接,适用于需要冗余网络或双频段并行的物联网场景。本文详解从驱动配置到连接验证的完整流程,新手可直接复用配置模板快速落地。
1. 核心目标与环境准备
1.1 技术目标
- 启用双 STA 接口:mlan0(MAC0)连接 5G AP,mmlan0(MAC1)连接 2.4G AP;
- 支持双加密方式:WPA2-PSK(兼容旧设备)和 WPA3-SAE(高安全性);
- 实现并行连接:两个 STA 接口同时在线,可独立访问外网;
- 灵活频段控制:通过参数限制仅连接目标频段(2.4G 或 5G)。
1.2 软硬件环境
- 硬件:i.MX8MP-EVK 开发板、NXP 88W9098 Wi-Fi 模组、5G 路由器、智能手机(开启 2.4G 热点);
- 软件:Linux BSP L6.12.3_1.0.0、固件版本 17.92.1.p149.60、驱动版本 MM6X17505.p14-GPL;
- 工具:wpa_supplicant、udhcpc、MobaXterm(串口终端);
- 镜像要求:需编译 imx-image-multimedia(NXP 官网 DEMO 镜像不含,需通过 Yocto 构建)。
2. 驱动配置:启用双 STA 接口(关键前提)
2.1 核心配置文件(wifi_mod_para.conf)
文件路径:
/lib/firmware/nxp/wifi_mod_para.conf,需配置两个 MAC 节点,参数如下(直接复用):PCIE9098_0 = { # MAC0,对应mlan0接口(推荐5G)
cfg80211_wext=0xf
max_vir_bss=1
cal_data_cfg=none
ps_mode=1 # 启用802.11省电模式,禁用设2
auto_ds=1 # 启用自动深度睡眠,禁用设2
host_mlme=1 # 支持WPA3加密,WPA2可省略
fw_name=nxp/pcieuart9098_combo_v1.bin # 固件路径
}
PCIE9098_1 = { # MAC1,对应mmlan0接口(推荐2.4G)
cfg80211_wext=0xf
max_vir_bss=1
cal_data_cfg=none
ps_mode=1
auto_ds=1
host_mlme=1
fw_name=nxp/pcieuart9098_combo_v1.bin
}
2.2 关键参数说明(避坑核心)
drv_mode:默认不配置(支持所有接口),需单独启用 STA 接口时设为 1(仅 mlan0/mmlan0),设为 3 则同时启用 STA+uAP 接口;host_mlme=1:WPA3 连接必需,WPA2 场景可删除该参数;- 固件路径:确保
/lib/firmware/nxp/目录存在,无则手动创建(mkdir -p /lib/firmware/nxp)。
2.3 加载驱动并验证接口
# 加载驱动(随内核编译时)
modprobe moal mod_para=nxp/wifi_mod_para.conf
# 单独编译驱动加载:insmod mlan.ko && insmod moal.ko mod_para=nxp/wifi_mod_para.conf
# 验证接口(应显示mlan0、mmlan0)
ifconfig -a
- 成功标志:终端显示 mlan0 和 mmlan0 接口,状态为 BROADCAST、MULTICAST。
3. 核心流程:双 STA 接口连接 AP(分频段 + 分加密)
3.1 通用前置操作(所有连接前必做)
禁用 connman 服务,避免占用 Wi-Fi 接口导致连接失败:
3.2 mlan0 接口(5G)连接 AP
(1)WPA2-PSK 加密配置
- 创建配置文件:
nano /etc/wpa_supplicant-5g-wpa2.conf - 配置内容(替换 SSID 和密码为 5G AP 信息):
ctrl_interface=/var/run/wpa_supplicant update_config=1 p2p_no_group_iface=1 network={ ssid="WEIDONG-5G" # 5G AP的SSID psk="Apple_20220801" # 5G AP的密码 proto=RSN # 启用WPA2 key_mgmt=WPA-PSK pairwise=CCMP group=CCMP } - 启动服务并获取 IP:
# 后台启动wpa_supplicant wpa_supplicant -d -B -i mlan0 -c /etc/wpa_supplicant-5g-wpa2.conf -Dnl80211 & # 获取IP地址 udhcpc -i mlan0 - 验证连接:
ping 8.8.8.8,无丢包则说明 5G 路径连通。
(2)WPA3-SAE 加密配置
- 创建配置文件:
nano /etc/wpa_supplicant-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必需) } - 启动服务并验证:
# 终止原有wpa_supplicant进程 killall wpa_supplicant # 启动WPA3连接 wpa_supplicant -d -B -i mlan0 -c /etc/wpa_supplicant-5g-wpa3.conf -Dnl80211 & udhcpc -i mlan0 ping 8.8.8.8 # 验证连通性
3.3 mmlan0 接口(2.4G)连接 AP
(1)WPA2-PSK 加密配置(连接手机热点)
- 手机设置:开启 2.4G 热点(示例 SSID:SWD-Mate-60,密码:12345678);
- 创建配置文件:
nano /etc/wpa_supplicant-2g-wpa2.conf - 配置内容:
ctrl_interface=/var/run/wpa_supplicant update_config=1 p2p_no_group_iface=1 network={ ssid="SWD-Mate-60" # 2.4G热点SSID psk="12345678" # 热点密码 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP } - 启动服务并验证:
wpa_supplicant -d -B -i mmlan0 -c /etc/wpa_supplicant-2g-wpa2.conf -Dnl80211 & udhcpc -i mmlan0 # 查看双接口状态(均显示UP、RUNNING) ifconfig mlan0 && ifconfig mmlan0
(2)WPA3-SAE 加密配置(连接 2.4G 路由器)
- 创建配置文件:
nano /etc/wpa_supplicant-2g-wpa3.conf - 配置内容:
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="WEIDONG-2G" scan_ssid=1 key_mgmt=SAE proto=RSN pairwise=CCMP group=CCMP sae_password="Apple_20220801" ieee80211w=2 } - 启动服务并验证:步骤同 5G WPA3,最终双接口可同时在线,独立访问外网。
4. 关键参数解读(灵活适配场景)
4.1 频段限制参数(仅连接目标频段)
- 仅连接 2.4G:在配置文件的
network节点外添加: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 - 说明:
scan_freq参数用法相同,仅控制扫描频段,优先级低于freq_list。
4.2 加密与安全参数
ieee80211w:管理帧保护,WPA3 必需设 2(强制启用),WPA2 可选 0(禁用)/1(可选);key_mgmt:加密模式,WPA-PSK对应 WPA2,SAE对应 WPA3-Personal;sae_password:WPA3 专属密码字段,不可与 WPA2 的psk混用。
5. 避坑核心事项
- 必须禁用 connman 服务:否则会占用 Wi-Fi 接口,导致 wpa_supplicant 启动失败;
- 双 MAC 接口资源共享:每个 MAC 的 3 个接口(STA/uAP/WFD)共享硬件资源,避免单个接口长时间扫描,以免影响其他接口稳定性;
- WPA3 配置三要素:
host_mlme=1(驱动参数)+key_mgmt=SAE+ieee80211w=2,缺一不可; - 固件路径正确:确保
/lib/firmware/nxp/下存在pcieuart9098_combo_v1.bin,无 nxp 目录需手动创建; - 双 STA 并行注意:两个接口的 IP 网段需不同(如 mlan0 为 192.168.1.x,mmlan0 为 192.168.43.x),避免路由冲突。
88W9098 的双 MAC 设计是核心优势,支持双 STA 双频并行连接,兼容 WPA2/WPA3 加密,适配不同安全需求场景。整个流程的关键是驱动参数配置、wpa_supplicant 文件定制和冲突服务禁用,按本文步骤执行即可实现双 AP 同时连接,且支持灵活的频段限制。
阅读全文
264