高通 MSM8K GPT異常導致無法開機問題分析

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   io   資料   

問題分析步驟如下:

一、

MSM8916平台gpt機率性問題:使用QPST emmc software download工具下載完軟體後,無法開機。如:

log分析是userdata分區沒有成功mount 。



二、

adb shell ls /dev/block 顯示,開機失敗的機器,比正常開機的機器少一個分區:mmcblk0p28 ,這個分區就是userdata所在分區!

參考本人的轉並補充內容的另一篇文章《add_partition 函數學習》

可知,/dev/block/mmcblk0pxx 這些分區是根據gpt內容而建立,因此懷疑gpt內容錯誤,導致user分區沒有被成功建立。

[email protected]/ # cd dev/block/                                                     
[email protected]:/dev/block # ls

mmcblk0
mmcblk0p1
mmcblk0p10
mmcblk0p11
mmcblk0p12
mmcblk0p13
mmcblk0p14
mmcblk0p15
mmcblk0p16
mmcblk0p17
mmcblk0p18
mmcblk0p19
mmcblk0p2
mmcblk0p20
mmcblk0p21
mmcblk0p22
mmcblk0p23
mmcblk0p24
mmcblk0p25
mmcblk0p26
mmcblk0p27
// mmcblk0p28 正常開機的有p28分區
mmcblk0p3
mmcblk0p4
mmcblk0p5
mmcblk0p6
mmcblk0p7
mmcblk0p8
mmcblk0p9
mmcblk0rpmb


三、

使用dd命令,從mmc裝置mmcblk0中將gpt資料讀取出來,正常開機、和無法開機的都讀取一份。


四、 使用二進位比較工具hexcmp對比兩份gpt的內容,主要異常有兩處,如下兩圖:



可以可以看到gpt headergpt header CRC 及 partition array CRC不同,First LBA、Last LBA不同。

如:


是partiton array 內容的比較,可以看到userdata分區的end lba不同。

無法開機的gpt內容與預設build出來的gpt_main0.bin比較 ,發現userdata分區的end lba竟然和build出來的是相等的。

userdata分區是整個emmc的最後一分區,不同的emmc size最後一個分區的end lba是build階段無法知道的,因此build的只是一個預設值。

必須由下載工具自動更新該lba值。



四、

從上面的分析可以知道QPST emmc software download 工具沒有更新userdata end lba,或者更新失敗。

那麼,如何證明是工具沒有寫這個lba?還是寫失敗?或者寫的是錯誤的內容?

使用winhex工具,從無法開機的gpt內容中將gpt header 和 gpt partition arrary 的內容分別截取出來。

使用AS-CRC32.EXE 工具,分別對gpt header 和 gpt partition array 的內容計算出crc。工具如:


通過對比crc,電腦出的crc的無法開機的gpt header中的兩個crc都是相等的。


因此,可以證明,gpt中的userdata end 並非是寫入失敗,或者沒有寫入。

而是QPST emmc software download 工具定稿的錯誤的內容。

結論: 由上分析,可以證明是QPST emmc software download 工具的問題。


五、

解決方案建議,

更新QPST的軟體版本,最新版本支援一個新的使用firehose協議的下載工具:QFIL,

代替QPST emmc software download ,QFIL更穩定,更好用。如:



參考:

80-N7350-1_B_GUID_Partition_Tables_Programming.pdf

UEFI_2_4_Errata_B.pdf



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.