Uart log 打开
修改lk
实际上是修改传给kernel的cmdline,使得 printk.disable_uart=0
vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
函数 boot_linux_fdt 里面
#ifdef USER_BUILD
sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0"); //1改为0
#else
sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");
#endif
然后 make lk
修改kernel
kernel3.18/kernel/printk/printk.c
void mt_disable_uart(void)
{
if (mt_need_uart_console == 0)
printk_disable_uart = 0;//1; //将1改为0
}
然后 make bootimage
打开Uart 的控制台
uart控制台的开启,决定于 system property ro.debuggable, eng版本默认ro.debuggable为1(默认开启),user版本默认ro.debuggable为0(为关闭)
更新inir.rc的代码
alps/system/core/rootdir/init.rc
on property:ro.debuggable=1
# Give writes to anyone for the trace folder on debug builds.
# The folder is used to store method traces.
chmod 0773 /data/misc/trace
start console
#add for user console
on property:ro.debuggable=0
chmod 0773 /data/misc/trace
start console
然后 mmm system/core/rootdir; make bootimage
Uart上抓取上层log
Uart 上进行输入,实际就是开启了一个sh 对接起来,所以绝对不能在uart 上输入一个长命令(不可中断),否则uart 将被卡住,不能再输入。
抓取上层log, 我们通常需要call logcat, 但logcat 是不可中断的,将导致uart 不能再输入。
处理的方法即将logcat 转入后台执行,如下操作即可:
Main log: logcat -v time &
Radio log: logcat -v time -b radio &
Event log: logcat -v time -b events &
如果想关闭上层log, 直接ps 查阅前面开启的logcat process pid, 然后kill -9 pid 杀掉即可。
注意一定要带“&”,否则将block 住uart输入