目录linux
1:简介android
2:怎么抓取和分析logshell
3:怎么肯定问题点ide
简介 系统稳定性目前主要是解决系统死机重启。 分为两部分:Android /kernel Kernel 分析须要的文件和工具: Mtklog, vmlinux ,gat工具,解析vmlinux的脚本。函数
Vmlinux路径:alps\out\target\product\k55v1_64_op01_pre\obj\KERNEL_OBJ工具
解析vmlinux的脚本ui
ARM 32位版本:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/idea
ARM 64位版本:prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/设计
Log抓取3d
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,则对照以前项目跟如今项目在硬件上的差别,而后经过硬件实验来理清问题