MTK平台打开uart默认输出log
来源:互联网 发布:废品收购源码整站程序 编辑:程序博客网 时间:2024/05/29 11:11
先看下MTK提供的FAQ,针对不同的版本修改方法,但是没有5.0以上
[Description]
如何在User版本开启串口(Uart),开启输入控制台,抓取上层Log[Keyword]
User Uart Log Logcat 输入 控制台 串口
[Solution]
(1) 如何在User版本中使用串口(Uart)
*Android GB 2.3 GB.MP GB.TDD.MP GB2.MP GB2.TDD.MP
alps/mediatek/config/common/autoconfig/kconfig/USER
如果版本一致的话,应当是这个文件的37行
CONFIG_COMLINE=”console=ttyMT3,921600n1 loglevel=0”
您把最后的loglevel = 8 即可
*Android GB3.MP GB3.TDD.MP
手法1:直接用ENG 版本的lk 替换掉user 版本的lk, 即重新download eng 版本的lk 即可。
手法2: alps/bootable/bootloader/lk/app/mt_boot/mt_boot.c 里面的 178 行,找到printk.disable_uart=1 改成 printk.disable_uart=0
然后重新编译lk, download lk 即可。
*Android ICS 4.0/JB 4.1
如果是必须开机即需要抓取User 版本的Uart log, 请提交eservice 申请默认开启uart 的xlog 执行档
否则可以直接在adb shell 中输入aee -k 6, 后面的6即kernel printk 的Log等级,您可以选择不同的等级
*Android JB 4.2 以及以后版本
手法1:直接用ENG 版本的lk 替换掉user 版本的lk, 即重新download eng 版本的lk 即可。
手法2: alps/bootable/bootloader/lk/app/mt_boot/mt_boot.c 里面的 178 行,找到printk.disable_uart=1 改成 printk.disable_uart=0
然后重新编译lk, download lk 即可。
手法3: 如果只是临时将uart log 打开用于测试,请到我司DMS 上查询文档: Enable UART Log in user build.pptx
* 注意事项: 由于uart log 的打印对系统的性能造成严重影响, 在JB9.MP 以及以后版本, 在开机完成后默认关闭了uart log, 以提高系统性能. 从uart log 中可以看到如:
抓UART Log的时候会看到类似下面的Log。
[ 25.986567].(1)[324:Binder_1][usktrk] socket close[10422]
[ 25.987748].(1)[324:Binder_1]BOOTPROF: 25987.740155:BOOT_Animation:END
[ 25.988616].(1)[324:Binder_1]<< printk console disable >>
要关闭此功能,可以进行如下操作:
有三种种方法可以重新打开UART log:
1. 在超级终端窗口按下键盘的任何一个按键就可以让UART log继续吐。此种方式需要UART的TX和RX都要连接好。
2. 通过修改proc参数的方式: adb shell echo 1 > /proc/mtprintk
3. 通过设置system property:
使用: UART:command: setprop persist.uartconsole.enable 1
ADB Shell: adb shell setprop persist.uartconsole.enable 1
(2) 如何开启Uart 的控制台(console/sh)
Uart 控制台的开启,决定于System property ro.debuggable,默认如果ro.debuggable=1 则开启(Eng 版本),User 版本ro.debuggable=0 则关闭。
想在User 版本中打开,需要更新alps/mediatek/config/mt65xx/init.rc, 在init.rc 的触发器代码:
on property:ro.debuggable=1
start console
后面增加:
on property:ro.debuggable=0
start console
然后重新编译bootimage 即可, ./mk [project_name] new bootimage
(3) 如何在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输入
在android5.0以上的MTK代码中,MTK的代码结构开始完全与AOSP相同,上面提供的方法没有5.0的,于是参考4.2的描述,在bootable/bootloader/lk/app/mt_boot.c中找到printk.disable_uart,发现是sprintf(cmdline,"%s%s%d",cmdline," printk.disable_uart=",g_disable_uart);是向cmdline中写入参数传递给kernel,与4.2的不一样,其值是g_disable_uart
在bootable/bootloader目录grep -r "g_disable_uart"进行搜索,搜索到其定义在lk/platform/{platform}/boot_mode.c中,
打开boot_mode.c,找到赋值的位置boot_mode_select_uart()函数中,默认赋值为1,将其赋值为0后保存。
到根目录使用命令make lk编译lk
手机reboot bootloader进入fastboot模式,使用fastboot flash lk {filepath}\lk.bin 刷入新编译的lk后fastboot reboot重新启动,此时进入kernel后uart默认会打印log
0 0
- MTK平台打开uart默认输出log
- MTK平台,如何开启UART打印log到终端
- mtk 串口读取uart log
- MTK平台uart log 抓取及8 秒重启、开机震动功能总结
- mtk中输出log
- user版本如何打开uart,让android log从串口kernel log输出
- user版本如何打开uart,让android log从串口kernel log输出
- MTK平台 UART驱动代码分析
- 关于MTK 平台上默认打开wifi ,和默认关闭数据流量
- LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]
- LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]
- 高通平台 UART log 开启方法
- MTK用UART1输出log信息
- MTK功能机平台抓log
- MTK Nucleus平台软件log抓取方法
- MTK功能机平台抓log
- 用ADB 抓 mtk 平台的 log
- MTK平台preloader启动过程中UART初始化过程
- 基于大数据分析的安全管理平台技术研究及应用
- 从 Objective-C 里的 Alloc 和 AllocWithZone 谈起
- C/C++缓冲区的刷新问题
- iOS端App的icon和Launch Image规格实时更新
- Oracle11g的安装和卸载教程
- MTK平台打开uart默认输出log
- Collada Exporter114 工具导出COLLADA 格式3dmax打不开
- ROS学习手记11 -- 记录和回放Topic中的数据
- golang(4):编写socket服务,简单支持命令
- Android URI简介
- 【JAVA】JAVA之类的简单举例
- 【JZOJ 3112】开会
- VS2010中手动配置opencv2.4.10
- 基于注解的spring mvc入门