在这个万物互联的时代,无线通信技术已经成为嵌入式系统中不可或缺的一部分。其中,Wi-Fi模块作为连接设备与网络的重要桥梁,其性能与兼容性显得尤为关键。Intel的AX210NGW Wi-Fi 6E模块作为一款高性能的无线网络适配器,不仅支持最新的Wi-Fi 6E标准和蓝牙5.3,还具备出色的传输速度和兼容性,为嵌入式系统的无线连接提供了强有力的支持。

为了更好地满足客户对高性能嵌入式主控的应用需求,本文将详细介绍在飞凌嵌入式OK3576-C开发板上适配AX210NGW Wi-Fi 6E模块(以下简称模块)的方法,帮助开发者快速上手并充分发挥性能优势。
注:目前暂未对Wi-Fi模块的蓝牙功能进行适配,本文只讲解Wi-Fi功能的适配方式。

首先,需要将Wi-Fi模块连接到飞凌嵌入式OK3576-C开发板上(Wi-Fi模块使用的是M.2 key A+E接口,但通过接口图看到OK3576-C开发板没有此接口,这时使用M.2转PCIe双频无线网卡转接卡进行转接就可以)。
进入内核目录开始配置:
forlinx@ubuntu20:~/3576$ cd kernel-6.1/
forlinx@ubuntu20:~/3576/kernel-6.1$ make menuconfig ARCH=arm64
按如下顺序进行选择:
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Intel devices (WLAN_VENDOR_INTEL [=y])
-> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) (IWLWIFI [=m])
-> Intel Wireless WiFi MVM Firmware support (IWLMVM [=m])
进行编译:
forlinx@ubuntu20:~/3576/kernel-6.1$ export CROSS_COMPILE=/home/forlinx/3576/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
forlinx@ubuntu20:~/3576/kernel-6.1$ export PATH=$PATH:/home/forlinx/3576/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/
forlinx@ubuntu20:~/3576/kernel-6.1$ make ARCH=arm64 rk3576-evb1-v10-linux.img
最后将编译好的模块自行拷贝到OK3576-C开发板中,我们这里是将模块拷贝到 /root目录中了。模块在内核源码中的路径:
(1) drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
(2) drivers/net/wireless/intel/iwlwifi/mvm/iwlmvm.ko
除此之外,还需要将Wi-Fi固件和STA脚本拷贝到/root目录中备用。
root@rk3576-buildroot:/root# ls
firmware.zip fltest_wifi.sh iwlmvm.ko iwlwifi.ko
STA脚本可以参考以下内容,如自行创建脚本,记得要添加可执行权限。
#!/bin/sh
cnt1=`ps aux | grep hostapd | grep -v grep | wc -l`
if [ "$cnt1" != "0" ];then
killall hostapd > /dev/null
fi
ifconfig