赞
踩
前不久适配了RTL8852BE模组,趁热记录下验证WIFI/BT功能以及遇到的问题。别急往下看喜欢我的文章可以在公众号右上角设置为星标。
PC系统:Windows10
虚拟机:VMware-17
虚拟机系统:Ubuntu-20.04
主控开发板: 飞凌的RK3588
内核: 5.10
系统: ubuntu20.04
无线模组:RTL8852BE
蓝牙协议栈:bluez5.53
datasheet里贴的模组简介
RTL8852BE是一款双频WiFi6 WLAN+BTv5.2 Combo的M.2卡
下图是WiFi部分连接图
可以看到WiFi是3.3v供电,用的是PCIE2.0x1_2
下图是Bluetooth部分连接图
由于飞凌开发板原先板载的是AW9098是UART蓝牙,但是RTL8852BE模组用的是USB蓝牙所以我们要飞线到主控的USB2.0控制器网络上,不然蓝牙无法识别
下图是我将原先开发板底板的原理图进行修改,这么修改的话会将原先USB2.0控制器的USB2.0device将无法正常工作,我们只是验证功能
硬件原理图连接已经很清楚,接下来就是刺激紧张的驱动适配上的工作
将pcie2x110添加进来
&pcie2x1l0 {
reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_pcie20>;
status = "okay";
};
将厂家提供的驱动放在driver/net/wireless/rockchip/目录下
修改Makefile
修改Kconfig
修改defconfig
编译内核得到8852be.ko
首先查看lspci无线网卡是否认到
然后进行驱动加载
insmod 8852be.ko
lsmod可以看到加载成功的8852be.ko
其次ifconfig下可以看到wlan0节点
通过wpa_cli方式进行连接WiFi
/sbin/wpa_supplicant -d -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -B
wpa_cli -i wlan0 add_network
wpa_cli -i wlan0 set_network 0 ssid '"WPA2_PSK_TEST"'
wpa_cli -i wlan0 set_network 0 key_mgmt WPA2-PSK
wpa_cli -i wlan0 set_network 0 psk '"11111111"'
wpa_cli -i wlan0 enable_network 0
ping百度正常
将usb2.0添加进来
&usb_host0_ehci {
status = "okay";
};
&usb_host0_ohci {
status = "okay";
};
需要注意的是Realtek的模块,不能使用内核自带的驱动btusb.c,需要使用**Realtek自己的驱动
**rtk_bt.c
如果用内核自带的btusb驱动报的错误日志信息,未识别8852的IC,会导致扫描周边的蓝牙设备扫描不出来
接下来我们使用Realtek的驱动步骤
修改Makefile
修改defconfig
将bluetooth需要加载的固件放在rootfs的/lib/firmware目录下面
首先查看lsusb要能识别USB蓝牙
其次查看hciconfig有出来
用bluetoothctl工具进行连接
bluetoothctl
agent on
scan on
pair xx:xx:xx:xx:xx:xx
connect xx:xx:xx:xx:xx:xx
查看连接情况,我连的是我的手机是正常的
作者潘小帅, 是一名Linux底层爱好者,平时写写技术原创文章,徒步,旅游,看电影的爱好,喜欢我的文章可以点赞收藏+关注,感谢你的支持,微信公众号【Linux随笔录】
本文由mdnice多平台发布
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。