当前位置: 首页 > news >正文

如何在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输入
 
 
转至:http://m.blog.csdn.net/blog/sunxingzhesunjinbiao/41511961

转载于:https://www.cnblogs.com/Ph-one/p/5038185.html

相关文章:

  • Allegro16.3约束设置
  • allegro蛇形线
  • opencore
  • 深入浅出:Linux设备驱动之字符设备驱
  • Linux设备模型——设备驱动模型和sysfs文件系统解读
  • Linux内核的整体架构
  • ERP
  • PCB阻抗调节
  • cdev、udev
  • 模拟电路创新设计
  • 设备模型之kobject,kset及其关系
  • 设备驱动基础1:设备模型之总线,驱动,设备
  • 位域“ :”
  • Kobject结构体分析
  • 2016年01月12号
  • 「面试题」如何实现一个圣杯布局?
  • 【RocksDB】TransactionDB源码分析
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CentOS 7 修改主机名
  • JavaScript创建对象的四种方式
  • maven工程打包jar以及java jar命令的classpath使用
  • Web标准制定过程
  • XML已死 ?
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端之Sass/Scss实战笔记
  • 容器服务kubernetes弹性伸缩高级用法
  • 深度学习在携程攻略社区的应用
  • 异常机制详解
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 在Docker Swarm上部署Apache Storm:第1部分
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Nginx实现动静分离
  • Spring第一个helloWorld
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​VRRP 虚拟路由冗余协议(华为)
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (C++20) consteval立即函数
  • (floyd+补集) poj 3275
  • (二)hibernate配置管理
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)程序员技术练级攻略
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .Net 8.0 新的变化
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET大文件上传知识整理
  • @基于大模型的旅游路线推荐方案
  • [1204 寻找子串位置] 解题报告
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt