Add a initcpio hook to include nouveau and nvidia

This commit is contained in:
Thomas Duckworth
2026-01-24 17:57:36 +11:00
parent 105e4d6dc7
commit 623ff4f8a0
2 changed files with 20 additions and 2 deletions

View File

@@ -0,0 +1,18 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2026 Thomas Duckworth <tduck@filotimoproject.org>
# Necessary for letting udev control what GPUs get which drivers
# using driver_override, so nouveau or nvidia can be dynamically selected.
# Also gives us some certainty that these are included for kernel modesetting.
build() {
add_module "nvidia"
add_module "nvidia-drm"
add_module "nvidia-modeset"
add_module "nvidia-uvm"
add_module "nouveau"
add_checked_modules "/drivers/gpu/drm"
}

View File

@@ -27,9 +27,9 @@ fi
# NOTE: plymouth MUST be after systemd as per the wiki!
cat <<- EOF > mkinitcpio.conf
MODULES=(overlay)
BINARIES=(nvidia nouveau) # Ensure both drivers are pulled into the initrd (see mkosi.postinst.chroot)
BINARIES=()
FILES=(/usr/lib/udev/rules.d/05-nvidia-module-selection.rules) # Determine which driver is used at boot with udev
HOOKS=(base systemd modconf kms keyboard block sd-encrypt filesystems fsck systemd-extension plymouth microcode sd-shutdown)
HOOKS=(base systemd nvidia-module-selection modconf kms keyboard block sd-encrypt filesystems fsck systemd-extension plymouth microcode sd-shutdown)
EOF
echo "rw \