解决方案:获取启动循环中未启动时的日志文件
所遇问题概述
用户在刷写修改过的Android OSA系统映像到Nexus 6设备时遇到启动循环的问题。由于设备启动无法稳定进入Adb状态,因此常规的logcat
命令无法使用以提取日志信息。此时需要一种方法能够获得从设备首次启动以来生成的日志文件。
解决方案概述
通过将内核日志定向至USB串行端口的方法来获取设备初次启动过程中的重要日志信息如下:
- 开启并配置串行端口:
- 为了使日志能在系统崩溃之前被保存下来,可以设置
console
选项。这意味着当Bootloader引导时,内核将通过这种方式输出日志。 - 在某些设备上,您可能会看到一个命名以
ttyMSM2,115200n8
的端口,可以通过在内核启动参数中指定其为console=ttyMSM2,115200n8
来使串行日志处于激活状态。 检查
/dev
目录来确保它可用。将端口设置用作USB串行接口:
- 除了通过硬件上的物理串行线进行连接,也可以尝试从USB接口的序列化模拟输出中获取内核日志。Android设备通常会提供几个带有所需名称(例如
/dev/ttyUSB*
或/dev/ttyHSUSB*
)的日志端口。 ttyUSB*
类型的端口可能由gadget
驱动(如linux/drivers/usb/gadget
下的模块)提供;如果它们可用,将其作为系统日志设备进行配置。对于ttyHSUSB*
端口,它们通常由Android的MSM平台USB驱动实现,并不是所有型号都支持此功能。确保设备驱动程序支持:
- 为了确保该端口可以被内核用于输出日志,请查阅其相关源代码中是否注册了适当的支持API。如果设备驱动员没有将自身注册为内核打印信息的日志提供者,那么即使设置了
console=...
参数,也没有任何日志能通过这个端口显示出来。
相关网址
总结
当设备无法稳定启动或直接访问到日志时,可以通过配置串行输出方式来获得额外的内核启动信息。这通常涉及到使用正确格式化的UART参数以及确认其与所选设备兼容性。通过这种方法用户可以在特定时间点获取到需要的日志,从而帮助定位错误的根本原因。
正文完