Eliminating black screen flashes during boot splash transitions on Jetson Orin NX

Hardware: Jetson Orin NX, JetPack 6.2.1, 1920x1080 DisplayPort, headless (no GDM)

I’ve implemented a 3-stage boot splash pipeline for a kiosk app, but I’m seeing black screen gaps between stages:

UEFI → [simple-fb splash] → [DRM splash (C, nvidia-drm)] → [Qt EGLFS app]

  • Stage 1: Writes raw image to /dev/fb0 at sysinit.target
  • Stage 2: C program acquires DRM master on card1 (nvidia-drm), displays splash via drmModeSetCrtc, waits for app handoff via Unix socket
  • Stage 3: Qt EGLFS app sends “RELEASE” → DRM splash calls drmDropMaster() → app takes over

Attached video — boot sequence timeline:

  • 0:03 — UEFI starts
  • 0:14 — Black screen
  • 0:20 — Splash image flickers briefly
  • 0:20 — Black screen
  • 0:23 — Splash image
  • 0:28 — Black screen (DRM → EGLFS handoff)
  • 0:33 — Application running

The two black screen periods are the problem:

  • 0:14–0:23 (~9s): Likely caused by modprobe nvidia-drm modeset=1 blanking the display
  • 0:28–0:33 (~5s): DRM master handoff to EGLFS app

Already done: quiet splash loglevel=0 vt.global_cursor_default=0, removed ${cbootargs} / console=tty0 / fbcon=map:0 from extlinux, disabled getty.

Questions:

  1. Can nvidia-drm modeset=1 load without blanking the display?
  2. Is there a way to extend the UEFI splash until Stage 1 takes over?
  3. Has anyone achieved zero-black-frame boot on Orin NX?

Thanks!

Hi,
We have the steps to change boot logo in:
UEFI Adaptation — NVIDIA Jetson Linux Developer Guide

And please build UEFI from r36.4.3-updates:
Seamless Display Handoff - #9 by WayneWWW

Or please try latest Jetpack 6.2.2 r36.5

Hi DaneLLL, thank you for the suggestions!

I’ve checked each one:

  1. UEFI Customized Logo — The UEFI logo itself works fine. My black screen gaps occur after the UEFI-to-kernel handoff.
  2. Seamless Display Handoff — I used r36.4.4-updates. SOC_DISPLAY_HANDOFF_MODE is already set to AUTO and the UEFI→kernel handoff is working correctly.
  3. JetPack 6.2.2 (r36.5) — I can try this. Does r36.5 include any changes to nvidia-drm display initialization?

My two remaining issues are:

  • Gap 1 (~9 sec): modprobe nvidia-drm modeset=1 resets the display pipeline and kills the simple-framebuffer output. Is there any way to load nvidia-drm without resetting the
    active display?
  • Gap 2 (~5 sec): DRM master → Qt EGLFS handoff. Any tips on reducing EGLFS startup time on Orin?

Thank you!

Hi,
Please check if you can use minimal rootfs or basic flavor rootfs:
Root File System — NVIDIA Jetson Linux Developer Guide

The rootfs do not initialize Ubuntu desktop and you can add service for your use-case in startup:
Jetson AGX Orin FAQ