扫码加入

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

NXP 88W9098双频Wi-Fi桥搭建实操:iptables实现以太网转2.4G/5G上网

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

NXP 88W9098 Wi-Fi 模组在 i.MX8MP-EVK 开发板上,可通过 iptables 转发规则实现以太网到双频 Wi-Fi(2.4G+5G)的透明桥接,支持两条独立上网路径:以太网→5G Wi-Fi(mlan0 接口)→外部 AP→互联网,或以太网→2.4G Wi-Fi(mmlan0 接口)→手机热点→互联网。核心思路是加载双 Wi-Fi 接口驱动、配置 AP 连接、启用 IP 转发与 iptables 规则、部署以太网 DHCP 服务,最终实现有线设备通过无线方式上网。本文详解从驱动配置到功能验证的完整流程,适用于工业网关、家庭网络扩展等场景。

资料获取:NXP Wi-Fi & Bluetooth Products-88W9098-以太网-to-双频Wi-Fi桥-中文

1. 核心目标与环境准备

1.1 技术目标

  • 加载 88W9098 驱动,启用 mlan0(5G)和 mmlan0(2.4G)双 STA 接口;
  • 配置双 Wi-Fi 接口分别连接外部 5G AP 和手机 2.4G 热点;
  • 通过 iptables 实现以太网与双 Wi-Fi 接口的流量转发;
  • 部署以太网 DHCP 服务,为有线连接设备分配 IP;
  • 验证两条上网路径的连通性,支持通过路由优先级切换默认路径。

1.2 软硬件环境

  • 硬件:i.MX8MP-EVK 开发板、NXP 88W9098 Wi-Fi 模组、外部 5G 路由器智能手机(开启 2.4G 热点)、PC(有线连接测试)、网线;
  • 软件:Linux BSP L6.12.3_1.0.0、88W9098 驱动(MM6X17505.p14-GPL)、固件(17.92.1.p149.60)、iptables、udhcpc/udhcpd;
  • 工具:终端工具(执行命令)、串口工具(查看日志)。

2. 驱动配置:启用双 Wi-Fi STA 接口

2.1 驱动参数配置(wifi_mod_para.conf)

驱动配置文件路径:/lib/firmware/nxp/wifi_mod_para.conf,核心参数如下(直接复用):
PCIE9098_0 = { 
    cfg80211_wext=0xf 
    max_vir_bss=1 
    cal_data_cfg=none 
    drv_mode=3  # 支持STA+uAP接口,仅用STA可设为1
    ps_mode=2   # 禁用省电模式,确保连接稳定
    auto_ds=2   # 禁用自动深度睡眠
    host_mlme=1 # 支持WPA3加密(可选)
    fw_name=nxp/pcieuart9098_combo_v1.bin  # 固件路径
} 
PCIE9098_1 = { 
    cfg80211_wext=0xf 
    max_vir_bss=1 
    cal_data_cfg=none 
    drv_mode=3 
    ps_mode=2 
    auto_ds=2 
    host_mlme=1 
    fw_name=nxp/pcieuart9098_combo_v1.bin 
}
  • 关键说明:drv_mode=3会生成 mlan0/uap0(第一组)和 mmlan0/muap0(第二组)四个接口,仅需使用 mlan0(5G)和 mmlan0(2.4G)作为 STA 接口。

2.2 加载驱动并验证接口

# 加载驱动
modprobe moal mod_para=nxp/wifi_mod_para.conf
# 验证驱动加载成功
dmesg | grep -e mlan -e wlan -e FW
  • 成功标志:日志显示 “Register NXP 802.11 Adapter mlan0”“Register NXP 802.11 Adapter mmlan0”“wlan: Driver loaded successfully”;
  • 查看接口:ifconfig -a可看到 mlan0、mmlan0 接口,状态为 BROADCAST、MULTICAST。

3. 双 Wi-Fi 接口连接配置(连接 AP / 热点)

3.1 5G Wi-Fi(mlan0)连接外部 AP

(1)创建 wpa_supplicant 配置文件

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 
    key_mgmt=WPA-PSK 
    pairwise=CCMP 
    group=CCMP 
}

(2)启动 wpa_supplicant 并获取 IP

# 禁用connman服务,避免接口冲突
systemctl disable connman
# 后台启动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 路径连通;
  • 路由信息:route -n可看到默认网关为 5G AP 的 IP(如 192.168.1.1),接口为 mlan0。

3.2 2.4G Wi-Fi(mmlan0)连接手机热点

(1)手机设置:开启 2.4G 热点(SSID:SWD-Mate-60,密码:12345678)

(2)创建 wpa_supplicant 配置文件

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 
}

(3)启动 wpa_supplicant 并配置网关

# 后台启动wpa_supplicant
wpa_supplicant -d -B -i mmlan0 -c /etc/wpa_supplicant-2g-wpa2.conf -Dnl80211 &
# 获取IP地址
udhcpc -i mmlan0
# 手动添加默认网关(手机热点网关,如192.168.43.1)
route add default gw 192.168.43.1 dev mmlan0
  • 验证连接:ping -I mmlan0 8.8.8.8,无丢包则说明 2.4G 路径连通;
  • 路由信息:route -n可看到两条默认网关,分别对应 mlan0 和 mmlan0。

4. iptables 配置:实现以太网与 Wi-Fi 流量转发

4.1 启用 IP 转发

# 编辑sysctl.conf,启用ipv4转发
nano /etc/sysctl.conf
# 移除以下行的注释符号#
net.ipv4.ip_forward=1
# 使配置生效
sysctl -p

4.2 配置 iptables 转发规则

# 配置NAT转发:mlan0和mmlan0接口的出站流量做地址伪装
iptables -t nat -A POSTROUTING -o mlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o mmlan0 -j MASQUERADE
# 允许已建立的连接和相关连接的转发
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# 允许mlan0到eth0的流量转发(Wi-Fi→以太网)
iptables -A FORWARD -i mlan0 -o eth0 -j ACCEPT
# 允许mmlan0到eth0的流量转发(Wi-Fi→以太网)
iptables -A FORWARD -i mmlan0 -o eth0 -j ACCEPT
# 重启iptables服务
systemctl --system daemon-reload
systemctl restart iptables

5. 以太网 DHCP 服务:为有线设备分配 IP

5.2 配置 udhcpd(DHCP 服务)

# 创建并编辑udhcpd配置文件
nano /etc/udhcpd-eth0.conf
配置内容:
start 192.168.6.10    # IP地址池起始
end 192.168.6.20      # IP地址池结束
interface eth0        # 绑定以太网接口
max_leases 11         # 最大租约数
lease_file /etc/udhcpd-eth0.leases  # 租约文件路径
opt dns 192.168.1.1 192.168.43.1 165.114.52.147 165.114.89.4  # DNS服务器(包含双Wi-Fi网关)
option subnet 255.255.255.0  # 子网掩码
opt router 192.168.6.2       # 以太网接口IP(eth0的IP)
option domain local
option lease 864000          # 租约有效期(10天)

5.2 创建租约文件并启动服务

# 创建租约文件
touch /etc/udhcpd-eth0.leases
# 启动udhcpd服务
udhcpc -S /etc/udhcpd-eth0.conf -f &
  • 验证:PC 通过网线连接开发板 eth0 接口,执行ipconfig /all(Windows)或ifconfig(Linux),可获取 192.168.6.x 网段 IP,网关为 192.168.6.2。

6. 功能验证:双路径上网测试

6.1 验证 5G 路径(以太网→mlan0→外部 AP)

(1)设置 5G 路径为默认网关(优先级 10)

# 添加mlan0网关(优先级10,默认优先使用)
route add default gw 192.168.1.1 dev mlan0 metric 10
# 添加mmlan0网关(优先级20,备用)
route add default gw 192.168.43.1 dev mmlan0 metric 20

(2)PC 端测试

ping 8.8.8.8
  • 成功标志:ping 无丢包,延迟约 36-38ms,说明流量通过 5G Wi-Fi 转发。

6.2 验证 2.4G 路径(以太网→mmlan0→手机热点)

(1)切换 2.4G 路径为默认网关(优先级 5)

# 提高mmlan0网关优先级(5>10,优先使用)
route add default gw 192.168.43.1 dev mmlan0 metric 5

(2)PC 端测试

ping 8.8.8.8
  • 成功标志:ping 无丢包,延迟约 49-62ms,说明流量切换到 2.4G Wi-Fi 转发。

7. 关键避坑事项

  1. 驱动接口启用:drv_mode=3会生成 4 个接口,仅需关注 mlan0(5G)和 mmlan0(2.4G),无需启用 uap0/muap0;
  2. connman 服务禁用:必须执行systemctl disable connman,否则会占用 Wi-Fi 接口,导致 wpa_supplicant 启动失败;
  3. 网关配置:mmlan0 获取 IP 后需手动添加默认网关,mlan0 会自动获取网关;
  4. 路由优先级:通过metric参数设置优先级(数值越小优先级越高),实现路径切换;
  5. iptables 规则:确保net.ipv4.ip_forward=1已启用,否则转发规则无效;
  6. DNS 配置:DHCP 服务的 DNS 需包含双 Wi-Fi 网关,确保两条路径都能正常解析域名。
88W9098 双频 Wi-Fi 桥的核心是 “双 STA 接口配置 + iptables 转发 + DHCP 服务”,通过两条独立 Wi-Fi 路径实现有线设备无线上网,支持灵活切换默认路径。整个流程无需复杂硬件改动,重点在于驱动参数适配、路由配置和 iptables 规则设置,适用于需要冗余上网路径或无线扩展的场景。

相关推荐