瑞芯微Rockchip开发者社区
直播中

王军

7年用户 1763经验值
私信 关注
[问答]

RK3288系统的开机动画时间该怎样去延长呢

RK3288系统的开机动画时间该怎样去延长呢?有何解决方法?

回帖(1)

王敏

2022-3-10 14:36:21
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的改动这里就不给出了,之前的文章有提及过。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分