MTK androidN User版本打开uart log和 uart的控制台

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输入

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值