原理图

上图为USB-WiFi

\rk3568\kernel\arch\arm64\boot\dts\rockchip\rk3568-evb.dtsiwireless_wlan: wireless-wlan {compatible = "wlan-platdata";rockchip,grf = <&grf>;wifi_chip_type = "";   //rtl8821cuWIFI,vbat_gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_LOW>; //电源引脚status = "okay";};

第一步,配置WIFI,vbat_gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_LOW>;

可以看到WIFI模块有供电了

第二步,串口输入lsusb

第三步 路径:kernel\arch\arm64\boot\dts\rockchip\rk3568-evb1-ddr4-v10.dtsi

删除sdio-pwrseq,sdmmc1/2和wireless_bluetooth

第四步 移植驱动

1.修改成 “rtl8821cu” 放在路径:\rk3568\kernel\drivers\net\wireless\rockchip_wlan

2.路径:.kernel\drivers\net\wireless\rockchip_wlan\Makefile

obj-$(CONFIG_RTL8821CS) += rtl8821cs/
+obj-$(CONFIG_RTL8821CU) += rtl8821cu/
obj-$(CONFIG_RTL8822BS) += rtl8822bs/

3.路径:.kernel\drivers\net\wireless\rockchip_wlan\Kconfig

source "drivers/net/wireless/rockchip_wlan/rtl8821cs/Kconfig"
+source "drivers/net/wireless/rockchip_wlan/rtl8821cu/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8822bs/Kconfig"

4.路径:.kernel\arch\arm64\configs\rockchip_defconfig

CONFIG_RTC_DRV_HYM8563=y
+CONFIG_BT_RTKBTUSB=y
+CONFIG_RTL8821CU=m

5.路径:\kernel\drivers\net\wireless\rockchip_wlan\rtl8821cu\Makefile

 

########################## Android ###########################
# CONFIG_RTW_ANDROID - 0: no Android, 4/5/6/7/8/9/10/11 : Android version
CONFIG_RTW_ANDROID = 11ifeq ($(shell test $(CONFIG_RTW_ANDROID) -gt 0; echo $$?), 0)
EXTRA_CFLAGS += -DCONFIG_RTW_ANDROID=$(CONFIG_RTW_ANDROID)
endif########################## Debug ###########################
CONFIG_RTW_DEBUG = y
# default log level is _DRV_INFO_ = 4,
# please refer to "How_to_set_driver_debug_log_level.doc" to set the available level.
CONFIG_RTW_LOG_LEVEL = 2# enable /proc/net/rtlxxxx/ debug interfaces
CONFIG_PROC_DEBUG = y######################## Wake On Lan ##########################
CONFIG_WOWLAN = y
#bit3: ARP enable, bit2: deauth, bit1: unicast, bit0: magic pkt.
CONFIG_WAKEUP_TYPE = 0xf
CONFIG_WOW_LPS_MODE = default
#bit0: disBBRF off, #bit1: Wireless remote controller (WRC)
CONFIG_SUSPEND_TYPE = 0
CONFIG_WOW_STA_MIX = n
CONFIG_GPIO_WAKEUP = y##### Platform Related #######################
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID_INTEL_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n
CONFIG_PLATFORM_MIPS_AR9132 = n
CONFIG_PLATFORM_RTK_DMP = n
CONFIG_PLATFORM_MIPS_PLM = n
CONFIG_PLATFORM_MSTAR389 = n
CONFIG_PLATFORM_MT53XX = n
CONFIG_PLATFORM_ARM_MX51_241H = n
CONFIG_PLATFORM_FS_MX61 = n
CONFIG_PLATFORM_ACTIONS_ATJ227X = n
CONFIG_PLATFORM_TEGRA3_CARDHU = n
CONFIG_PLATFORM_TEGRA4_DALMORE = n
CONFIG_PLATFORM_ARM_TCC8900 = n
CONFIG_PLATFORM_ARM_TCC8920 = n
CONFIG_PLATFORM_ARM_TCC8920_JB42 = n
CONFIG_PLATFORM_ARM_TCC8930_JB42 = n
CONFIG_PLATFORM_ARM_RK2818 = n
CONFIG_PLATFORM_ARM_RK3066 = n
CONFIG_PLATFORM_ARM_RK3188 = y
CONFIG_PLATFORM_ARM_URBETTER = n#EFUSE_MAP_PATH
USER_EFUSE_MAP_PATH ?=
ifneq ($(USER_EFUSE_MAP_PATH),)
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"$(USER_EFUSE_MAP_PATH)\"
else ifeq ($(MODULE_NAME), 8189es)
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8189e.map\"
else ifeq ($(MODULE_NAME), 8723bs)
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8723bs.map\"
else
EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/vendor/etc/firmware/wifi_efuse_$(MODULE_NAME).map\"
endififeq ($(CONFIG_PLATFORM_ARM_RK3188), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS
# default setting for Android 4.1, 4.2, 4.3, 4.4
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_RESUME_IN_WORKQUEUE
# default setting for Power control
#EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
ifeq ($(CONFIG_SDIO_HCI), y)
EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
endif
# default setting for Special function
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/Rockchip/Rk3188/kernel
MODULE_NAME := 8821cu
endif

第五步:添加设备ID

路径:frameworks\opt\net\wifi\libwifi_hal\rk_wifi_ctrl.cpp

static wifi_device supported_wifi_devices[] = {{"RTL8812AU",  "0bda:8812"},{"RTL8821CS",  "024c:c821"},
+  {"RTL8821CU", "0bda:c820"},{"RTL8822CU",   "0bda:c82c"},......
}

第六步:添加模块加载的宏定义

路径:.frameworks\opt\net\wifi\libwifi_hal\wifi_hal_common.cpp

#define RTL8821CS_DRIVER_MODULE_PATH     WIFI_MODULE_PATH"8821cs.ko"
+#define RTL8821CU_DRIVER_MODULE_PATH     WIFI_MODULE_PATH"8821cu.ko"
#define RTL8822CU_DRIVER_MODULE_PATH     WIFI_MODULE_PATH"8822cu.ko"#define RTL8821CS_DRIVER_MODULE_NAME   "8821cs"
+#define RTL8821CU_DRIVER_MODULE_NAME   "8821cu"
#define RTL8822CU_DRIVER_MODULE_NAME     "8822cu"wifi_ko_file_name module_list[] ={"RTL8821CS", RTL8821CS_DRIVER_MODULE_NAME, RTL8821CS_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
+  {"RTL8821CU", RTL8821CU_DRIVER_MODULE_NAME, RTL8821CU_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},{"RTL8822CU", RTL8822CU_DRIVER_MODULE_NAME, RTL8822CU_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},

第七步:修改加载设备节点

路径:hardware\realtek\rtkbt\vendor\etc\bluetooth\rtkbt.conf

#Indicate USB or UART driver bluetooth
+BtDeviceNode=/dev/rtkbt_dev
+#BtDeviceNode=?/dev/ttyS1:H5

第八步:本机蓝牙设备名称:(默认为rk3566,更改为rk3568:)

路径:device\rockchip\rk356x\bluetooth\bdroid_buildcfg.h

+ //#define BTM_DEF_LOCAL_NAME  "rk3566"
+ #define BTM_DEF_LOCAL_NAME   "rk3568"

RK3568-B2-ANDROID11-WIFI-RTL8821CU相关推荐

  1. Android11 Wifi连接流程之IP地址分配

    在Android11 wifi连接流程中我们代码跟踪到了supplicant中开始associate,关联成功以后就是四次握手然后连接成功.连接成功以后还需要分配IP地址,才可以通信,这一节我们看一下 ...

  2. Android11 Wifi Mac地址设置随机或者固定分析

    Android11 Wifi Mac地址设置随机或者固定分析 本文对Android11 wifi MAC地址设置是否随机问题进行分析. 文章目录 Android11 Wifi Mac地址设置随机或者固 ...

  3. 【 Android11 WiFi开发 二 】WiFi连接、断开

    前言 上篇文章介绍了WiFi列表的获取与展示和WiFi状态改变的广播监听,本篇将介绍介绍对WiFi的操作,连接.忘记,查看已连接的WiFi信息等. 相关文章 1.[ Android11 WiFi开发 ...

  4. Android11 Wifi 加密类型详解

    Android Wifi 加密类型详解 文章目录 Android Wifi 加密类型详解 一.早期的WiFi认证标准 二.Android 中Wifi加密类型 1.代码中的声明 2.Wifi加密协议简介 ...

  5. NanoPi NEO Air使用三:OverlayFS、CPU温度和频率、wifi、蓝牙、npi-config

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  6. 20230129在AIO-3568J开发板在原厂Android11下跑通6275s

    20230129在AIO-3568J开发板在原厂Android11下跑通6275s 0.使用Firefly的AIO-3568J的自带Andorid11,内核按照Firefly的模式编译,Android ...

  7. 无线抄表免费透传云服务器,两个WIFI模块USR-WIFI232-B2连接有人云实现远程一对一透传...

    本案例基于STA模式的无线网络配置: 数据流向:PC端串口调试软件----1号A2/B2设备-----有人云透传组----2号A2/B2设备---PC端串口调试软件 客户实际应用:串口设备---A2/ ...

  8. RK3399教程:wifi驱动调试技巧

    公众号 欢迎扫码关注本人微信公众号:公众号上分享更多嵌入式知识和资料,分享个人学习嵌入式的心得体会.欢迎大家一起来玩呀. 疑问点? Android hal层需要配置那些东西? rk3399的wifi模 ...

  9. Android11 热点配置信息保存分析

    Android11 热点配置信息保存分析 文章目录 Android11 热点配置信息保存分析 一.Android11 wifi和热点 配置信息保存的文件位置 1.wifi和热点保存的实际位置 2.wi ...

  10. Android 11 WiFi扫描流程梳理

    上一篇我们梳理了WiFi的开启流程,Android11 WiFi开启流程,在最后我们说到ActiveModeWarden中注册了ClientListener监听器.我们接着这个逻辑继续梳理一下打开Wi ...

最新文章

  1. R最快且比dplyr最高效的大数据处理R包:tidyfst
  2. 在Java中如何使用transient
  3. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——41~66
  4. Winform中实现文件批量更名器(附代码下载)
  5. 如何在mapinfo中查看link ID
  6. (转) SpringBoot接入两套kafka集群
  7. IOS web app一些实用的属性设置
  8. jedis-2.4.1 中的JedisPoolConfig没MaxActive属性
  9. node.js 处理 http 请求
  10. python发微信工资条_我帮公司财务写了个“群发工资条”的Python脚本!
  11. SPSS学习笔记(四)非参数检验
  12. 毕业设计(毕设)目标和要求 (以计算机软件毕业设计为例)
  13. 用while循环 从1加到100
  14. 【Linux系列文章】软件包管理
  15. pcf8591c语言编程,PCF8591应用程序
  16. 进不了字节,腾讯等大厂没学历的程序员应该如何生存?
  17. PDPS软件:机器人点焊伺服焊枪大开、小开、关闭状态切换设置
  18. Gherkin简单使用
  19. 西电通院随机信号实验(FPGA实现2ASK键控、RC低通滤波器、Matlab实现SSB调制)
  20. JDK1.8+Spring5+SpringMVC5+Mybatis3.4项目(SMM框架)搭建

热门文章

  1. 【有利可图网】PS实战系列:制作抖音UI图标
  2. 车路协同云/边缘云服务平台概要【原创】
  3. 加州欧文计算机工程专业,加州大学欧文分校计算机工程排名第29(2018年TFE美国排名)...
  4. [STM32] Stm32f103c8t6+RC522 实现读卡写卡功能(超详细,零基础,小白)
  5. 如何创建html模版可编辑区,Dreamweaver中如何使用模板的创建与编辑
  6. C++ opencv viz位姿可视化
  7. AUTOIT做的小软件
  8. html边框是啥意思,css中border是什么意思
  9. jk触发器改为四进制_锁存器、触发器、寄存器和缓冲器的区别
  10. 【Pytorch】AlexNet图像分类实战