Bootlog present before and after Plymouth splash screen

I am trying to setup a Plymouth splash screen using Yocto for a Verdin i.MX8M Plus. Before and after the splash screen, bootlog is shown on the display. According to this page:

I need to turn off “CONFIG_FRAMEBUFFER_CONSOLE” in the kernel. Unfortunately, this option at “/Device Drivers/Graphic support/Console display driver support/Framebuffer console support” is not directly modifiable. It is selected by:
DRM_FBDEV_EMULATION && HAS_IOMEM && DRM && FB & !EXPERT

It is depends on VT && FB && !UML

I have looked at each item but I do not know which item is safe to alter in order to disable the FRAMEBUFFER_CONSOLE.

The following is my tdx-info:

Software summary

Bootloader: U-Boot
Kernel version: 5.15.148-6.7.0-devel+git.f437ddb7191d #1 SMP PREEMPT Wed May 15 17:04:15 UTC 2024
Kernel command line: root=PARTUUID=3d9ffff3-02 ro rootwait console=tty1 console=ttymxc2,115200 consoleblank=0 earlycon
Distro name: NAME=“TDX Wayland with XWayland”
Distro version: VERSION_ID=6.7.0-devel-20240611161604-build.0
Distro variant: -
Hostname: verdin-imx8mp-15335618

Hardware info

HW model: Toradex Verdin iMX8M Plus on Verdin Development Board
Toradex version: 0063 V1.1B
Serial number: 15335618
Processor arch: aarch64

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

To disable the FRAMEBUFFER_CONSOLE in the Linux kernel configuration for your Verdin i.MX8M Plus setup, you’re encountering a dependency issue because this option is selected by other configurations due to the dependencies you’ve mentioned. The challenge here is to navigate these dependencies without compromising the system’s functionality.

Given the dependencies DRM_FBDEV_EMULATION && HAS_IOMEM && DRM && FB & !EXPERT, it seems that FRAMEBUFFER_CONSOLE is being automatically selected due to the Direct Rendering Manager (DRM) fbdev emulation (DRM_FBDEV_EMULATION). This is common in modern Linux systems where DRM is used for managing graphics and fbdev is emulated over DRM for backward compatibility with framebuffer devices.

To disable FRAMEBUFFER_CONSOLE without causing issues, you might consider the following approach:

  1. DRM_FBDEV_EMULATION: This is the primary target since it directly influences the selection of FRAMEBUFFER_CONSOLE. If your graphical applications and the Plymouth splash screen rely on DRM and do not require fbdev emulation, you can try disabling this option. This action should indirectly allow you to disable FRAMEBUFFER_CONSOLE.

  2. Expert Mode (EXPERT): Sometimes, toggling the EXPERT option in the kernel configuration exposes more granular control over certain options. Enabling EXPERT mode might not directly solve the issue but can reveal additional configuration options that are otherwise hidden.

  3. Kernel Configuration Interface: If you’re using a graphical kernel configuration tool like make menuconfig or make xconfig, navigate to the Device Drivers -> Graphics support -> Console display driver support section and carefully review the options. Look for DRM_FBDEV_EMULATION and try to disable it. Remember, this might affect other dependencies, so ensure that your graphical environment does not strictly require fbdev emulation over DRM.

  4. Yocto Project Customization: Since you’re working with Yocto, you can create a custom .bbappend file for the kernel recipe and include a fragment file to adjust these configuration options. For example, create a cfg fragment that contains CONFIG_DRM_FBDEV_EMULATION=n and include it in your kernel recipe to apply this change during the build.

  5. Testing and Validation: After making these changes, ensure to thoroughly test your graphical environment, including the Plymouth splash screen, to confirm that everything functions as expected without the framebuffer console.

Remember, disabling FRAMEBUFFER_CONSOLE and `

Please, also check if these links can help you solve your problem:

Framebuffer (Linux) | Toradex Developer Center.

Hey @Sutter99,

That path is to remove the framebuffer console, if you just want to disable console messages, so they don’t show up on the display, you can follow the "Disable Framebuffer Console" directions.

-Eric

Hi @eric.tx,

I followed the directions to disable the framebuffer console out by changing the environment variables at the uboot prompt for development purposes. For production, I would prefer to be able to turn it off in the Yocto build and I assumed, perhaps incorrectly, that the correct way to do this is by disabling "CONFIG_FRAMEBUFFER_CONSOLE”. Is there a method to patch the uboot environment variables during the Yocto build process?

Thanks

Hey @Sutter99,

The Best Practices guide can be found here for when dealing with U-boot-environmental variables. You can modify the default environment based on your board specific file.

-Eric

Thank you!