Yocto板卡移植:如何维持U-Boot与内核启动画面并避免黑屏
解决Yocto自定义板卡启动阶段黑屏问题
U-Boot到内核加载时的黑屏解决
- 开启U-Boot帧缓冲接管功能:在U-Boot配置中启用
CONFIG_FRAMEBUFFER_SETUP和CONFIG_FB_TAKEOVER,让内核启动初期复用U-Boot的帧缓冲,避免切换过程黑屏。 - 内核配置适配:确保内核开启
CONFIG_FRAMEBUFFER_CONSOLE和CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER,延迟内核对帧缓冲的接管,保持U-Boot画面直到内核启动画面就绪。 - 传递显示启动参数:在U-Boot的
bootargs中添加video=<你的显示设备节点>:<分辨率>,<刷新率> fbcon=map:0,指定内核直接沿用U-Boot的显示配置,跳过重新初始化环节。
内核启动画面到Weston加载完成前的黑屏解决
- 保持内核logo显示:在内核配置中开启
CONFIG_LOGO、CONFIG_LOGO_LINUX_CLUT224,并设置CONFIG_LOGO_TIMEOUT=0,让内核启动logo持续显示直到用户空间图形服务接管。 - 优化Weston启动配置:修改Weston配置文件
/etc/xdg/weston/weston.ini,添加startup-animation=none,减少Weston初始化时的过渡延迟,快速接管帧缓冲。 - 引入Plymouth过渡服务:在Yocto的
local.conf中添加IMAGE_INSTALL:append = " plymouth plymouth-theme-script",通过Plymouth在内核启动后到Weston加载前显示自定义过渡画面,完全消除黑屏。
内容的提问来源于stack exchange,提问作者gulpr
相关产品推荐
相关产品推荐

