Skip to content

PoC: profiles/nvidia: Eliminate early KMS usage in favor of proper systemd chainload#236

Draft
ventureoo wants to merge 2 commits intomasterfrom
poc-remove-early-kms
Draft

PoC: profiles/nvidia: Eliminate early KMS usage in favor of proper systemd chainload#236
ventureoo wants to merge 2 commits intomasterfrom
poc-remove-early-kms

Conversation

@ventureoo
Copy link
Copy Markdown
Member

I’ve always considered early KMS as a workaround for issues with race conditions when loading between driver and display manager/graphics environment. Here is another approach, that allows you to solve this "right" in my opinion, as it simply ties graphics services to wait for NVIDIA module. To do this, we create nvidia-module-load.target and a udev rule that activates it if module loading is successful. If load failed, that’s okay, we have JobTimeoutSec, which allows nvidia-module-load.target to fail but load the rest of the services that depend on it (as Wants= implies soft dependencies).

To avoid breaking the work plymouth, we should switch to using simple-drm (that is, specify UseSimpledrm=1 in /etc/plymouth/plymouthd.conf, I thought this should be done on the calamares side). This is what Fedora does and it seems normal for them, see: https://fedoraproject.org/wiki/Changes/PlymouthUseSimpledrm

This will certainly require careful testing by other users, but from my testing, it works pretty well. The main advantage is the absence of bloated initramfs, which often becomes an obstacle for configurations with Btrfs snapshots and a separate /boot, as we now do when using limine-snapper-sync, which led us to decide to use ESP partition size 4 Gb by default, which I find excessive.

P. S. I’m still not sure if we should put it in chwd, or make it part of nvidia-utils package, because there are quite a lot of configuration files. On the other hand, I clearly don’t want to change anything in the current users' configuration to avoid any trouble.

… chainload

Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
…ainload

Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
@ventureoo ventureoo force-pushed the poc-remove-early-kms branch from 2d7012b to b328f81 Compare March 31, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant