TI中文支持网
TI专业的中文技术问题搜集分享网站

开机启动 logo

您好:

   系统使用的是安卓,基于  http://processors.wiki.ti.com/index.php/TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide ,完成了安卓系统。uboot 使用的是 2014。10。现在想让产品上电之后,显示公司的 logo,直至安卓系统起来。不知道哪一种方案比较可行,方案一 : UBOOT 起来之后显示 logo,直至安卓系统;方案二 : UBOOT 显示 一张 logo,内核起来显示一张 logo,安卓起来在现实一张 logo。

   但是,方案一 存在以下问题 : UBOOT 显示 logo已经实现,但是启动内核的时候,又将屏幕给刷新了,屏幕变白了。尝试过,在 内核的 driver/video/logo 添加自己的启动logo : logo_linux_clut224.ppm(自己制作),但是内核启动的时候,并没有显示logo

   方案二 :如何使得 UBOOT 的现实的图片可以一直保持,直至安卓起来。

Jian Zhou:

你可以参考下这个文档:http://processors.wiki.ti.com/index.php/Customizing_the_SDK_Splash_Screen

自定义一个启动logo.

Cason wang:

回复 Jian Zhou:

您好, 这篇文章提到了

The "psplash" user space application is called at boot time, showing the TI logo splash screen.

请问怎么才能让psplash在启动的时候调用? 有没有文档?

我的平台是 beagle bone black am335x 

谢谢

 

Cason wang:

回复 Cason wang:

能不能帮忙解决一下?

user4725089:

回复 Jian Zhou:

安卓的 logo 开机制作出来了,将 UBOOT 显示logo + 内核通过 logo_linux_clut244 显示 logo + initlogo.rle 显示 + bootanimation 进行显示。但是在 initlogo.rle 和 bootanimation 过度的时候,存在大概一秒的黑屏。求支援。

Cason wang:

回复 user4725089:

求 介绍这个是怎么做到的

内核通过 logo_linux_clut244 显示 logo + initlogo.rle 显示 + bootanimation 进行显示 

user4725089:

回复 Cason wang:

内核显示 logo,网上有很多的资料啊,参考这个就可以。 http://blog.csdn.net/sdvch/article/details/44304241。显示 内核 logo 的时候,我自己是讲 LCD 的初始化函数 : module_init ,改为 : postcore_initcall。 将 LCD 初始化的的时间在内核的前面完成初始化,不然又可能会导致 LCD 过晚完成初始化,从而导致 显示 logo 时间。

显示   initlogo.rle 的话,需要将 init.c 中的 :

main

  queue_builtin_action(console_init_action, "console_init"); // 将显示函数,放入队列,等待执行

    console_init_action // 显示函数

      load_565rle_image(INIT_IMAGE_FILE) // 实际显示

  的 unlink(fn);  进行注释,不然,你的 initlogo.rle 每次都会被删除(因为我的文件系统上hi UBI)。

booamination 的话,没有需要什么要注意的,直接替换文件就可以。

user4725089:

回复 Jian Zhou:

咨询下:

    initlogo.rle —-> 黑屏—-> bootanimation ,这个黑屏的部分,我查了快一周了,就是定位不到,求技术支持。

user4725089:

回复 Jian Zhou:

别沉啊,帖子。

谁弄了安卓的,怎么解决开机显示logo—->黑屏—–>开机动画。这个黑屏,大家伙开发产品的时候,应该都是要解决的啊

user4725089:

回复 Jian Zhou:

没有人回答啊,我贴出问题的定位,希望抛砖引玉。

分析了 init.rc 发现有:

```

import /init.usb.rcimport /init.${ro.hardware}.rcimport /init.trace.rc

```

而××ro.hardware×× 来自于/proc/cpninfo ,所有加载的是根目录下的 init.am335xevm.rc。我们分析 init.am335xevm.rc 文件,发现整个文件和显示有关的就只有 :

“`

service pvr /system/bin/sgx/rc.pvr start  class core  oneshot

“`

我们需要对**/system/bin/sgx/rc.pvr** 进行分析,

“`case "$1" in"start") load_pvr ;;stop) if ! unload_pvr; then echo "Couldn't unload modules" >&2; fi ;;reload|restart) if unload_pvr; then load_pvr else echo "Couldn't unload modules" >&2; fi ;;*) echo "$0: unknown argument $1." >&2; ;;esac“`

**rc.pvr** 内容是比较的简单,通过传入的传入的值为 **start** 的时候,就执行 **load_pvr**,所以就是“`load_pvr(){

insmod /system/bin/sgx/pvrsrvkm.ko insmod /system/bin/sgx/omaplfb.ko chmod 0666 /dev/pvrsrvkm sleep 20 /system/bin/pvrsrvctl –start –no-module echo "Loaded PowerVR consumer services." return 0;}“`可见,其实就是加载了两个驱动,而且执行 **/system/bin/pvrsrvctl** 了这个命令。从启动的的延迟效果来看可以看出来,启动的黑屏是在**/system/bin/pvrsrvctl –start –no-module** 发生的。

和 SGX 相关的路径是位于 : /TI_Android_JB_4.2.2_DevKit_4.1.1/hardware/ti/sgx,应该是要去分析,是谁产生了 **pvrsrvctl** 这个命令。

暂时分析到这里,后续的代码,看的晕乎乎,非常困难。

赞(0)
未经允许不得转载:TI中文支持网 » 开机启动 logo
分享到: 更多 (0)