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

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=0x01DevClassMinorClass=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=yCONFIG_USB_NET_INT51X1=yCONFIG_USB_IPHETH=yCONFIG_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=mCONFIG_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.mzph.cn/news/740791.shtml

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

相关文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的商品识别系统(深度学习+UI界面+训练数据集+Python代码)

摘要:在零售行业的技术进步中,开发商品识别系统扮演着关键角色。本博文详细阐述了如何利用深度学习技术搭建一个高效的商品识别系统,并分享了一套完整的代码实现。系统采用了性能强劲的YOLOv8算法,同时对YOLOv7、YOLOv6、YOLOv5等…

华为OD机试 - 字符串化繁为简(Java 2024 C卷 200分)

目录 专栏导读一、题目描述示例: 二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA&…

2024蓝桥杯每日一题(区间合并)

一、第一题:挤牛奶 解题思路:区间合并 区间合并模板题 【Python程序代码】 n int(input()) a [] for i in range(n):l,r map(int,input().split())a.append([l,r]) def cmp(x):return x[0],x[1] a.sort(keycmp) res1,res20,0 st,ed a[0][0…

visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题

3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP,前者使用方法需要指明线的两个端点,后者自动连接相邻两个点。 姿态问题 网上看了一些,没有涉及到朝向设置,Pose.orientation默认构造为4个0 至…

Python环境下一维时间序列的小波尺度谱和时间平均小波谱(基于Morlet小波)

小波分析是较好的非平稳信号分析方法之一,它通过伸缩和平移运算对信号进行多尺度细化分析,能够在不同的尺度上描述信号的局部特征,为微弱故障特征信号的检测提供了有效的工具。小波尺度谱可看作一个有恒定相对带宽的谱图,能够反映…

Java剖析 : HashMap底层存储数据的结构 | HashSet添加不重复元素底层原理

HashSet底层剖析 前言: 我们知道Set中所存储的元素是不重复的,那么Set接口的实现类HashSet在添加元素时是怎么避免重复的呢? ★ HashSet在添加元素时,是如何判断元素重复的? ● 在底层会先调用hashCode()&#xff0c…

OpenAI:ChatGPT API 文档之 Embedding

在自然语言处理和机器学习领域,"embeddings" 是指将单词、短语或文本转换成连续向量空间的过程。这个向量空间通常被称为嵌入空间(embedding space),而生成的向量则称为嵌入向量(embedding vector&#xff0…

14---DVI电路设计

视频链接 DVI硬件电路设计01_哔哩哔哩_bilibili DVI电路设计 1、DVI的简介 DVI(Digital Visual Interface),即数字视频接口。它是1998年9月,在Intel开发者论坛上成立的,由Silicon Image、Intel(英特尔)、Compaq(康柏)、IBM(国际商业机器公…

时序数据库:TDengine整体架构

文章目录 [toc]一、集群与基本逻辑单元1.主要逻辑单元2.节点之间的通讯3.一个典型的消息流程 二、存储模型与数据分区、分片1.存储模型2.数据分片3.数据分区4.负载均衡 三、数据写入与复制流程1.Master Vnode 写入流程2.Slave Vnode 写入流程3.主从选择4.同步复制 四、缓存与持…

五 超级数据查看器 讲解稿 列表功能2

五 超级数据查看器 讲解稿 列表功能2 点击此处 以新页面 打开B站 播放教学视频 点此下载 百度手机助手 下载地址4 讲解稿全文: 大家好,今天我们讲解一下,超级数据查看器列表界面,分为1-2两集。这是第二集 继续讲解弹出式菜单…

Linux环境(Ubuntu)上的防火墙工具使用方法

目录 概述 1 防火墙工具(ufw) 1.1 安装防火墙工具: 1.2 操作防火墙相关命令 2 ufw操作命令的范例 2.1 打开/关闭防火墙 2.1.1 打开防火墙 2.1.2 关闭防火墙 2.1.3 查询当前防火墙状态 2.1.4 允许选择的端口访问 2.1.5 允许选择固定…

【数据结构】线性表的定义及基本操作

文章目录 前言线性表的定义线性表的基本操作基本操作其他常用操作 总结 前言 数据结构的三要素是逻辑结构、数据的运算、存储结构(物理结构),存储结构不同,运算的实现方式也不同。 本次文章包括线性表的定义和基本操作&#xff0…

java零基础入门-map(上)

一、教学目标 掌握何为map能够说出map集合的特点。能够使用map集合添加元素、删除元素等伴生方法。 二、正文 1、概述 说起map,想必大家并不陌生吧。之前我在讲Collection集合的时候,我是给大家提过一嘴,我说Collection集合被称为单列集合…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的人群密度检测系统(深度学习模型+UI界面+训练数据集)

摘要:开发人群密度检测系统对于公共安全等领域具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个人群密度检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5,展示了不同模型…

07-java基础-锁之AQSReentrantLockBlockingQueueCountDownLatchSemapho

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

oracle临时表空间不释放

项目报错 nested exception is java.sql.SQLException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP 原因是临时表空间满了,临时表空间一直增长,未释放导致临时表空间使用率100%。 查询临时表空间使用率 --临时表空间利用率…

拓扑排序 很简单

原文链接:图论第四讲:拓扑排序 说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。 之前的图论合集文章中讲了图的存储遍历、最短路等算法,文章链接如下 图论第一讲&am…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑碳捕集机组与氢储能系统协调运行的源荷储低碳经济调度》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

AI新工具(20240312) Midjourney官方发布角色一致性功能;免费且开源的简历制作工具;精确克隆语调、控制声音风格

1: Midjourney角色一致性功能 使人物画像在多方面高度一致成为可能。 Midjourney的角色一致性功能的使用方法如下: ⭐在你的输入指令后面加上 --cref URL,其中URL是你选择的角色图像的链接。 ⭐你可以通过 --cw 参数来调整参照的强度,范围…

剑指offer经典题目整理(四)

一、树的子结构 1.链接 树的子结构_牛客题霸_牛客网 (nowcoder.com) 2.描述 给两颗二叉树A B,判断B是不是A的子结构 3.思路 将问题拆解开来,首先是找到a树中子结构的位置,然后是判断是否相同,也就是说,我们需要去…