MT8163 电量显示不准调试记录
文摘 Kernel MediaTek 2020-04-11 阅读:5675问题现象:
电量从25%左右电量下滑比较历害,25%~0%(关机) 仅工作20分钟左右。
问题分析:
测试电池放电曲线
抓取log准备工作
文件 kernel-3.10/drivers/power/mediatek/battery_meter.c
-int Enable_FGADC_LOG = 1;
+int Enable_FGADC_LOG = 5;
文件 kernel-3.10/drivers/power/mediatek/battery_common.c
-int Enable_BATDRV_LOG = BAT_LOG_CRTI;
+int Enable_BATDRV_LOG = BAT_LOG_FULL;
如果抓取UART log 开启 LK 和 kernel log
文件 bootable/bootloader/lk/app/mt_boot/mt_boot.c
sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0");
文件 kernel-3.10/drivers/misc/mediatek/mtprof/mt_printk_ctrl.c
开启UART LOG 进系统后继续输出
- mt_need_uart_console = 0; / defualt, no uart /
- mt_need_uart_console = 1; / defualt, no uart /
设置mtkloger
由于是WIFI版无拔号界面无法通过指令进入,采用adb shell的进入:
adb shell am start -n com.mediatek.mtklogger/com.mediatek.mtklogger.MainActivity
进入之后,清除原有无用log、勾选开机自启动、设置log size大小。
注意:log size 需要设置到足够大,如果太小可能会出现log被覆盖或被分段的情况,本人设置15G。
或者依次按以下步骤执行命令:
//REM Android L
//REM MobileLog 开机自启动 (set_auto_start_1表示开启开机自启动,set_auto_start_0表示关闭开机自启动;23可改为1/2/4/16,分别代表MobileLog/ModemLog/NetworkLog/GPSLog)
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name set_auto_start_1 --ei cmd_target 1
//REM MobileLog log Size 15G (7可改为1/2/4,分别代表MobileLog/ModemLog/NetworkLog)
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name set_log_size_15360 --ei cmd_target 1
//REM 清除所有log clear_all_log
//REM Android N
//REM adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name clear_all_logs
//REM Android L
//REM 停止MTKLOG
adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name stop --ei cmd_target 23
//REM 删除log
adb shell rm -rf /sdcard/mtklog/*
//REM 重启开始记录log
adb reboot
放电
重启开机后,此时电量100%,开启跑核程序,让系统一直重载运行,待系统低电自动关机。
处理log
adb pull /sdcard/mtklog d:logsoc
取出log
--------------未完待续------------------------