MTK平台系统稳定性分析
目录
1:简介
2:怎么抓取和分析log
3:怎么确定问题点
简介 系统稳定性目前主要是解决系统死机重启。 分为两部分:Android /kernel Kernel 分析需要的文件和工具: Mtklog, vmlinux ,gat工具,解析vmlinux的脚本。
Vmlinux路径:alps\out\target\product\k55v1_64_op01_pre\obj\KERNEL_OBJ
解析vmlinux的脚本
ARM 32位版本:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/
ARM 64位版本:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/
Log抓取
1:如果能正常开机,通过*#*#3646633#*#*抓取mtklog,出现异常的时候会生成文件夹aee**,如
2:如果不能正常开机,需要抓取串口log. 另外默认把串口一直打开的话,可以修改代码:
alps\kernel-3.10\drivers\misc\mediatek\mtprof\mt_printk_ctrl.c
nt mt_need_uart_console = 0;->1
3:如果ADB能正常起来,但开不了机,可以通过ADB命令来抓取相关的log. Usr 版本只能抓取logcat
确认问题点
Case 1: 能开机,卡死在一些界面上。
----这种情况,有几个步骤:先按power键看是否可以正常休眠唤醒。如果power键有反应,再插USB,看是否可以正常检测到ADB,如果可以正常检测到ADB,那可以通过ADB shell getevent 来看是否是TP驱动没有报点。
Case 2 开机卡死,按power键没反应。
----需要抓取mtklog,看是否有生成aee的log文件夹,有的话需要通过gat工具来解析。步骤如下: 1:电脑端打开应用程序 gat-linux-x86_64-3.1501.1.c\gat-linux-x86_64-3\modules\MediatekLogView\MediatekLogView
2:打开aee目录里面的文件,如” db.fatal.06.KE.dbg“,可以直接拖进来。
Case 3 不能开机,需要抓取串口log分析。
简单分析步骤: 1:抓取串口log[MTK 的波特率需要设置为921600]
2:确认PC指针指到具体函数和具体函数
在alps/prebuilts/gcc/linux-x86/aarch64-linux-anroid-4.9/bin$./aarch64-linux-android-addr2line -e vmlinux -f -C 0xffffffc0009f62a4
确定具体文件和行号
alps/prebuilts/gcc/linux-x86/aarch64-linux-anroid-4.9/bin$./aarch64-linux-android-objdump -d vmlinux
3:有时候kernel看到了异常,但不一定就是kernel的问题,有可能是上层主动发了重启之类的命令,可以在log中看类似的打印:
Case 4: WatchDog超时
Case 5 HW reboot
Hardware reboot的成因:MT6592平台芯片有一个External watch dog,软件每隔30秒要去踢一次,若没有踢到,就会触发软件Watch Dog Timeout重启;
若软件有在规定的时间内(30秒)去踢这个External Watch Dog,但是由于硬件原因,导致External Watch Dog没有及时被踢到,那么这个External Watch Dog最多会等待60秒的时间,60秒之后会直接触发硬件重启,这就是所谓的Hardware reboot
至于是什么样的硬件原因导致无法及时提到External Watch Dog,最常见的一种是bus hang住, 比如不合理的读写寄存器就会导致bus hang住;也有一些是硬件设计不合理,或者硬件出现故障导致机器乱死,或者硬件某些器件不稳定,导致Hardware reboot 如果是因为读写寄存器导致bus hang住,进而触发Hardware reboot,一般在last pc 和last kmsg中会有体现,每次最后的PC或者最后打印出来的几句log都是一样或者相似的 若是硬件不合理或者硬件出现故障或者硬件不稳,这种在last pc 和last kmsg中就没有规律性了, 这种case,一般都是对照之前的项目,看之前项目是否有出现? 若之前项目稳定,而现在项目有Hardware reboot,则对照之前项目跟现在项目在硬件上的差异,然后通过硬件实验来理清问题
MTK平台系统稳定性分析的更多相关文章
- Android8.1 MTK平台 SystemUI源码分析之 网络信号栏显示刷新
SystemUI系列文章 Android8.1 MTK平台 SystemUI源码分析之 Notification流程 Android8.1 MTK平台 SystemUI源码分析之 电池时钟刷新 And ...
- Java生鲜电商平台-系统异常状态的设计与架构(APP应用或者生鲜小程序)
Java生鲜电商平台-系统异常状态的设计与架构 说明:在实际开发Java生鲜电商平台的时候,异常状态的设计关系着整体系统的性能问题,架构设计,以及稳定性方面,对此,我根据实际的业务场景,进行了系统设计 ...
- Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java
Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java 1. 内存区域的划分 1 2. PermGen内存溢出深入分析 1 3. PermGen OOM原因总结 ...
- 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)
第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...
- 关于MTK平台SIM-ME Lock的配置方案
针对一些运营商的锁网需求,MTK平台已经对其有很好的支持.绝大多数的海外需求可以通过直接配置相关文件来完成.这里简单描述一下配置方法,不做原理分析. 相关数据结构分析: Modem中与SML锁网配置相 ...
- 关于MTK平台CC相关的Log查询
关于MTK平台CC相关的Log查询 在外场问题中,经常会出现通话相关的故障.这里简单总结一下通话相关log的分析点: 主叫方:主叫方,是指主动发起通话的一方. 初步定位问题, 用户发起通话时,AP端的 ...
- MTK平台Android项目APK预置方案
项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...
- andorid之摄像头驱动流程--MTK平台
原文地址:andorid之摄像头驱动流程--MTK平台 作者:守候心田 camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过D ...
- 第二次作业-关于Steam游戏平台的简单分析
1.1 Steam平台的简单介绍 你选择的产品是? 如题,这次的作业我选择了Steam作为分析的对象. 为什么选择该产品作为分析? 我选择数字游戏贩售平台STEAM作为分析对象的原因有以下几点: 1. ...
随机推荐
- 【转】20道Spring Boot面试题
面试了少量人,简历上都说自己熟习 Spring Boot, 或者者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总 ...
- Y-C
1.asp.net服务控件生命周期 11个生命阶段 (1)初始化: 初始化在传入Web请求生命周期内所需的设置,.跟踪视图状态.页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开 ...
- Proteus中的 PIC10/12/16 MCUs编译器无法下载的问题
当你打开网站时,点击该软件下载会发现如下页面: google一下会出现这个界面,大意是这个版本的编译器太老了,已经被某些更加高级的编译器给取代了(qaq心痛) 然后我就开始FQ到处google,Sou ...
- 常见Z纯CSS小样式合集(三角形)
三角形 .sanjiao{ width:0px; height: 0px; overflow: hidden; border-width: 100px; border-color: transpare ...
- 关于使用 autoFac 的注入方法
1.使用 NUGET 安装 Autofac 2.需要引用Autofac ASP.NET MVC 5 Integration 这个扩展包. 但有时候在NuGet中找不到 该包 需要使用“程序要控制器控 ...
- ElasticSearch学习笔记--安装
1.安装ElasticSearch https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html 这 ...
- 配置服务器 Ubuntu 记录+踩坑
从零开始配置服务器用于ss+站点 1. SS 首先安装pyenv,安装pyenv之前先安装必要环境,具体命令行请见: https://github.com/pyenv/pyenv/wiki/Commo ...
- POJ_1083_(思维)
Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31511 Accepted: 10528 D ...
- nodejs连接数据库
var express = require("express");var query = require("querystring");var mysql = ...
- CAD使用DeleteXData删除数据(网页版)
主要用到函数说明: MxDrawEntity::DeleteXData 删除扩展数据,详细说明如下: 参数 说明 pzsAppName 删除的扩展数据名称,如果为空,删除所有扩展数据 js代码实现如下 ...