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

bat_discharge.png

--------------未完待续------------------------

0条评论

© 2024 芯缘异码. Powered by Typecho