rk3288 6222b 模组调试 (rtl8822cs)--wifi

2023-11-08

rtl8822cs 模块 wifi调试 记录

任务:在rk3288 android7.1 上移植配置 rtl8822cs 的wifi模块

思路:
将厂商给的 wifi 驱动换上,并在 内核中 修改对应 makefile 和 Kconfig 以添加,并且在 rk 配置 wifi 型号的代码中 配置添加好,然后会通过wifi 型号去加载对应的驱动模块。截取文档中的说明:

wifi 芯片识别流程
1. 开机对 wifi 模块上电,并自动进行扫描 sdio 操作
2. 系统启动打开 wifi 操作时,分别对系统 sys/bus/sdio(sdio wifi), sys/bus/usb(usb wifi),
sys/bus/pic (pcie wifi )文件系统下的 uevent 进行读取
3. 获取到 wifi 芯片 vid pid 加载相应的 wifi ko 驱动
4. 识别到相应的 wifi 模块后,即可知道相应的 bt 型号,走不同的 bluedroid 协议栈

调试驱动打印:
内核rfkill 驱动:[WLAN_RFKILL] 对应着 kerne/net/rfkill/rfkill-wlan.c (配置 wifi gpio 口的驱动)
rtl88x2cs 驱动:RTW 对应着 kernel/drivers/net/wireless/rockchip_wlan/rtl8822cs (配置对应模块的驱动)

rk平台与 wifi 相关文件修改:

*.dts
hardware/libhardware_legacy/include/hardware_legacy/wifi.h
hardware/libhardware_legacy/wifi
kernel/net/rfkill/rfkill-wlan.c

在dts 中需要注意的是文档中提及 wifi_chip_type 这个节点可以不需要配置,但是查看代码,好像是在 rfkill-wlan.c 中有做判断,所以这个还是需要修改。

具体的rk文档中提到的 dts 的配置,和移植的基本流程就不再赘叙,需要注意的是,基本的流程移植后,realtek wifi 的驱动需要做修改,具体 rk 有一份 realtek wifi 移植的文档,需要做的是修改 module_init 相关的函数,这部分可以参考已经移植好的 realtek wifi 驱动,然后 需要注意的是 要修改 驱动中的 makefile 文件 ,打开 对应的宏定义,具体在文档中也有提及。

这个模组是 sdio wifi ,所以首先 要确认sdio 扫卡是否有扫到当前设备 ,目录是在 /sys/bus/sdio/device/ 下查看,如果没有,正常是需要配合硬件去查明原因,要确定复位引脚,时钟这些是否有问题,在调试该模块的时候,出现 引脚都没问题,就是扫不到 sdio 设备
解决方法,打入以下补丁:

--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -648,8 +648,14 @@ try_again:
      * to make sure which speed mode should work.
      */
     if (!powered_resume && (rocr & ocr & R4_18V_PRESENT)) {
+#if 0 /* SDIO 3.0 patch for Realtek 88x2BS */
         err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180,
                     ocr_card);
+#else
+        pr_warn("%s: Skip set signal voltage to 1.8v\n",
+                mmc_hostname(host));
+        err = 0;
+#endif
         if (err == -EAGAIN) {

打入补丁后,解决了 sdio 设备找不到的问题,但是 wifi 还是无法使用,提示加载库失败,然后问厂商,告知不是驱动的问题。
针对当前模块的解决方法:将 sdio 的时钟频率 从默认的 150M 改成 50M ,后加载库成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rk3288 6222b 模组调试 (rtl8822cs)--wifi 的相关文章

  • Linux驱动——设备树

    在对总线设备驱动进行详细说明时可以看出 虽然总线设备驱动可以实现驱动和设备分离 但是总线设备驱动引发另外的一个问题就是在相同的芯片不同的开发板上 当外设资源不同时需要在不同的设备文件中去定义引脚 这样就导致开发板中保留大量设备文件 为了解决
  • STM32常用小驱动

    STM32常用小驱动 灯控及蜂鸣器驱动 按键消抖使用例子 蜂鸣器控制列子 数据处理校验计算类 因为疫情 最近在做红外温度检测设备 一些设备组合控制逻辑 灯控及蜂鸣器驱动 支持循环响 响多少次 响多少秒 FILE misc drv c Cre
  • 程序、进程、线程联系以及进程和线程的区别和联系

    程序和进程的区别与联系 程序是一组有序的指令集合是一个静态的概念 一个程序由一组指令组成 以二进制方式存在存储器中 进程是程序及其数据在计算机上的一次运行活动 是一个动态的概念 进程的运行实体是程序 离开的程序的进程没有意义 进程是由程序
  • 高通平台android9.0充电电量,充电指示灯以及充电图标读取分析

    第一部分 qpnq qg c static int qpnp qg probe struct platform device pdev INIT WORK chip gt udata work process udata work INIT
  • 罗技驱动检测不到设备?解决方法

    罗技旗下的鼠标是很多用户都在使用的设备 需要用户安装驱动程序才能够运行 而近期有些小伙伴遇到了罗技驱动检测不到设备的情况 这该如何处理 纯净之家 win7纯净版系统 win7 ghost 纯净版 方法一 1 检测不到设备也有可能不是驱动的问
  • Android 内核调用充电状态和电池电量

    Android 内核调用充电状态和电池电量 前言 一 调用的文件 二 调用函数 1 引入使用 2 返回值说明 小结 前言 因为Android项目需求 不是什么时候都是用APP来实现功能 部分项目是要求需要驱动需要独立完成部分系统层面的功能
  • 关于安卓调试的log系统

    在安卓系统下 对应用程序的调试 有一个特有的方式 就是log系统 其实就和C语言中的printf函数的使用类似 但是 它是将调试信息存入了缓冲区内 而安卓有四个缓冲区 他的设计模式是模仿了linux内核中的缓冲区模式 将所有的调试信息放入缓
  • 主板中的Win10/win8.1 WHQL支持是否要开启

    主板中的Win10 win8 1 WHQL支持是否要开启 在新式的电脑主板上会有Windows 10 8 1 WHQL支持开启的选项 这个选项的开启和关闭分别代表什么意义呢 这其实还要从UEFI和Legacy两种不同BIOS的说起 Lega
  • uhd驱动安装(usrpB210,usrpX310等)

    sdr技术与设备介绍 参考博文地址 上述博文介绍了什么是SDR技术 以及sdr设备的分类应用 问题描述 使用sdr设备 usrpx系列 usrpb系列 的准备 驱动 镜像 方案一 推荐方案 资源下载地址 一个UHD源码 一个UHD对应的镜像
  • linux驱动开发(四):ioctl()函数

    前文中我们介绍了应用程序通过使用虚拟文件系统VFS提供的接口 来控制字符驱动程序 完成字符驱动设备的open close read write操作 但是如果我们想进行除此以外的其他操作 拓展一些file operations给出的接口中没有
  • Win10下VS2019双机调试之调试驱动

    转载于 https blog csdn net m0 48995611 article details 112211268 有现成的写的非常详细就不重复造轮子了 ps 1 注意文章字体加深部分 非常重要 2 原文bcdefit dbgset
  • 应用程序如何调用驱动

    以write函数举例 详细调用流程 insmod驱动程序 申请设备名 设备号以及指定fops方法 这些可以在 proc devices中获得 从 proc devices中获得主设备号 并使用mknode命令来建立设备节点文件 这是通过主设
  • 解决Debian 11系统缺少无线网卡固件rtl8192cfw.bin

    解决Debian 11系统缺少无线网卡固件rtl8192cfw bin 一 先简单介绍解决办法 rtlwifi rtl8192cfw bin 是无线网卡的固件 其实缺少它网卡也是可以用的 只是不知道是不是这个原因导致丢包频繁 在CSDN找到
  • rk3288 6222b 模组调试 (rtl8822cs)--蓝牙

    任务 在rk3288 android7 1 上移植配置 rtl8822cs 的蓝牙模块 思路 拿到厂商的蓝牙驱动 参考里面的 驱动移植步骤 注 需要注意的是 最新的驱动是否和 Bluetooth app 中 jni 的代码匹配 文档中提到的
  • Linux驱动开发入门(二)VS code驱动开发配置

    开发环境配置 安装 配置 安装 VS code是一款功能强大的开源编辑器 能够在各个平台安装使用 如Linux Widows Mac 而我们Linux驱动直接运行在Linux上 所以下载安装在Linux平台 示例机系统为Ubuntu 20
  • “Failed to initialize NVML

    Checking nvidia driver version with error Failed to initialize NVML GPU access blocked by the operating system 解决办法 360安
  • linux驱动模块的加载和卸载

    Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中 这样当 Linux 内核启动的时候就会自动运行驱动程序 第二种就是将驱动编译成模块 Linux 下模块扩展名为 ko 在Linux 内核启动以后使用 insmod
  • 应用层与驱动层通信DeviceIoControl

    驱动层与应用层通信是通过DeviceIoControl 符号定义 define DEVICE NAME L Device myDriver Driver Name define SYMBOLIC LINK NAME L DosDevices
  • 字符设备驱动相关函数

    Linux内核中 a 使用cdev结构体来描述字符设备 b 通过其成员dev t来定义设备号 分为主 次设备号 以确定字符设备的唯一性 c 通过其成员file operations来定义字符设备驱动提供给VFS的接口函数 如常见的open
  • Windows 11开启硬件加速后出现的黑屏、闪屏(如Edge浏览器、照片)问题的两种解决方案

    2022年3月21日更新 若只有Edge出现闪屏问题 可跳到下方查看原文章 若其他软件也出现闪屏问题的话 可能是Intel核显驱动的问题 可以到Intel官网搜索相应的驱动程序 不要下载最新版 core 6 11代驱动下载地址 https

随机推荐

  • chatgpt赋能python:Python量化数据来源-介绍

    Python量化数据来源 介绍 Python在金融量化分析领域中得到了广泛的应用 这部分应用通常被称为Python量化金融 Python量化数据来源是Python量化金融分析的基础 只有良好的数据来源才能保证分析的准确性和有效性 Pytho
  • Python图形界面的设计,Turtle库的使用

    一 学习目标 1 Turtle库的简介 2 调用Turtle库 3 绘画起点和方向 4 画布 二 知识点 1 Turtle库的简介 Turtle库是Python语言中一个很流行的绘图图像函数库 中文意思是甲鱼 海龟 所以也称为海龟库 Tur
  • Anaconda安装路径和包路径问题

    文章目录 Anaconda的安装路径 使用pip install 下载后的包的路径在哪里 Anaconda的安装路径 在默认情况下 Anaconda安装的默认路径是C ProgramData Anaconda3 而conda环境的默认安装路
  • 数据结构--顺序表的基本操作--插入 and 删除

    数据结构 顺序表的基本操作 插入 顺序表的插入操作 实现目标 ListInsert L i e 插入操作 在表L中的第i个位置上插入指定元素e typedef struct int data MaxSize int len Sqlist 代
  • 华为OD机试 Python 数字比大小

    描述 A和B是两位好友 他们决定进行一个数字比赛 他们都拿到两个数字列表 两个列表的长度都相同 但里面的数字并不一样 现在 他们需要从自己的列表中挑选一个数字 看谁选的数字大 选大的得1分 选小的扣1分 如果数字相同则不加分也不扣分 已经用
  • js逆向-逆向基础

    js逆向 逆向基础 1 1 语法基础 Js调试相对方便 通常只需要chrome或者一些抓包工具 扩展插件 就能顺利的完成逆向分析 但是Js的弱类型和语法多样 各种闭包 逗号表达式等语法让代码可读性变得不如其他语言顺畅 所以需要学习一下基础语
  • PhotoShop 之 图层中的 Ctrl + Alt +T 和 Ctrl + Alt + Shift + T

    1 Ctrl Alt T 该按钮会选中图层 鼠标移动 会复制一个新的图层 原图 Ctrl Alt T 之后 M 图 被选中 按住鼠标左键 并往下拖动 复制完成之后 按下回车键 退出选中状态 2 先按下Ctrl Alt Shift 然后按下T
  • error while loading shared libraries: libcudart.so.9.1:cannot open shared object file: No such file

    在实现YOLO目标检测时 出现如下错误 error while loading shared libraries libcudart so 9 1 cannot open shared object file No such file 解决
  • 中国高房价时期it从业人员指导工资简易计算公式-国标(GB54321)

    版权所有 瞿正峰 转载请保留版权声明 http blog csdn net gonxi 中国高房价时期it从业人员指导工资简易计算公式 在线计算器 http www gonxi com 快去算算你的工资 A 10年期间的平均每月工资 Wa
  • v1

    func size 179844 size data 7854BB174689C0DB2EEE7C23D2A0C6BD91EFF7DE6766930B1E5882849BFAF293 A7633CDAD850DC3F469E91E72199
  • 丢掉Excel,手把手教你用Python做可视化,还能调节动画丝滑度

    数据可视化动画还在用Excel做 现在一个简单的Python包就能分分钟搞定 而且生成的动画也足够丝滑 效果是酱紫的 这是一位专攻Python语言的程序员开发的安装包 名叫Pynimate 目前可以直接通过PyPI安装使用 使用指南 想要使
  • Python>>SQL我只写复制粘贴的

    介绍 写sql字段太多核对编写起来太累了 公司项目又紧 一星期3000多行sql 要各种转换调用各种接口 所以为了提高工作效率 争取更多时间 摸鱼 我就用python了 相对于其它重复的敲小伙伴 我就直接飞起 现向大家展示个人比较常用的编写
  • Redis高级特性:虚拟内存的使用技巧

    首先说明下redis的虚拟内存与操作系统的虚拟内存不是一码事 但是思路和目的都是相同的 就是暂时把不经常访问的数据从内存交换到磁盘中 从而腾出宝贵的内存空间用于其他需要访问的数据 尤其是对于redis这样的内存数据库 内存总是不够用的 除了
  • 五个方向告诉你如何运营好一个公众号!

    来源 新媒之家 内容运营到底要怎么做呢 本文作者结合经验从选题 内容 编辑 目的 传播五个方面浅谈了内容运营应该如何做 希望对你有所帮助 运营一个公众号很简单 但运营好公众号却太难 好与坏的评判关键在于内容 内容越优质 用户粘性自然越强 口
  • “拍领导马屁,升职加薪无戏”

    在知乎上看到这样一个提问 怎么现在的年轻人都不愿意讨好领导了 看完我忍不住笑了 我刚入职场那会儿 总能看到 前辈 透露给年轻人一些职场潜规则 不懂揽活讨好领导 没有进取心 多分给你杂务 那是领导考验你 要学会忍耐 这些 经验 拿到现在 受到
  • ImportError: cannot import name 'ImmutableDict' from 'werkzeug'

    ImportError cannot import name ImmutableDict from werkzeug 当出现这个错的时候 可以使用下面这个命令降级安装就可以了 pip install upgrade werkzeug 0 1
  • C++算法之递归

    在函数内部直接或间接调用自身的程序定义为递归定义 递归可以解决一些问题 如遍历树和搜索算法等问题 递归通常把一个大型复杂的问题转化为一个规模较小的问题来求解 大大减少了程序的代码量 下面会介绍递归 目录 1 条件 2 例 3 例题 3 1
  • 慢sql优化

    SQL 优化一般步骤 通过慢查日志等定位那些执行效率较低的 SQL 语句 explain 分析SQL的执行计划 需要重点关注 type rows filtered extra type 由上至下 效率越来越高 ALL 全表扫描 index
  • STM32F103ZET6【HAL函开发】--安装STM32CUBEMX

    安装STM32CUBEMX大概可以分成三步 1 安装JRE 因为 STM32CubeMX是运行在Java环境下的 所以需要按照JRE Java Runtime Environment 2 安装STM32CubeMX 3 安装HAL库 可以选
  • rk3288 6222b 模组调试 (rtl8822cs)--wifi

    rtl8822cs 模块 wifi调试 记录 任务 在rk3288 android7 1 上移植配置 rtl8822cs 的wifi模块 思路 将厂商给的 wifi 驱动换上 并在 内核中 修改对应 makefile 和 Kconfig 以