天天看點

高通平台啟動log概述(PBL log、sbl1 log、kernel log)【轉】

高通平台啟動log概述(PBL log、sbl1 log、kernel log)

在嵌入式linux的調試過程中log有着至關重要的地位,等同于醫生的CT報告。能夠熟悉啟動各個階段的log,如PBL階段,sbl1階段,kernel階段,android階段,對于分析定位問題有着重要的作用。本文以高通msm8937平台android啟動的序列槽log為例簡要介紹一下log相關的技巧和對log的概要介紹。

關于各個啟動階段的分析,可以參考:linux驅動由淺入深系列:PBL-SBL1-(bootloader)LK-Android啟動過程詳解之一(高通MSM8953啟動執行個體)

user版本不同于userdebug版本,可能會關閉序列槽log,在調試user版時就需要開啟。

開啟的方法如下

1,cmdline

需要保證cmdline中有androidboot.console=ttyHSL0

2,defconfig

需要在kernel的配置中添加

CONFIG_SERIAL_MSM_HSL=y

CONFIG_SERIAL_MSM_HSL_CONSOLE=y

序列槽console在開機後可能會降低列印級别,可以通過如下指令顯示所有log

echo "8 6 1 7" > /proc/sys/kernel/printk

關閉所有log顯示

echo "0 6 1 7" > /proc/sys/kernel/printk

啟動log概述

下面是msm8937平台上完整的開機序列槽log,紅色部分是PBL log,綠色部分是sbl1 log,紫色為lk部分log,藍色部分是kernel log,深藍色部分kernel啟動12s左右核心啟動完畢,可以看到之後啟了第一個使用者程序init,由init程序啟動android

Format: Log Type - Time(microsec) - Message - Optional Info

Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic

S - QC_IMAGE_VERSION_STRING=BOOT.BF.3.3-00221

S - IMAGE_VARIANT_STRING=FAASANAZA

S - OEM_IMAGE_VERSION_STRING=ubuntu

S - Boot Config, 0x000000e1

B -       246 - PBL, Start

B -      2946 - bootable_media_detect_entry, Start

B -     69427 - bootable_media_detect_success, Start

B -     69432 - elf_loader_entry, Start

B -     71073 - auth_hash_seg_entry, Start

B -     71322 - auth_hash_seg_exit, Start

B -     99643 - elf_segs_hash_verify_entry, Start

B -    200021 - PBL, End

B -    209901 - SBL1, Start