【Rockchip android7.1 平台rtl8821cs wifi移植调试】

news2024/12/28 3:42:20

Rockchip 平台rtl8821cs wifi移植调试

  • 问题描述
  • 解决方法

郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的
转载请标明出处:攻城狮2015

Platform: Rockchip rk3128
OS:Android 7.1.2
Kernel: 3.10

问题描述

客户需要在现在的板子上调一款RTL8821cs wifi

解决方法

hal层修改

+++ b/hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c
@@ -78,6 +78,7 @@ static wifi_device supported_wifi_devices[] = {
        {"RTL8723DS",   "024c:d723"},
        {"RTL8188FU",   "0bda:f179"},
        {"RTL8822BU",   "0bda:b82c"},
+       {"RTL8821CS",   "024c:c821"},
        {"RTL8189ES",   "024c:8179"},
        {"RTL8189FS",   "024c:f179"},
        {"RTL8192DU",   "0bda:8194"},
+++ b/hardware/libhardware_legacy/wifi/wifi.c
@@ -89,6 +89,7 @@ extern int ifc_down(const char *name);
 #define RTL8723DS_DRIVER_MODULE_PATH "/system/lib/modules/8723ds.ko"
 #define RTL8188FU_DRIVER_MODULE_PATH "/system/lib/modules/8188fu.ko"
 #define RTL8822BU_DRIVER_MODULE_PATH "/system/lib/modules/8822bu.ko"
+#define RTL8821CS_DRIVER_MODULE_PATH "/system/lib/modules/8821cs.ko"
 #define RTL8822BS_DRIVER_MODULE_PATH "/system/lib/modules/8822bs.ko"
 #define RTL8189ES_DRIVER_MODULE_PATH "/system/lib/modules/8189es.ko"
 #define RTL8189FS_DRIVER_MODULE_PATH "/system/lib/modules/8189fs.ko"
@@ -101,6 +102,7 @@ extern int ifc_down(const char *name);
 #define DRIVER_MODULE_PATH_UNKNOW    ""
 
 #define RTL8822BS_DRIVER_MODULE_NAME "8822bs"
+#define RTL8821CS_DRIVER_MODULE_NAME "8821cs"
 #define RTL8723CS_DRIVER_MODULE_NAME "8723cs"
 #define RTL8723DS_DRIVER_MODULE_NAME "8723ds"
 #define RTL8188EU_DRIVER_MODULE_NAME "8188eu"
@@ -202,6 +204,7 @@ wifi_ko_file_name module_list[] =
        {"RTL8192DU", RTL8192DU_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
        {"RTL8822BU", RTL8822BU_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
        {"RTL8822BS", RTL8822BS_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
+       {"RTL8821CS", RTL8821CS_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
        {"RTL8188FU", RTL8188FU_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
        {"RTL8189ES", RTL8189ES_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
        {"RTL8723BS", RTL8723BS_DRIVER_MODULE_PATH, UNKKOWN_DRIVER_MODULE_ARG},
@@ -986,7 +989,8 @@ int wifi_change_fw_path(const char *fwpath)
 
     if (wifi_type[0] == 0)
         check_wifi_chip_type_string(wifi_type);
-    if (0 != strncmp(wifi_type, "AP", 2) || !strcmp(wifi_type, "AP6330")) {
+    //  if (0 != strncmp(wifi_type, "AP", 2) || !strcmp(wifi_type, "AP6330")) {
+        if (0 != strncmp(wifi_type, "AP", 2)) {
         return 0;
     }
+++ b/hardware/realtek/rtkbt/system/etc/bluetooth/rtkbt.conf
@@ -8,4 +8,4 @@ DevClassMajorClass=0x01
 DevClassMinorClass=0x1C
 
 #Indicate USB or UART driver bluetooth
-BtDeviceNode=/dev/rtk_btusb
+BtDeviceNode=/dev/ttyS0

kernel修改

+++ b/kernel/arch/arm/configs/rockchip_defconfig
@@ -303,10 +303,17 @@ CONFIG_USB_HSO=y
 CONFIG_USB_NET_INT51X1=y
 CONFIG_USB_IPHETH=y
 CONFIG_USB_SIERRA_NET=y
-CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP=y
-CONFIG_RTL8188EU=y
-CONFIG_ESP8089=y
-CONFIG_RKWIFI=y
+CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP=n
+CONFIG_CFG80211=y
+CONFIG_MAC80211=y
+CONFIG_SSV6051=m
+CONFIG_SSV6051_P2P=y
+CONFIG_SSV6051_SDIO=y
+CONFIG_WIFI_BUILD_MODULE=y
+CONFIG_RTL8188EU=n
+CONFIG_ESP8089=n
+CONFIG_RKWIFI=m
+CONFIG_RTL8821CS=m
 CONFIG_AP6335=y
+++ b/kernel/drivers/net/wireless/Kconfig
@@ -58,6 +58,7 @@ source "drivers/net/wireless/rockchip_wlan/rtl8189fs/Kconfig"
 source "drivers/net/wireless/rockchip_wlan/rtl8188fu/Kconfig"
 source "drivers/net/wireless/rockchip_wlan/rtl8822bs/Kconfig"
 source "drivers/net/wireless/rockchip_wlan/rtl8822bu/Kconfig"
+source "drivers/net/wireless/rockchip_wlan/rtl8821cs/Kconfig"
+++ b/kernel/drivers/net/wireless/Makefile
@@ -20,4 +20,5 @@ obj-$(CONFIG_RTL8188FU)        += rockchip_wlan/rtl8188fu/
 obj-$(CONFIG_ESP8089)                 += rockchip_wlan/esp8089/
 obj-$(CONFIG_RTL8822BS)        += rockchip_wlan/rtl8822bs/
 obj-$(CONFIG_RTL8822BU)        += rockchip_wlan/rtl8822bu/
+obj-$(CONFIG_RTL8821CS)        += rockchip_wlan/rtl8821cs/
剩下的就是添加wifi对应的驱动
kernel/drivers/net/wireless/rockchip_wlan/rtl8821cs
然后配置下dts对应的wlan  bluetooth,相关的gpio电压

郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的
转载请标明出处:攻城狮2015
有需要可以加VX
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1512472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【惠友精术】你见过给膝关节“打补丁”吗?单髁置换术,微创保膝真有一套

有什么方法可以让“换膝盖”既没那么痛,苦头又吃得少呢?你别说,还真有! 近日,关节外科团队顺利为一例膝关节退变的患者完成了“膝关节单髁置换术”,实施了微小切口下对膝关节病变部位的精准治疗。该手术的成…

SV-7045网络草坪音箱安装说明 景区园区背景音乐广播石头音箱

SV-7045网络草坪音箱安装说明 景区园区背景音乐广播石头音箱 在做室外公共广播/背景音乐系统时,对于草坪音箱的安装方法,大家可能不甚了解,所以将具体安装方法作简要说明。 音箱安装步骤如下: 1.测量草地音箱的底座尺寸大小,最…

07-java基础-锁之AQSReentrantLockBlockingQueueCountDownLatchSemapho

文章目录 0:AQS简介-常见面试题AQS具备特性state表示资源的可用状态AQS定义两种资源共享方式AQS定义两种队列自定义同步器实现时主要实现以下几种方法:同步等待队列条件等待队列 1:AQS应用之ReentrantLockReentrantLock如何实现synchronized不…

【数据结构C++】线性表/顺序表-数组与vector

系列文章目录 第一章 线性表/顺序表-数组与vector 文章目录 系列文章目录前言一、数据结构主要研究的内容?二、数据结构三要素三、数组1.C中数组基本语法1.1 数组的声明、初始化1.2 vector的底层结构 2.数据结构之数组详解2.1 数据结构之数组操作——增、删、改、查…

55寸oled曲面拼接屏的特性

55寸OLED曲面拼接屏具有一系列引人注目的特性,使其在高端展示、商业广告、会议室和舞台演出等场合具有广泛的应用价值。以下是关于55寸OLED曲面拼接屏特性的详细解析: 高亮度与高对比度:OLED技术使得屏幕能够在各种光线条件下呈现出明亮且清晰…

【构建部署_Docker介绍与安装】

构建部署_Docker介绍与安装 构建部署_Docker介绍与安装Docker介绍Docker安装CentOS安装DockerCompose 构建部署_Docker介绍与安装 Docker介绍 Docker 是一个基于go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#x…

算法---滑动窗口练习-2(无重复字符的最长子串)

无重复字符的最长子串 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址:无重复字符的最长子串 2. 讲解算法原理 首先定义了变量 left、right 和 len,分别表示当前无重复子串的左边界、右边界和最大长度。 获取输入字符串 s 的长度 n。 定…

nginx有几种启动方式

Nginx 通常可以以两种主要的方式启动:作为前台进程运行或作为守护进程(后台)运行。 前台运行: 当Nginx以前台模式运行时,它会在命令行保持活动状态,所有的日志输出都会直接显示在命令行上。这种模式通常用于…

2022-6 青少年软件编程(图形化) 等级考试试卷(一级)

第1题:【 单选题】 广场中有声控喷泉, 当声音的音量大于 60 的时候, 喷泉就会喷出水, 现在的音量为30,下列哪个选项可以让喷泉喷出水? ( ) A: B: C: D: 【正确答案】: B 【试题解析】 : 当前声音的音量为 30, 需要将声音增加到 60 以上就可以让喷泉喷出水, …

Unity开发中Partial 详细使用案例

文章目录 **1. 分割大型类****2. 与 Unity 自动生成代码协同工作****3. 团队协作****4. 共享通用逻辑****5. 自定义编辑器相关代码****6. 配合 Unity 的 ScriptableObjects 使用****7. 多人协作与版本控制系统友好** 在 Unity 开发中, partial 关键字是 C# 语言提供…

STM32的GPIO初始化配置-学习笔记

简介: 由于刚开始没有学懂GPIO的配置原理,导致后面学习其它外设的时候总是产生阻碍,因为其它外设要使用前,大部分都要配置GPIO的初始化,因此这几天重新学习了一遍GPIO的配置,记录如下。 首先我们要知道芯片…

ideaSSM教师评价管理系统springMVC开发mysql数据库web结构java编程计算机网页源码

一、源码特点 SSM 教师评价管理系统是一套完善的完整信息系统,结合SSM框架和bootstrap完成本系统SpringMVC spring mybatis ,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发 ),系统具有完整的源代码和…

Yakit爆破模块应用

yakit介绍 一款集成了各种渗透测试功能的集成软件。(类似于burp,但我感觉他功能挺强大) 爆破模块位置 按照下面图标点击 界面就是如下。 左侧可以选择爆破的类型,各种数据库http,ssh等都支持。 爆破参数 可以选择…

基于可穿戴式多模态人机接口的机械臂运动控制方法

随着科技的不断进步,人机接口在机械臂等辅助设备中的应用不仅为上肢运动障碍人群带来了显著的生活质量提升,同时也揭示出传统人机接口系统存在的一系列问题。这些问题包括指令较少、操作困难等方面,限制了机械臂等辅助设备在运动控制方面的多…

RocketMQ 面试题及答案整理,最新面试题

RocketMQ的消息存储机制是如何设计的? RocketMQ消息存储机制的设计原理: 1、CommitLog文件: 所有的消息都存储在一个连续的CommitLog文件中,保证了消息的顺序写入,提高写入性能。 2、消费队列: 为每个主…

3915A/B/C/D/E/F/G/H EMI测试接收机

3915A/B/C/D/E/F/G/H EMI测试接收机 产品综述 <<<<频率范围&#xff1a;10MHz~50GHz>>> 3915 系列EMI测试接收机是针对国家及国家电磁兼容标准测试需求推出的一款高性能接收机产品。它具有高灵敏度、高精度、大动态范围、低相位噪声等特点&#xff0c;支…

【spring】@Bean注解学习

Bean介绍 Bean用于指示一个方法应该产生一个Bean对象&#xff0c;并将其交给Spring容器管理。 当使用Bean注解的方法被Spring容器调用时&#xff0c;它只会执行一次&#xff0c;随后该方法返回的Bean对象会被添加到Spring的IOC&#xff08;Inversion of Control&#xff0c;控…

linux解析域名指令 nslookup 或者 host

host www.baidu.com 第二种方法 nslookup www.baidu.com 注意&#xff1a;ns是name server之意

鼓楼夜市管理wpf+sqlserver

鼓楼夜市管理系统wpfsqlserver 下载地址:鼓楼夜市管理系统wpfsqlserver 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于C#wpf架构和sql server数据库 功能模块&#xff1a; 登录注册 鼓楼夜市管理系统主界面所有店铺信…

YOLOv8独家改进:backbone改进 | TransXNet:聚合全局和局部信息的全新CNN-Transformer视觉主干| CVPR2024

💡💡💡本文独家改进:CVPR2024 TransXNet助力检测,代替YOLOv8 Backbone 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡💡💡全网独家首发创新(原创),适合paper !!! 💡…