现象
修改kernel的.config,增加了几个内置驱动,系统起来后,串口无法输入
分析
开机启动log出现
Timed out waiting for /dev/.coldboot_done
按照报错的地方提示原因:
// Any longer than 1s is an unreasonable length of time to delay booting.
// If you're hitting this timeout, check that you didn't make your
// sepolicy regular expressions too expensive (http://b/19899875).
if (wait_for_file(COLDBOOT_DONE, 1)) {
ERROR("Timed out waiting for %s\n", COLDBOOT_DONE);
}
从提示上看及该代码执行位置,Android系统启动时间晚了些。
分析验证
因此应该是kernel启动到Android系统时间超过1s,因此出现异常。删除其他几个内置驱动,验证ok。
结论
kernel到Android服务启动,有时间限制,超时后,可能会出现一些不可预料的问题。我的修改导致了串口不可用。为避免该类问题,尽量减少kernel到Android服务启动之间的时间。