目录

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平台系统稳定性分析的更多相关文章

  1. Android8.1 MTK平台 SystemUI源码分析之 网络信号栏显示刷新

    SystemUI系列文章 Android8.1 MTK平台 SystemUI源码分析之 Notification流程 Android8.1 MTK平台 SystemUI源码分析之 电池时钟刷新 And ...

  2. Java生鲜电商平台-系统异常状态的设计与架构(APP应用或者生鲜小程序)

    Java生鲜电商平台-系统异常状态的设计与架构 说明:在实际开发Java生鲜电商平台的时候,异常状态的设计关系着整体系统的性能问题,架构设计,以及稳定性方面,对此,我根据实际的业务场景,进行了系统设计 ...

  3. Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java

    Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java 1. 内存区域的划分 1 2. PermGen内存溢出深入分析 1 3. PermGen OOM原因总结 ...

  4. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  5. 关于MTK平台SIM-ME Lock的配置方案

    针对一些运营商的锁网需求,MTK平台已经对其有很好的支持.绝大多数的海外需求可以通过直接配置相关文件来完成.这里简单描述一下配置方法,不做原理分析. 相关数据结构分析: Modem中与SML锁网配置相 ...

  6. 关于MTK平台CC相关的Log查询

    关于MTK平台CC相关的Log查询 在外场问题中,经常会出现通话相关的故障.这里简单总结一下通话相关log的分析点: 主叫方:主叫方,是指主动发起通话的一方. 初步定位问题, 用户发起通话时,AP端的 ...

  7. MTK平台Android项目APK预置方案

    项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...

  8. andorid之摄像头驱动流程--MTK平台

    原文地址:andorid之摄像头驱动流程--MTK平台 作者:守候心田 camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过D ...

  9. 第二次作业-关于Steam游戏平台的简单分析

    1.1 Steam平台的简单介绍 你选择的产品是? 如题,这次的作业我选择了Steam作为分析的对象. 为什么选择该产品作为分析? 我选择数字游戏贩售平台STEAM作为分析对象的原因有以下几点: 1. ...

随机推荐

  1. 10.12NOIP模拟题(1)

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...

  2. P4161 [SCOI2009]游戏

    传送门 首先这题的本质就是把\(n\)分成若干个数的和,求他们的\(lcm\)有多少种情况 然后据说有这么个结论:若\(p_1^{c_1}+p_2^{c_2}+...+p_m^{c_m}\leq n\ ...

  3. win10家庭版添加本地账户方法

    1.正常情况下,windows的使用者都习惯于用本地用户及用户组工具来创建新用户,如下图所示,在win10的开始窗口右侧的空白处,输入lusrmgr.msc 打开本地用户管理控制台. 2.在win10 ...

  4. Html5 编程题

    1.请写出下面所示的控件的html 代码? <div>   <div><a>姓名:</a><input type="text" ...

  5. 2017 Pycharm激活码

    BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  6. 构造 Codeforces Round #275 (Div. 2) C. Diverse Permutation

    题目传送门 /* 构造:首先先选好k个不同的值,从1到k,按要求把数字放好,其余的随便放.因为是绝对差值,从n开始一下一上, 这样保证不会超出边界并且以防其余的数相邻绝对值差>k */ /*** ...

  7. 块级标签与预格式化文本标签----------大多数XHTML可以表示为两种类型的标签:块标签(block tag)和内联标签(inline tag)

    <html> <head> <meta charset="utf-8"> <title>块级标签</title> < ...

  8. webpack学习汇总

    一. 安装 window : 附件 --- 命令提示符 1:node -------- http://pan.baidu.com/s/1boFor3D node -v : 查看版本: npm conf ...

  9. poj3411 Paid Roads

    思路: 搜索.注意点和边都有可能经过多次. 实现: #include <iostream> #include <cstdio> #include <vector> ...

  10. 北工大2017校赛 1101:要打车的FanZzz

    题目链接: http://bjutacm.openjudge.cn/lianxi/1101/ 思路: 二分 + 二分图最大匹配. 开始的时候我想直接用最小费用流模型,后来发现这样是错误的.因为这道题实 ...