[FAQ15320] 不同模式下如何保持uart log一直打开
内容 (2016-08-25)
[DESCRIPTION]
L版本不同模式下的uart行为不一样:
user mode:
lk log default 吐出 (preloader log 视不同branch而定,有的默认吐出,有的默认不吐出),kernel log default不吐出
userdebug mode:
bootloader log 行为与user mode相同,lk结束后需要按键kernel log才会吐出,进入Launcher界面后uart又关闭,按键后才可以继续吐出
eng mode:
bootloader log default 吐出,lk结束后kernel log default 吐出,进入Launcher界面后uart自动关闭,需要按键才可以继续吐出
注:在超级终端窗口按下键盘的任何一个按键可以让UART log继续吐,此种方式需要UART的TX和RX都要连接好。
[SOLUTION]
1. 在Launcher之后,如何令kernel log自动吐出?
方法一:设置属性adb shell setprop persist.uartconsole.enable 1, 然后重新开机抓uart log
(需要有root权限,适合eng版本和userdegbug 版本)
方法二:修改code
在/kernel-3.10/kernel/printk.c 中mt_disable_uart()中,将printk_disable_uart=1修改为0
2. 在user mode和userdebug mode,如何令kernel log在lk结束后自动吐出?
方法一:fastboot comand
1) 按volumn up + power key进入 bootmenu 选择fastboot mode
2) usb连接PC端,执行命令fastboot oem p2u on
3) 执行fastboot continue命令
方法二:修改code
在/bootable/bootloader/lk/app/mt_boot/mt_boot.c里修改:
if (!has_set_p2u) {
#ifdef USER_BUILD
sprintf(cmdline,”%s%s”,cmdline,” printk.disable_uart=1”); // printk.disable_uart=1 改为0
#else
sprintf(cmdline,”%s%s”,cmdline,” printk.disable_uart=0 ddebug_query=\”file mediatek +p ; file gpu =_\”“);
#endif