1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Platform: RK3288
OS: Android 6.0 Kernel: 3.10.92 背景: 由于系统有模块需要和外部硬件做同步,因此要延长开机时间。 调试思路: 由于系统只显示了开机动画,没有开机Logo。因此一开始的思路是把开机动画时间延长,然后把launcher或者zygote的启动时间也延迟。调试发现不可行,因为init进程之后的进程都是并发执行的,而很多进程的功能又是相互依赖的,如下图(图片来自参考链接博客): 因此把延时做在init进程之前了,由于这时开机动画是没有运行的,所以也要开启开机Logo的显示,避免黑屏太久。 解决方法: init改动如下: kris@eco:~/rk3288/system/core$ g df 6a8f21df1001917edafb978a427ae98c64a91490 4d69b8b74af30a2e0329eeb124d48a228c9b1800 diff --git a/init/init.cpp b/init/init.cpp index e748a4f..3594279 100755 --- a/init/init.cpp +++ b/init/init.cpp @@ -215,6 +215,7 @@ void service_start(struct service *svc, const char *dynamic_args) // Running processes require no additional work --- if they're in the // process of exiting, we've ensured that they will immediately restart // on exit, unless they are ONESHOT. + if (svc->flags & SVC_RUNNING) { return; } @@ -1287,6 +1288,7 @@ static void rk_parse_cpu(void) int main(int argc, char** argv) { + if (!strcmp(basename(argv[0]), "ueventd")) { return ueventd_main(argc, argv); } @@ -1332,6 +1334,12 @@ int main(int argc, char** argv) { // to the outside world. open_devnull_stdio(); klog_init(); + if (!is_first_stage){ + ERROR("n"); + ERROR("delay 10s wait for HiWiFi boot beginn"); + sleep(10); + ERROR("delay 10s wait for HiWiFi boot endn"); + } //klog_set_level(KLOG_NOTICE_LEVEL); 开机Logo的改动这里就不给出了,之前的文章有提及过。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
498 浏览 0 评论
768 浏览 1 评论
667 浏览 1 评论
1893 浏览 1 评论
3138 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 18:23 , Processed in 0.598177 second(s), Total 72, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号