获取Android OSA启动循环日志的方法

5次阅读
没有评论

解决方案:获取启动循环中未启动时的日志文件

所遇问题概述

用户在刷写修改过的Android OSA系统映像到Nexus 6设备时遇到启动循环的问题。由于设备启动无法稳定进入Adb状态,因此常规的logcat命令无法使用以提取日志信息。此时需要一种方法能够获得从设备首次启动以来生成的日志文件。

解决方案概述

通过将内核日志定向至USB串行端口的方法来获取设备初次启动过程中的重要日志信息如下:

  1. 开启并配置串行端口
  2. 为了使日志能在系统崩溃之前被保存下来,可以设置console选项。这意味着当Bootloader引导时,内核将通过这种方式输出日志。
  3. 在某些设备上,您可能会看到一个命名以ttyMSM2,115200n8的端口,可以通过在内核启动参数中指定其为console=ttyMSM2,115200n8来使串行日志处于激活状态。
  4. 检查/dev目录来确保它可用。

  5. 将端口设置用作USB串行接口

  6. 除了通过硬件上的物理串行线进行连接,也可以尝试从USB接口的序列化模拟输出中获取内核日志。Android设备通常会提供几个带有所需名称(例如/dev/ttyUSB*/dev/ttyHSUSB*)的日志端口。
  7. ttyUSB*类型的端口可能由gadget驱动(如linux/drivers/usb/gadget下的模块)提供;如果它们可用,将其作为系统日志设备进行配置。对于ttyHSUSB*端口,它们通常由Android的MSM平台USB驱动实现,并不是所有型号都支持此功能。

  8. 确保设备驱动程序支持

  9. 为了确保该端口可以被内核用于输出日志,请查阅其相关源代码中是否注册了适当的支持API。如果设备驱动员没有将自身注册为内核打印信息的日志提供者,那么即使设置了console=...参数,也没有任何日志能通过这个端口显示出来。

相关网址

总结

当设备无法稳定启动或直接访问到日志时,可以通过配置串行输出方式来获得额外的内核启动信息。这通常涉及到使用正确格式化的UART参数以及确认其与所选设备兼容性。通过这种方法用户可以在特定时间点获取到需要的日志,从而帮助定位错误的根本原因。

正文完