cachyos-drm-awaiter: New package - #1695
Open
ventureoo wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a package that delays graphical services until detected DRM modules load, reducing initramfs size.
Changes:
- Adds a systemd generator for GPU module detection and ordering.
- Adds udev rules for module tracking and SimpleDRM handoff.
- Adds Arch package metadata and installation rules.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
cachyos-drm-awaiter/PKGBUILD |
Packages the generator and udev rules. |
cachyos-drm-awaiter/drm-module-awaiter-generator |
Generates DRM module dependencies during boot. |
cachyos-drm-awaiter/30-drm-awaiter.rules |
Tracks DRM modules and handles SimpleDRM. |
cachyos-drm-awaiter/.SRCINFO |
Provides generated package metadata. |
Suppressed comments (2)
cachyos-drm-awaiter/drm-module-awaiter-generator:66
- Comparing a concrete modalias prefix against
modinfo's wildcard alias text is not alias matching. For example, Nouveau exposes aliases such aspci:v000010DEd*..., which cannot contain the concrete device prefix stored here, so Nouveau is omitted; other wildcard aliases are affected too. Preserve the full sysfs modalias and resolve it withmodprobe --resolve-alias, then check for this exact module name.
modinfo "$module" 2>/dev/null | grep -q "$modalias" || return 1
cachyos-drm-awaiter/drm-module-awaiter-generator:109
- On an NVIDIA-only system,
modulesis still empty here becausenvidia_moduleis appended below, so the generator returns without creating any synchronization target. The linked chwd NVIDIA profiles install this package while removing the initramfs module list, making this path essential. Add NVIDIA before the empty check and ensure the single-GPU path actively loadsnvidia_drm; loading the corenvidiamodule alone does not pull it in, so merely moving the append would otherwise cause a 10-second timeout.
if [ -z "${modules[0]}" ]; then
return 0
fi
if [ -n "$nvidia_module" ]; then
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+2
to
+3
| ACTION=="add", SUBSYSTEM=="module", KERNEL=="amdgpu|radeon|nvidia_drm|i915|xe|nouveau", \ | ||
| TEST=="/sys/devices/platform/simple-framebuffer.0/drm/card0", RUN+="/bin/rm /dev/dri/card0" |
Member
Author
There was a problem hiding this comment.
I find this extremely unlikely, besides the same rule is used in Ubuntu and I haven't seen any bugs related with it.
Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
ventureoo
force-pushed
the
cachyos-drm-awaiter
branch
from
August 9, 2026 16:21
875ee92 to
d83ab02
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It's working pretty simple, we supply systemd generator which generates
drm-module-load.targetin early boot time, which is guessing all necessary GPU drivers and injecting dependency to them for units that are using graphics at boot process, that is getty with autostart of some environment or display manager. This should spare us from including GPU modules in initramfs images, which makes them very bloated. On my machine with two GPUsinitramfs-linux-cachyos.imgcurrently takes 252 MiBs per-kernel, and I don't find this acceptable. After removing early kms, it takes only 17 Mb, that's significant saving.See CachyOS/chwd#236 for more details.