Android系统 -- 如何延长开机logo的显示时间?(解决启动黑屏问题)
2023-06-27 13:54:01
ThanksView
  • 访问次数: 229
  • 注册日期: 2019-03-19
  • 最后登录: 2024-07-05

 如何延长开机logo的显示时间?(解决启动黑屏问题)

由于内核在启动时会将屏幕初始化为终端,从而导致开机logo图片在短暂显示后就被冲掉变成黑屏,这在量产时是不愿意看到的, 可通过重新配置并编译内核来解决这个问题。

10.5.1 For 4.x 内核

参考如下配置,重新配置并编译内核:

Device Drivers ---
                          > Graphics support ---
                          > Console display dirver support ---
                          > 
                          < 
                          > Framebuffer Console support

禁用Framebuffer Console support 即可保持Logo的显示,直至Qt应用的运行。

10.5.2 For 3.x 内核

参考如下配置,重新配置并编译内核:

Device Drivers ---
                          > Graphics support ---
                          > 
                          [
                          *
                          ] Bootup logo ---
                          > 
                          [ 
                          ] Standard black and white Linux logo 
                          [ 
                          ] Standard 
                          16-color Linux logo 
                          [ 
                          ] Standard 
                          224-color Linux logo 
                          [
                          *
                          ] Copy logo from previous FB
          Console display driver support  ---
                          > 
                          [ 
                          ] Framebuffer Console support

进入 Device Drivers的Graphics support菜单,勾选Bootup logo,并且只选中 Bootup logo里面的 Copy logo from previous FB。
再回到Graphics support菜单,进入Console display driver support 菜单,取消 Framebuffer Console support 项的选中。



加载kernel logo与开机动画logo bmp之间闪一帧黑屏或花屏的解决办法-NanoPC T4 RK339

问题:开机时,kernel logo与开机动画之间闪一帧黑屏,或者正常家长logo.bmp后,无法正确加载logo_kernel.bmp图片或者花屏或者黑屏的情况。

实验硬件平台:上海嵌入式家园RK3399开发板 - NanoPC T4

分析原因:这个现象是因为在BootAnimation开始绘图之前,会先做一次clear screen的动作,避免出现 前面的图干扰到BootAnimation的显示。



解决办法:修改RK3399 drm部分代码,使得在加载logo_kernel.bmp之前不做clear screen操作。

路径:kernel/drivers/gpu/drm/rockchip/rockchip_drm_drv.c

函数:rockchip_drm_bind() 



禁止启动阶段fb更新即可解决内核图片一闪而过问题:



rockchip_drm_bind 函数屏蔽如下内容:





ret = rockchip_drm_fbdev_init(drm_dev);

if (ret)

goto err_kms_helper_poll_fini;



drm_for_each_crtc(crtc, drm_dev) {

struct drm_fb_helper *helper = private->fbdev_helper;

struct rockchip_crtc_state *s = NULL;



if (!helper)

break;



s = to_rockchip_crtc_state(crtc->state);

//changed by Hanson, to prevent screen clearing during loading logo_kernel.bmp

/*

if (is_support_hotplug(s->output_type)) {

s->crtc_primary_fb = crtc->primary->fb;

crtc->primary->fb = helper->fb;

drm_framebuffer_reference(helper->fb);

}

*/

}

drm_dev->mode_config.allow_fb_modifiers = true;



重新编译,替换kernel.img和resource.img 作者:嵌入式家园 https://www.bilibili.com/read/cv9414920/ 出处:bilibili


沙发
2023-06-27 14:22:57
ThanksView
  • 访问次数: 229
  • 注册日期: 2019-03-19
  • 最后登录: 2024-07-05
1/1

三维半岛官网: http://www.thanksview.com

进入首页