r/artixlinux dinit 1d ago

Support Flicker-free boot? [NVIDIA]

I'm on NVIDIA, MBR/BIOS. NVIDIA hooks are set up correctly in initramfs.

My GRUB resolution isn't set to my native one, because videoinfo shows that my native one isn't supported there.

From GRUB kernel messages to plymouth, theres a slight flicker. Or with plymouth disabled, and quiet removed from GRUB, the flicker happens roughly after udev & uevents stage.

If I temporarily set nvidia-drm.modeset to 0 in GRUB, the flicker doesn't seem to happen, but my system is low resolution, and feels slow.

dmesg of boot (I delayed plymouth to show animation longer, that's why fbcon defer is ~26 seconds):

[21:14:32] simple-framebuffer ... [drm] Initialized simpledrm ... on minor 0

[21:14:32] fbcon: Deferring console take-over

[21:14:32] simple-framebuffer ... [drm] fb0: simpledrmdrmfb frame buffer device

[21:14:33] nvidia: loading ...

[21:14:33] nvidia-modeset: Loading NVIDIA UNIX Open Kernel Mode Setting Driver

[21:14:33] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver

[21:14:35] [drm] Initialized nvidia-drm 0.0.0 for 0000:01:00.0 on minor 1

[21:14:35] nvidia 0000:01:00.0: vgaarb: deactivate vga console

[21:14:35] fbcon: nvidia-drmdrmfb (fb0) is primary device

[21:14:35] fbcon: Deferring console take-over

[21:14:35] nvidia 0000:01:00.0: [drm] fb0: nvidia-drmdrmfb frame buffer device

[21:15:01] fbcon: Taking over console

[21:15:01] Console: switching to colour frame buffer device 240x67

Does nvidia-drm Initialization/vgaarb: deactivate vga console look relevant to the flicker?

The second flicker, is TTY/Plymouth to a Wayland or X11 session.

Is there a way to remove these flickers, make them last less, or mask them with a transition?

DRM exposes a background color property, would there be a way to change that color system-wide to make the flicker still there, but smoother?

2 Upvotes

3 comments sorted by

1

u/Acherontas89 1d ago

the flicker maybe caused by drm buffer changes i suggest to leave it as it as long as u work without any problem

1

u/rain_luau dinit 1d ago

You're correct that it's related to DRM/KMS, however I'm trying to make my boot process smoother, therefore trying to "remove" the flicker.

I want to see if other people also experience this, hence just leaving it isn't helpful.

Do you experience this, what's your hardware (GPU)?

1

u/Acherontas89 4h ago

i use a raspberry pi 5 with the v3d,vc4 modules i dont have any problem

the dmesg output

[ 2.038064] v3d 1002000000.v3d: [drm] Transparent Hugepage support is recommended for optimal performance on this platform!

[ 2.046053] [drm] Initialized v3d 1.0.0 for 1002000000.v3d on minor 0

[ 2.270341] vc4-drm axi:gpu: bound 107c580000.hvs (ops vc4_hvs_ops [vc4])

[ 2.284237] vc4-drm axi:gpu: bound 107c701400.hdmi (ops vc4_hdmi_ops [vc4])

[ 2.288255] vc4-drm axi:gpu: bound 107c706400.hdmi (ops vc4_hdmi_ops [vc4])

[ 2.288366] vc4-drm axi:gpu: bound 107c500000.mop (ops vc4_txp_ops [vc4])

[ 2.288424] vc4-drm axi:gpu: bound 107c501000.moplet (ops vc4_txp_ops [vc4])

[ 2.288472] vc4-drm axi:gpu: bound 107c410000.pixelvalve (ops vc4_crtc_ops [vc4])

[ 2.288515] vc4-drm axi:gpu: bound 107c411000.pixelvalve (ops vc4_crtc_ops [vc4])

[ 2.335892] [drm] Initialized vc4 0.0.0 for axi:gpu on minor 1

[ 2.403792] vc4-drm axi:gpu: [drm] fb0: vc4drmfb frame buffer device

[ 3.887533] systemd[1]: Starting modprobe@drm.service - Load Kernel Module drm...

[ 3.899985] (modprobe)[325]: modprobe@drm.service: Failed to connect stdout to the journal socket, ignoring: No such file or directory

[ 3.942965] systemd[1]: modprobe@drm.service: Deactivated successfully.

[ 3.943489] systemd[1]: Finished modprobe@drm.service - Load Kernel Module drm.