WQ9101 WIFI6模组移植实操

物奇WQ9101是集成 Wi-Fi和蓝牙子系统的双模芯片。支持 802.11a/b/g/n/ac/ax协议、2.4G+5G双频并发的 Wi-Fi子系统,以及支持Bluetooth 5.3协议的蓝牙子系统。主要应用于 电视、 平板电视、 平板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
在这里插入图片描述

二、硬件连接与识别

模组使用QOGRISYSO9101UD模组焊在测试底板通过USB接口连接开发板。
在这里插入图片描述
上电后查询系统识别模组是否正常,使用dmesg查看上电打印或lsusb查看ID:

root@Industio:~# dmesg -c
[   63.569616] usb 2-1.3: new high-speed USB device number 4 using ehci-platform
[   63.703302] usb 2-1.3: New USB device found, idVendor=0ffe, idProduct=0002, bcdDevice= 1.01
[   63.703315] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   63.703321] usb 2-1.3: Product: WuQi USB Adapter
[   63.703326] usb 2-1.3: Manufacturer: WuQi
[   63.703334] usb 2-1.3: SerialNumber: 123456789
[   63.718315] cdc_acm 2-1.3:1.4: ttyACM0: USB ACM device
root@Industio:~# lsusb
Bus 002 Device 004: ID 0ffe:0002

三、WiFi驱动的交叉编译与加载

我司针对WQ9101芯片做了两款型号模组,一款是O9101UB,一款是O9101UD,芯片是一样的,都是USB接口,只是外围封装、天线等略有不同,详情请查询模组规格书,WiFi驱动也略有不同,请找软件FAE获取对应模组的最新驱动。
1、WQ9101UD驱动交叉编译与加载
解压驱动 unzip WQ9101UD_8.2.0.v490_20241012.zip
解压后进入目录WQ9101UD_8.2.0.v490_20241012/host_driver/kiwi_dtop_drv
在usb/Makefile文件设置交叉编译环境如下
在这里插入图片描述
设置好后保存退出,在kiwi_dtop_drv目录下执行make进行编译,接着跳转到WQ9101UD_8.2.0.v490_20241012/host_driver/rwnx_drv目录,在Makefile设置交叉编译环境:
在这里插入图片描述
设置好后保存退出,在rwnx_drv目录下执行make进行编译,以上编译完毕后总共有两个ko文件:

./host_driver/kiwi_dtop_drv/usb/kiwidtop_usb.ko
./host_driver/rwnx_drv/fullmac/rwnx_fdrv.ko

将这两个ko文件拷贝至开发板上,并将驱动fw目录下的4个bin文件拷贝至开发板的firmware目录下,加载驱动使用如下命令:
在这里插入图片描述
而后使用ifconfig -a查看是否生成wlan节点

root@Industio:~/wq9101/9101UD# ifconfig -a
wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 28:36:13:71:f1:3b  txqueuelen 1000  (Ethernet)
        RX packets 14  bytes 2425 (2.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 61  bytes 6688 (6.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 2a:36:13:71:f1:3b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2、O9101UB驱动交叉编译与加载
解压驱动 unzip WQ9101UB_8.2.0.445_20240904.zip
解压后进入目录WQ9101UB_8.2.0.445_20240904/kiwi_dtop_drv/kiwi_dtop_drv
在usb/Makefile文件设置交叉编译环境如下:
在这里插入图片描述
设置好后保存退出,在kiwi_dtop_drv目录下执行make进行编译,接着跳转到WQ9101UB_8.2.0.445_20240904/rwnx_drv目录,在Makefile设置交叉编译环境。
在这里插入图片描述
设置好后保存退出,在rwnx_drv目录下执行make进行编译,以上编译完毕后总共有两个ko文件

./kiwi_dtop_drv/kiwi_dtop_drv/usb/kiwidtop_usb.ko
./rwnx_drv/fullmac/rwnx_fdrv.ko

将这两个ko文件拷贝至开发板上,并将驱动fw目录下的4个bin文件拷贝至开发板的firmware目录下,加载驱动使用如下命令
在这里插入图片描述
而后使用ifconfig -a查看是否生成wlan节点

四、BT驱动的交叉编译与加载

WQ9101UB和WQ9101UD的蓝牙驱动是一样的
注意:加载蓝牙驱动之前必须先加载WiFi驱动!!!
解压蓝牙驱动unzip kiwi_bt_usb_drv.zip
解压后进入目录usb_bt_driver/kiwi_bt_drv/kiwi_bt_drv
在usb/Makefile文件设置kernel路径:
在这里插入图片描述
保存退出在kiwi_bt_drv目录下执行如下命令进行编译:

make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- mod=usb

ARCH和CROSS_COMPILE根据实际情况输入,mod是指定蓝牙接口类型。
编译完生成驱动文件usb/kiwibt_usb.ko,将wq9101_fw_bt_1_2.bin拷贝到开发板firmware目录下,kiwibt_usb.ko拷贝到任意目录
加载驱动命令:

insmod kiwibt_usb.ko fw_name=wq9101_fw_bt_1_2.bin bt_dev_mode=1

而后使用hciconfig -a查看是否生成hci节点

root@Industio:~/wq9101/wq_usb_bt# insmod kiwibt_usb.ko fw_name=wq9101_fw_bt_1_2.bin bt_dev_mode=1
[ 4768.925663] [wq_bt_drv]:BT: Loading driver
[ 4768.925810] [wq_bt_drv]:WuQi Bluetooth USB driver
[ 4768.926048] [wq_bt_drv]:bt_usb_probe: intf 000000007c0b71df id 000000008d9e359f
[ 4768.926054] [wq_bt_drv]:usb_update_fw_name: wq9101_fw_bt_1_2.bin
[ 4768.926068] [wq_bt_drv]:bt_usb_probe: USB2.0 detected
[ 4768.926077] [wq_bt_drv]:VID/PID = 0x0FFE/0x0002, Boot2 version = 0x101
[ 4768.929166] [wq_bt_drv]:FW is not Active, Needs to be downloaded
[ 4768.929174] [wq_bt_drv]:BT: Driver loaded successfully
root@Industio:~/wq9101/wq_usb_bt# 
root@Industio:~/wq9101/wq_usb_bt# 
root@Industio:~/wq9101/wq_usb_bt# hciconfig -a
hci0:   Type: Primary  Bus: USB
        BD Address: 28:36:13:71:F1:47  ACL MTU: 1021:9  SCO MTU: 255:16
        UP RUNNING PSCAN 
        RX bytes:0 acl:0 sco:0 events:62 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
        Features: 0xbf 0xee 0xcd 0xfe 0xdb 0xff 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV3 
        Link policy: RSWITCH SNIFF 
        Link mode: SLAVE ACCEPT 
        Name: 'Industio'
        Class: 0x0c0000
        Service Classes: Rendering, Capturing
        Device Class: Miscellaneous, 
        HCI Version:  (0xb)  Revision: 0x5
        LMP Version:  (0xb)  Subversion: 0x5
        Manufacturer: not assigned (1902)

root@Industio:~/wq9101/wq_usb_bt# 
root@Industio:~/wq9101/wq_usb_bt# hciconfig hci0 piscan  //设置蓝牙可被扫描可被连接属性
root@Industio:~/wq9101/wq_usb_bt# 
root@Industio:~/wq9101/wq_usb_bt# hciconfig -a
hci0:   Type: Primary  Bus: USB
        BD Address: 28:36:13:71:F1:47  ACL MTU: 1021:9  SCO MTU: 255:16
        UP RUNNING PSCAN ISCAN 
        RX bytes:0 acl:0 sco:0 events:67 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
        Features: 0xbf 0xee 0xcd 0xfe 0xdb 0xff 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV3 
        Link policy: RSWITCH SNIFF 
        Link mode: SLAVE ACCEPT 
        Name: 'Industio'
        Class: 0x0c0000
        Service Classes: Rendering, Capturing
        Device Class: Miscellaneous, 
        HCI Version:  (0xb)  Revision: 0x5
        LMP Version:  (0xb)  Subversion: 0x5
        Manufacturer: not assigned (1902)

至此蓝牙工作正常,可使用bluez相关工具去操作蓝牙了。如果是安卓系统,驱动加载时就不需要后面的参数了,直接insmod kiwibt_usb.ko 即可,而后搭配bt_hal使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值