如何延长开机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
回贴