目錄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,則對照以前項目跟如今項目在硬件上的差別,而後經過硬件實驗來理清問題