如何在User版本开启串口(Uart),抓取上层Log,开启输入控制台
[原][FAQ03891] 如何在User版本开启串口(Uart),抓取上层Log,开启输入控制台
2014-11-26阅读1369 评论0
FAQ Content
[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输入
如何在User版本开启串口(Uart),抓取上层Log,开启输入控制台的更多相关文章
- 详解usbmon抓取的log各字段的含义
详解 usbmon 抓取的 log 各字段的含义 在上篇文章中,我们已经介绍了如何在 linux 下使用 usbmon 抓取 usb 总线上数据的方法.(https://www.cnblogs.com ...
- 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...
- bat实现固定时间循环抓取设备log
背景:测试时需要实时抓取android设备log,但是一份log抓取过来非常庞大(有时超过500M+,编辑器都打不开,还得找工具进行分割,甚是蛋疼),查看也非常不方便. 解决:基于上述情况,与其之后进 ...
- MTK平台-抓取蓝牙log
一.MTKLOG抓取 .在拔号键盘输入暗码 *#*##*#* 进入工模EngineerMode .在 Log and Debugging -> MTKLogger 点击开始 .MTKLog存储路 ...
- HttpWebRequest抓取网页内容与直接输入URL得到的内容不一致!球大神帮忙!!
一.前言 我在做一个百度收录情况查询的软件,就是通过软件来批量查询文章链接是否被百度收录,主要是用来查询某个网址的收录次数还有网站的排行数,思路是借鉴别人的. 二.问题描述 首先需要考虑的是能够支持哪 ...
- android抓取各种log的方法
1.logcat (四类log buffer是main,radio.system.events) adb wait-for-device logcat adb logcat -v time > ...
- python练习:抓取统计log内ip数量
#!/usr/bin/python #-*- coding: utf- -*- import os import re rawfile = '/var/log/auth.log' def rawpar ...
- 【VIP视频网站项目】VIP视频网站项目v1.0.3版本发布啦(程序一键安装+电影后台自动抓取+代码结构调整)
在线体验地址:http://vip.52tech.tech/ GIthub源码:https://github.com/xiugangzhang/vip.github.io 项目预览 主页面 登录页面 ...
- 如何抓取 framework input 事件相关 log
出现事件输入相关的问题时, 建议先 followhttp://429564140.iteye.com/blog/2355405来检测对应的设备是否有响应输入 如果没有响应输入,则可能是 driver ...
随机推荐
- Poj 2349 Arctic Network 分类: Brush Mode 2014-07-20 09:31 93人阅读 评论(0) 收藏
Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9557 Accepted: 3187 De ...
- 《EnterLib PIAB深入剖析》系列博文汇总_转
转: http://www.cnblogs.com/artech/archive/2008/08/08/1263418.html
- 理解Linux系统负荷[转]
一.查看系统负荷 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在苹果公司的Mac电脑上也适用.) 二.一个类比 我们不妨把这个CPU想象成一座大桥, ...
- Codeforces Round #231 (Div2) 迟到的解题报告
题目A: 给一个火柴等式,可以从左边移动一根到右边,也可以从右边移到左边,但是不能移动“+”,”=“的火柴, 而且加法里面的数都要大于0(很重要的条件),基本上注意到这点的都过了,没注意的都被HACK ...
- Swift 2.0 到底「新」在哪?
[编者按]2015年6月,一年一度的苹果 WWDC 大会如期而至,在大会上苹果发布了 Swift 2.0,引入了很多新的特性,以帮助开发者更快.更简单地构建应用.本篇文章作者是 Maxime defa ...
- POJ 2923 Relocation (状态压缩,01背包)
题意:有n个(n<=10)物品,两辆车,装载量为c1和c2,每次两辆车可以运一些物品,一起走.但每辆车物品的总重量不能超过该车的容量.问最少要几次运完. 思路:由于n较小,可以用状态压缩来求解. ...
- UVA 624 CD(01背包+输出方案)
01背包,由于要输出方案,所以还要在dp的同时,保存一下路径. #include <iostream> #include <stdio.h> #include <stri ...
- ***mysql中查询今天、昨天、上个月sql语句
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天Select * FROM 表名 Where TO_DAYS( NOW( ) ...
- ***iOS开发中@selector的理解与应用
@selector 是什么? 1一种类型 SEL2代表你要发送的消息(方法), 跟字符串有点像, 也可以互转.: NSSelectorFromString() / NSSelectorFromStri ...
- TCP/IP协议 三次握手与四次挥手【转】
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...