高通android WIFI debug

参考高通文档:80-76240-16_REV_AA_Wi-Fi_Debug_Techniques

大纲

 

一、 WLAN Debug Logs –logcat

■ Logcat log logcat is a command-line tool that dumps the log of system messages,

■ Including stack traces when the device throws an error.

■ Need to enable WLAN verbose log before capturing logcat log.

Option1 by Android UI

Activate Developer Options

Goto Settings -> System -> About Phone -> BuildNumber (Click this 7 times)

Enable Wifi Verbose logging

Goto Settings -> System -> Advanced -> Develop Options -> Enable Wifi Verbose logging

Option 2 by command line

Run below command at adb shell, then reboot target

#cmd wifi set-verbose-logging enabled

#cmd wifi is-verbose-logging

二、WPA_SUPPLICANT default debug level is debug

to enable more debug log, you can try below:

msmnile_au:/ # wpa_cli log_level EXCESSIVE

enum {MSG_EXCESSIVE, MSG_MSGDUMP, MSG_DEBUG, MSG_INFO, MSG_WARNING, MSG_ERROR}

三、WLAN Driver/FW log

1、By default, WLAN log will be saved at below directory in your target.

/data/vendor/wifi/wlan_logs/

msmnile_gvmq:/data/vendor/wifi/wlan_logs # ls -al

-rw-r--r-- 1 system system 18538947 2023-03-26 16:39 cnss_fw_logs_current.txt

-rw-r--r-- 1 system system 30971954 2023-03-26 15:38 host_driver_logs_current.txt

实际的8155下看的是

#:/data/vendor/wifi/wlan_logs # ls -lh total 15M -rw-r--r-- 1 system system 0 1970-01-01 08:00 cnss_fw_logs_current.txt -rw-r--r-- 1 system system 30M 2024-12-27 05:48 host_driver_logs_000.txt -rw-r--r-- 1 system system 32 2024-12-27 05:48 host_driver_logs_current.txt -rw-r--r-- 1 system system 0 1970-01-01 08:00 txrx_pktlog_current.dat

 2、If your FW log size is 0, follow below to enable WLAN FW log.

1、Make sure below file is existed in your target.

/vendor/firmware_mnt/image/qcXXX/Data.msc

2、Make sure below INI setting

vendor/etc/wifi/qcn7605/WCNSS_qcom_cfg.ini

gEnablefwlog=1

gFwDebugLogLevel=0

gFwDebugModuleLoglevel=1,1,2,1,3,1,4,0,5,1,6,0,7,0,8,1,9,1,13,1,14,1,17,1,18,1,19,1,22,1,26,1,28,1,29,1,31,1,36,1,38,1,46,1,47,1,50,1,52,1,53,1,56,1,60,1,61,1

2.1  The default WLAN log saves latest 2 archives with 30M size, if you need more logs to debug, try below changes:

modify /data/vendor/wifi/cnss_diag.conf, change to max 10 file and each 100M.

original:

MAX_LOG_FILE_SIZE = 30 // 30M each file

MAX_ARCHIVES = 2 // max log segment

modify:

MAX_LOG_FILE_SIZE = 100 // 100M each file

MAX_ARCHIVES = 10

2.2  How to change debug host log level?

Modify WCNSS_qcom_cfg.ini

gHostModuleLoglevel

描述:Input Module ID and Log level alternately and continuously

Module ID: Please refer QDF_MODULE_ID in qcacld source code.

Debug Level:

enum host_log_level {

  HOST_LOG_LEVEL_NONE = 0, HOST_LOG_LEVEL_FATAL, HOST_LOG_LEVEL_ERROR,

  HOST_LOG_LEVEL_WARN, HOST_LOG_LEVEL_INFO, HOST_LOG_LEVEL_DEBUG,

  HOST_LOG_LEVEL_TRACE, HOST_LOG_LEVEL_MAX,

};

Example: gHostModuleLoglevel=51, 1, 52, 2, 53, 4, 54, 5, 56, 6

51/52/53/54/56 are Module ID

1/2/4/5/6 are Debug Level.

五、待继续

六、 博世公司抓驱动日志

分析VCS Wifi连接问题需要抓取相关log和配置信息,抓取方法流程顺序如下:
1、设置log登记,命令如下adb root
adb remount
adb shell setprop persist.log.tag D
adb shell setprop persist.wifi.debug.level.enable true
adb shell settings put global wifi_verbose_logging_enable 1
adb shell setprop persist.log.tag.wpa_supplicant DEBUG
adb shell wpa_cli log_level MSGDUMP并修改Android系统中/vendor/etc/wifi/qca6390/WCNSS_qcom_cfg.ini文件下面几项,然后重启生效
gMulticastHostFwMsgs=1
gEnablefwlog=1
gFwDebugLogLevel=32、将wifi相关配置信息保存到电脑端,adb命令如下:
adb root
adb remount
adb pull /vendor/firmware_mnt/verinfo/ver_info.txt ./
adb pull /data/vendor/wifi/hostapd/hostapd_swkan0.conf  ./     3、QA复现问题前先开始抓wifi-driver和wifi-dmesg.log,adb命令如下:
adb root
adb shell cnss_diag -f -c > wifi-dirver.txt   //此命令在复现问题之前执行,复现问题后Ctrl+c停止adb shell dmesg -w > ./wifi-dmesg.txt        //此命令在复现问题之前执行,复现问题后Ctrl+c停止

1、上面的cnss_diag -f -c > wifi-dirver.txt 后,在/data/vendor/wifi/wlan_logs有firware log

但用cnss_diag -q -f ,日志应该也有

参考:https://blog.csdn.net/feelinghappy/article/details/108536224

2、8155 驱动和固件日志的大小设置

/data/vendor/wifi/cnss_diag.conf

1|hqcos:/ # cat /data/vendor/wifi/cnss_diag.conf
LOG_PATH_FLAG = 1
MAX_LOG_FILE_SIZE = 30
MAX_ARCHIVES = 2
MAX_PKTLOG_ARCHIVES = 4
LOG_STORAGE_PATH = /data/vendor/wifi/wlan_logs/
AVAILABLE_MEMORY_THRESHOLD = 100
MAX_LOG_BUFFER = 2
MAX_PKTLOG_BUFFER = 10
HOST_LOG_FILE = /data/vendor/wifi/wlan_logs/buffered_cnsshost_log.txt
FIRMWARE_LOG_FILE = /data/vendor/wifi/wlan_logs/buffered_cnssfw_log.txt
ENABLE_FLUSH_LOG = 0
REAL_TIME_WRITE = 0

cnssdiag: 抓取wifi固件的日志

vendor/qcom/proprietary/wlan/common-tools/cnssdiag/

固件加载流程和cnss_daemon

qcom 子系统启动流程_cnss-daemon-CSDN博客

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

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

相关文章

Golang轻松实现消息模板变量替换:text/template

text/template 是 Go 语言标准库中的一个包,用于生成文本输出。它通过解析模板并根据给定的数据执行模板来生成最终的文本。text/template 提供了强大的模板引擎,支持条件判断、循环、变量替换等功能。 基本概念 模板:模板是一个文本文件或…

蓝桥杯之并查集

算法思想 并查集是一种树形的数据结构,主要用于解决一些元素分组问题。用于处理一些不相交集合的合并以及查询问题。并查集的思想是用一个数组表示了整片森林,树的根节点唯一标识了一个集合,我们只要找到了某个元素的树根,就能确…

list_for_each_entry_safe 简介

list_for_each_entry_safe 是 Linux 内核中用于遍历链表的一个宏,特别适用于在遍历过程中可能需要删除链表节点的场景。它的设计保证了在删除当前节点时,不会影响后续节点的访问,从而实现安全的遍历。 定义 #define list_for_each_entry_sa…

如何在Java EE中使用标签库?

在Java EE(现在称为Jakarta EE)中使用标签库(Tag Library),主要是通过JSP标准标签库(JSTL)或自定义标签库来实现的。标签库允许在JSP页面中使用自定义的标签,从而简化页面逻辑、增强…

el-table封装一个自定义列配置表格组件(vue3开箱即用)

组件核心功能 拖拽排序(使用 vuedraggable) 显示/隐藏控制 列宽调整 列固定状态记忆 搜索过滤列 本地存储(localStorage)可改成接口保存 默认配置恢复 通过 searchText 动态过滤列。 安装拖拽依赖 npm install vuedragg…

基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南

基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南 禅道镜像版本:easysoft/zentao:21.4 Redis版本:redis:6.2.0 Mysql版本:mysql:8.0.35 文章目录 **基于Docker-compose的禅道部署实践:自建MySQL与…

九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表

文章目录 前言一、引入依赖二、创建一个light-db_1备用数据库三、配置文件 application-dev.yml四、创建shardingsphere-config.yml完整项目结构 五、测试总结 前言 在现代化微服务架构中,随着数据量的不断增长,单一数据库已难以满足高可用性、扩展性和…

如何借助NoETL指标平台实现数据分析、决策的提效?

通常,企业通过明确分析目标、定位所需分析的数据,再通过多渠道汇集销售数据、客户反馈、市场调研等信息,经过数据清洗、缺失值处理及格式标准化等手段,运用描述性统计、回归分析、聚类分析及关联规则挖掘等多样分析方法&#xff0…

hexo 魔改 | 修改卡片透明度

hexo 魔改 | 修改卡片透明度 ** 博客食物用更佳 博客地址 ** 这是笔者自己瞎倒腾的。作为前端菜鸡一枚,大佬们随便看看就好~ 我用的主题是 butterfly 4.12.0 分析 通过开发者工具可以看出来卡片的背景和 --card-bg 变量有关 再在 sources 下的 css 文件夹下的…

Qt的QTableWidget样式设置

在 Qt 中,可以通过样式表(QSS)为 QTableWidget 设置各种样式。以下是一些常见的样式设置示例: 1. 基本样式设置 tableWidget->setStyleSheet(// 表格整体样式"QTableWidget {"" background-color: #F0F0F0;…

MySQL、MariaDB 和 TDSQL 的区别

MySQL、MariaDB 和 TDSQL 是三种不同的数据库管理系统,它们在设计理念、功能、性能和使用场景上有一些显著的区别。 以下是对这三者的详细比较和介绍。 1. MySQL 概述 类型:关系型数据库管理系统(RDBMS)。开发者:最…

制造业物联网的十大用例

预计到 2026 年,物联网制造市场价值将达到 4000 亿美元。实时收集和分析来自联网物联网设备与传感器的数据,这一能力为制造商提供了对生产流程前所未有的深入洞察。物联网(IoT)有潜力彻底改变制造业,使工厂能够更高效地…

JVM——堆的回收:引用计数发和可达性分析法、五种对象引用

目录 引用计数法和可达性分析法 引用计数法: 可达性分析算法: 五种对象引用 软引用: 弱引用: 引用计数法和可达性分析法 引用计数法: 引用计数法会为每个对象维护一个引用计数器,当对象被引用时加1&…

提升编程效率,体验智能编程助手—豆包MarsCode一键Apply功能测评

提升编程效率,体验智能编程助手—豆包MarsCode一键Apply功能测评 🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 引言豆包…

【前端】【面试】vue动态样式总结

在 Vue 中,动态样式的设置是一个常见需求,可通过多种方式实现,以下是对这些方式的详细总结: 1. 绑定 class 属性 对象语法 可以给 :class 绑定一个对象,以动态地切换类名。对象的键是类名,值是一个布尔值…

Java--IO流详解 (上)--字符流

目录 IO流的概念 字符流 输入流 Reader核心方法 1.close() 2.mark(int readAheadLimit) 3.markSupported() 4.read() 5.read(char[] cbuf) 6.read(char[] cbuf, int off, int len) 7.read(CharBuffer target) 8.ready() 9.reset() 10.skip(long n) Reader 的常用…

物联网智能语音控制灯光系统设计与实现

背景 随着物联网技术的蓬勃发展,智能家居逐渐成为现代生活的一部分。在众多智能家居应用中,智能灯光控制系统尤为重要。通过语音控制和自动调节灯光,用户可以更便捷地操作家中的照明设备,提高生活的舒适度与便利性。本文将介绍一…

探讨使用ISVA代替“Open Liberty使用指南及微服务开发示例”中日志审计功能

在Open Liberty使用指南及开发示例(四)一文开始日志审计功能占有了一定的开发工作量,那么是否可以使用IBM Security Verify Access(ISVA)代替以节省开发工作?如果可行,那么以后各类应用的日志审…

STM32、GD32驱动TM1640原理图、源码分享

一、原理图分享 二、源码分享 /************************************************* * copyright: * author:Xupeng * date:2024-07-18 * description: **************************************************/ #include "smg.h"#define DBG_TAG "smg&…

Java ArrayList(单列集合)

ArrayList 是 Java 中最常用的一个集合类,它属于 java.util 包。ArrayList 实现了 List 接口,提供了动态数组的功能。与普通数组不同,ArrayList 在元素增删时会自动调整大小,因此它的大小是可变的。 1. ArrayList 的基本特性 动…