物奇WQ9201B是集成 Wi-Fi和蓝牙5.4的双模芯片。支持 802.11a/b/g/n/ac/ax协议、支持2T2R 1200Mbps DBAC或1T1R 2.4G+5G双频并发。主要应用于 电视、平板PC、工控等领域 。
一、平台信息
平台:触觉智能IDO-EVB3588-V1
Kernel版本:GNU/Linux 5.10.110 aarch64
系统版本:Ubuntu 20.04.6 LTS
搭载RK3588高性能SOC,集成了四核Cortex-A76和四核Cortex-A55 CPU,主频高达2.4G
二、硬件连接与识别
模组:QOGRISYS O9201PM
上电后使用lspci命令查看是否正常识别到模组,device ID是1fdd:0001就是正常的.
备注:前期的芯片会识别成以太网类型,后续的芯片会改成无线网卡类型。
三、WiFi驱动的交叉编译与加载
1、单独交叉编译驱动
在emu_host_drv/wifi/rwnx_drv/Makefile中找到KERNELDIR并设置内核绝对路径
KERNELDIR ?=/nt/d/rk3588/evb3588-sdk-v1d/rk3588_linux_230204/kernel/
保存退出在rwnx_drv目录下使用make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- 进行编译
注:ARCH和CROSS_COMPILE根据实际情况输入
编译完毕生成wq_wlan.ko,将ko文件拷贝至开发板任意目录,并将驱动包firmware目录下的所有文件拷贝至开发板的firmware目录下。
加载驱动:insmod wq_wlan.ko
使用ifconfig -a查看是否生成wlan节点:
2、将驱动集成到内核树
在kernel/drivers/net/wireless/rockchip_wlan目录下创建一个wq9201b目录用于存放驱动代码
在rockchip_wlan/Makefile添加如下行
在rockchip_wlan/Kconfig添加如下
然后在kernel根目录下执行make ARCH=arm64 menuconfig打开内核图形配置界面
最后打开kernel/.config文件查看宏定义是否开启
RK3588平台还有默认的config配置文件如下,也需要添加CONFIG_WQDHD=y,否则编译时会被默认的配置覆盖导致编译不到驱动代码
arch/arm64/configs/rockchip_linux_defconfig
arch/arm64/configs/rockchip_defconfig
其他平台视情况而定,能编译到9201PM的驱动代码即可
在SDK根目录下运行./build.sh kernel编译整个内核并生成内核镜像,烧录到板子上
接下来只要系统能正常识别到模组,fw也拷贝到系统firmware下,系统起来后执行ifconfig -a应该就可以看到wlan节点了。