MTK 開機黑屏很長時間

MT6735平臺,可以開機,但是黑屏很長時間纔看到開機圖片。

查看串口LOG發現手機是正常運行的,也就是說LCM驅動沒有異常,黑屏階段也沒有什麼錯誤報出。

在MTK的FAQ上找到如下:

[DESCRIPTION]
本FAQ只討論開機過程中黑屏,不討論花屏(可以參考刷)。只討論L/M版本(之前的KK/JB版本可以作爲參考)。
首先要看一下是否IPO開機,即在setting-->輔助功能-->不勾選“fast boot“,如果不黑屏,說明是因爲ipo這個過程中的問題,那麼問題需要看看這個動畫,可以找一下ipo動畫的owner。

如果不勾選“fast boot“出現黑屏,那麼就是我們現在要討論的問題。定位問題前一定要搞清楚黑屏發生的時間段,因爲開機過程中,會有lk logo,kernel logo,bootanimation,這三個畫面裏面發生黑屏,解決辦法不一樣。
如下這張圖,是ENG版本的開機logo,說明了開機過程中的logo顯示。
 
查看問題,一定要使用ENG版本,因爲ENG版本開機的時候,左下角有一行”normal boot“字樣,據此我們可以知道黑屏發生在哪個地方。最好使用不同的logo資源,有些客戶把lk logo和kernel logo做成一樣,bootanimation的前幾張圖片也是做成一樣,不便於區分,這樣容易判斷出錯。
如下解釋:
(階段1)、帶有”normal boot“的lk logo,會在lk階段顯示。顯示時間一般1s左右。
(階段2)、啓動到kernel的前7s左右,顯示的是帶”normal boot“字樣的lk logo。(這裏L/M版本和KK/JB版本很不同,不在此處細說)
(階段3)、之後顯示kernel logo的時間段很短,一般只有2s左右.
(階段4)、顯示bootanimation動畫。

(1)如果懷疑kernel log黑屏,可以單獨運行一下kernel log應用,正常情況下會顯示kernel logo,如果有黑屏,那麼就是他造成的。
adb shell
cd system/bin
boot_logo_updater

(2)單獨刪除kernel logo,可以看看是否不黑屏。如果不黑屏,那麼可能是因爲加載kernel logo的時候,底層向OVL刷進去了異常的黑屏數據或者異常格式的數據等。
adb remount
adb shell
cd system/bin
rm -rf boot_logo_updater

(3)如果懷疑bootanimation黑屏,可以單獨運行一下bootanimation應用,正常情況下會顯示bootanimation動畫,如果有黑屏,那麼就是他造成的。
adb shell
cd system/bin
bootanimation

(4)單獨刪除bootanimation,看看還黑屏嗎?不黑屏,那麼問題在於bootanimation,下面會有
adb remount
adb shell
cd system/bin
rm -rf bootanimation

出現黑屏問題,請先使用mtk原生的版本和原生的logo資源,看看是否有問題,如果原聲的沒有問題,那麼可能是客戶替換的logo資源和客製化問題,需要注意如下幾個資源檢查:
1、logo.bin的大小限制在4M內
2、lk logo和kernel logo圖片是RGB888格式
3、bootanimation圖片是png格式
如果以上都check OK,可以參看如下的方式定位
 
 
[SOLUTION]
一、如果是(階段1)黑屏,即lk logo沒有顯示出來,那麼可能是logo資源異常,或者底層沒有刷出來,需要抓uart log查看,可以打log跟蹤platform.c文件裏面的platform_init()函數

二、如果是(階段1)和(階段2)之間黑屏,可能是刷屏的問題,如果有異常,從uart log裏面,應該可以看到display error,比如vdo mode屏,這時候等VM Done timeout等。

三、如果是(階段2)中間黑屏,看uart log是否有display error/fault/timeout/fail.

四、如果是(階段2)和(階段3)之間黑屏,可能是因爲加載的kernel logo異常,或者mtkfb pan display implementation的時候異常數據進入,通常此時log裏面很難看到error,需要加log進去debug。

五、如果是(階段3)黑屏,可以使用上面的adb命令來區分到底是kernel logo的問題還是bootanimation開始的問題。

註釋:以上5個可能出現黑屏的階段,都與driver層相關,在找對應owner前,請先排除logo資源格式客製化等影響根據我們這麼些年定位問題來總結,很大一部分客戶是因爲客製化,logo資源等造成的問題。如果log裏面有error,屬於數據流在engine處理的時候異常,較容易修正。如果log沒有異常,那麼可能是異常的數據格式或者異常的flow導致的,比較難定位。


六、如果是(階段4)黑屏,運行bootanimation應用看看,如果黑屏,那麼問題在於bootanimation。關於bootanimation黑屏的定位,如下有一個完整的總結,請先自行check一下: 
1.關於黑屏問題首先需要確認是否開機動畫包本身的問題
(1)將出現黑屏手機內部的system/media/bootanimation.zip pull到沒有黑屏問題的手機,check是否還有黑屏,
如果出現黑屏說明是開機動畫包本身的問題,可以轉給AF2分析,否則繼續查找其他原因;
(2)將正常手機的 system/media/bootanimation.zip pull到目前有黑屏問題的手機,check是否依然黑屏。
如果沒有黑屏說明是開機動畫包本身的問題,可以轉給AF2分析,否則繼續查找其他原因。

2.測試去掉開機鈴聲後是否還會出現黑屏:
如果沒有出現黑屏說明與mediaplayer初始化較慢有關,需要與audio 的owner確認進一步的原因。否則繼續查找其他原因。
具體可參考[FAQ09563]開機過程kernel logo到開機動畫黑屏時間過長。

3.在開機動畫前出現一幀閃黑屏可能與Google default 默認的clear screen操作有關,需要在BootAnimation.cpp文件中去掉相關清屏的code。 
具體可參考[FAQ14488]kernel logo到開機動畫之間閃現黑屏。
[FAQ17969]開機過程kernel logo到開機動畫之間黑屏(總)

七、另外,對於6580/6735 M0.MP1版本,出現kernel logo後,bootanimation前的黑屏問題,請申請patch ALPS02561201

還有這個:


[DESCRIPTION]
 
 開機過程kernel logo到開機動畫之間黑屏
 
 
[SOLUTION]
 
在開機過程,如果將bootanimation.zip的圖片換成非黑色背景,發現從kernel logo到bootanimation之間會黑屏一下或者黑屏時間過長,這類問題的原因有可能是和Display相關,也有可能和Bootup流程相關。遇到這種問題,請按照如下步驟進行初步分析:

1. 確認哪個過程黑屏:
uartlog和mobilelog確認是lk logo, kernel logo, bootAnimation哪個過程黑屏。如果lk logo, kernel logo, bootAnimation第一張圖片相同,先將lk logo, kernel logo, bootAnimation第一張圖片分別替換成不同的圖片。

2. 確認是否是動畫包問題:
交叉測試,排除動畫包bootanimation.zip的問題 

3. 查看bootanimation進程: 
3.1去掉開機鈴聲system/media/bootaudio.mp3,如果黑屏依然存在
請先在PMS申請patch:ALPS02561201, 針對M版本6580/6735
請先參考以下FAQ:
[FAQ14247][Denali系列]開機動畫前黑屏相關的issues
[FAQ14488] kernel logo到開機動畫之間閃現黑屏(L)

如果問題依然無法解決,請提交eService進一步分析解決。提交eService時,請參照以下FAQ抓取黑屏layer信息。
[FAQ05755]如何定位花屏和界面錯亂等繪製異常的問題?

3.2 去掉開機鈴聲system/media/bootaudio.mp3後,從Kernel Logo到動畫是沒有黑屏: 
基本可以肯定,黑屏是由於mediaplayer初始化耗時導致。
可以進行如下測試:
(1)如果手機支持IPO(快速開關機),可以查看下IPO開機時是否還有黑屏。如果沒有黑屏,進一步可以推論出:黑屏與mediaplayer初始化耗時有關。
(2)如果手機不支持IPO,可以用adb命令當地運行bootanimation bin檔測試:adb shell system/bin/bootanimation。結論同(1)。

請先參照相關FAQ:
[FAQ09563] 開機過程kernel logo到開機動畫黑屏時間過長。
[FAQ17968] new Mediaplayer耗時導致開機過程中kernel logo到開機動畫之間黑屏

如果問題依然無法解決,請提交eService進一步分析解決。

所以,我做了以下嘗試:

1、用ENG版本開機,沒有看到”normal boot“字樣;

2、刪除bootaudio.mp3,依然黑屏;

3、刪除bootanimation.zip,開機圖畫變成了android,依然黑屏;

4、確認圖片格式、分辨率等都沒有問題;

推測和LCM是沒有關係的,懷疑是LK和Kernel階段LCM背光沒有亮。所以配置lk目錄下cust_leds.c文件,配置backlight。

問題解決。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章