下载驱动源码
https://gitee.com/xiaolinenet/linux-rtl8822cs-wifi
将下载的驱动源码复制到linux-5.10/drivers/net/wireless/rockchip_wlan/rtl8822cs/
驱动源码修改
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RK3188 = y
EXTRA_CFLAGS += -I$(srctree)/$(src)/include
EXTRA_CFLAGS += -I$(srctree)/$(src)/hal/phydm
EXTRA_CFLAGS += -I$(srctree)/$(src)/hal/btc
EXTRA_CFLAGS += -I$(srctree)/$(src)/platform
EXTRA_CFLAGS += -Os
Makefile添加以上内容,否则编译头文件缺少报错会改到怀疑人生…
在上层Kconfig添加项linux-5.10/drivers/net/wireless/rockchip_wlan/Kconfig
source "drivers/net/wireless/rockchip_wlan/rtl8822cs/Kconfig"
在上层Makefile添加编译linux-5.10/drivers/net/wireless/rockchip_wlan/Makefile
obj-$(CONFIG_RTL8822CS) += rtl8822cs/
编译报错修改
-
#include<linux/wlan_plat.h>找不到,下载源码,放入同级目录,修改头文件引用< >为" "
wlan_plat.h文件 -
delay_ms(10);函数找不到,注释掉
-
报错dhd_gpio(ld.lld:error:undefined symbol:dhd_wlan_mem_prealloc),在
linux-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile
打开CONFIG_BCMDHD_STATIC_BUF_IN_DHD := y
烧录验证
注意事项
修改设备树sdio,注释如下内容,否则sdio设备注册不上
总结
- 设备树(引脚配置):MHBase-4.1-3588/src/out/kernel/src_tmp/linux-5.10/net/rfkill/rfkill-wlan.c
- 模块驱动:MHBase-4.1-3588/src/out/kernel/src_tmp/linux-5.10/drivers/net/wireless/rockchip_wlan/8822cs(xxx.bin)
- wifi协议:MHBase-4.1-3588/src/out/kernel/src_tmp/linux-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd
参考链接
https://m.elecfans.com/article/2123761.html
https://www.artinchip.com/knowledge/oxy_ex-1/topics/wifi-rtl8821cs-luban.html
https://blog.youkuaiyun.com/weixin_43982460/article/details/116009321