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,則對照之前項目跟現在項目在硬件上的差異,然后通過硬件實驗來理清問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM