一. 前置说明

鲁班猫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驱动

结论:RTL8852BELinux内核版本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依赖CFG80211CFG80211是所有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

}

 

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐