rk3588适配rtl8852be wifi
一. 前置说明
鲁班猫4的板子(rk3588)新增了一个wif模块:RTL8852BE,需要适配
环境:
OpenHarmony 5.1.0 release + linux kernel 6.6 + rk3588 + rtl8852be模组
二. 查看当前板卡wifi状态
通过ifconfig命令可见并没有发现wlan0/1等无线网卡
通过dmesg | grep wlan 查看日志:

结论:wifi驱动用的是bcmdhd_wifi6(AP6275S / AP6398S 这类博通 WiFi6),不是 RTL8852BE 驱动
三. 查找RTL8852BE驱动
结论:RTL8852BE在Linux内核版本5.17之后的内核中有内置,而当前用的6.6的内核,不用再下载
驱动路径://kernel/linux/linux-6.6/drivers/net/wireless/realtek/rtw89/rtw8852be.c (注意:不是rtl8852be.c)
四. 根据驱动文件,查看相关编译配置文件,修改编译配置
4.1 查看//kernel/linux/linux-6.6/drivers/net/wireless/realtek/rtw89/Makefile
第一个配置CONFIG_RTW89_8852BE,添加驱动文件编译,第二个配置CONFIG_RTW89_PCI 添加PCIe的编译(因为RTL8852BE用的是PCIe接口)

4.2 对应PCI的依赖,通过//kernel/linux/linux-6.6/drivers/net/wireless/realtek/rtw89/Kconfig也可看出:此驱动依赖PCI,通过 make menuconfig 生成.config时,打开“CONFIG_RTW89_8852BE=m”时会自动选中RTW89_CORE、RTW89_PCI、RTW89_8852B三个配置;但当前是直接修改defconfig (当前项目中是rockchip_linux_defconfig文件)不解析select、if条件,不会自动打开这三个配置项,需要在defconfig文件中手动添加

4.3 通过Kconfig还可用看出需要打开其他配置选项:RTW89、MAC80211

4.4 依赖的MAC80211选项,还有其他依赖:(以前有WiFi驱动,只是型号不一样,这些基础选项已打开,不再关注)

五. 新wifi芯片要加的配置
# WiFi 基础 ---这些基础配置以前已打开
CONFIG_CFG80211=y
CONFIG_MAC80211=y # MAC80211依赖CFG80211,CFG80211是所有wifi驱动的公共底座,必不可少
... ...
# Realtek WiFi6 (rtw89) ---新增配置
CONFIG_RTW89=m # 总开关
CONFIG_RTW89_CORE=m # 核心模块
CONFIG_RTW89_PCI=m # PCIe接口
CONFIG_RTW89_8852B=m # 8852基础驱动
CONFIG_RTW89_8852BE=m # 当前芯片驱动
六. 把旧wifi驱动相关配置项关闭


并修改defconfig文件:
# CONFIG_BCMDHD=y
# CONFIG_AP6XXX_WIFI6=y
# CONFIG_BCMDHD_FW_PATH="/vendor/etc/firmware/fw_bcmdhd.bin"
# CONFIG_BCMDHD_NVRAM_PATH="/vendor/etc/firmware/nvram.txt"
或者:
CONFIG_BCMDHD=n
CONFIG_AP6XXX_WIFI6=n
CONFIG_BCMDHD_FW_PATH=""
CONFIG_BCMDHD_NVRAM_PATH=""
七. 添加模组对应的固件
如将固件放到这个目录下:device/soc/rockchip/rk3588/hardware/wifi/rtl8852be
修改gn文件,编进镜像,放到设备特定目录中,如:
ohos_prebuilt_etc("rtw8852b_fw.bin") {
source = "$CONFIG_DIR/rtl8852be/rtw8852b_fw.bin"
install_images = [ system_base_dir ]
relative_install_dir = "../lib/firmware/rtw89"
part_name = "rockchip_products"
install_enable = true
}
更多推荐


所有评论(0)