From dacc7d5a54fa46a732fd358a0a771eb06b6aeeb0 Mon Sep 17 00:00:00 2001 From: Andrew Ammerlaan Date: Mon, 16 Sep 2024 17:20:40 +0200 Subject: [PATCH] x11-drivers/nvidia-drivers: include nvidia.conf in dracut always Dracut ignores /etc/modprobe.d if hostonly=no, this is a problem because if plymouth is installed then the drm module will be pulled in which will include the nouveau module. The presence of this module, combined with the lack of modprobe.d config file blacklisting it, results in the nouveau module being loaded in the initramfs stage on systems that have plymouth installed and are not using dracut's hostonly setting. This needs a proper upstream fix, but for now we can workaround the problem with this. See-also: https://github.com/dracut-ng/dracut-ng/issues/674 Signed-off-by: Andrew Ammerlaan Closes: https://github.com/gentoo/gentoo/pull/38628 Signed-off-by: Andrew Ammerlaan --- x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild | 7 +++++++ .../nvidia-drivers/nvidia-drivers-470.256.02-r1.ebuild | 7 +++++++ .../nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild | 7 +++++++ .../nvidia-drivers/nvidia-drivers-535.183.01-r1.ebuild | 7 +++++++ .../nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild | 7 +++++++ .../nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild | 7 +++++++ .../nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild | 7 +++++++ 7 files changed, 49 insertions(+) diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild index ce34ec976cfab..9de2db703e7e7 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild @@ -400,6 +400,13 @@ documentation that is installed alongside this README." # manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r1.ebuild index 5223357f1af23..901fcedc63b3f 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r1.ebuild @@ -387,6 +387,13 @@ documentation that is installed alongside this README." # ebuilds should handle manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild index de085dd0ad2bf..e799f517bebc2 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05-r1.ebuild @@ -451,6 +451,13 @@ documentation that is installed alongside this README." # ebuilds should handle manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.183.01-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.183.01-r1.ebuild index 340237b6525e0..d547a90fb2f77 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.183.01-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.183.01-r1.ebuild @@ -451,6 +451,13 @@ documentation that is installed alongside this README." # ebuilds should handle manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild index e3665b8588edf..17ddc58a0cfcf 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.107.02-r1.ebuild @@ -429,6 +429,13 @@ documentation that is installed alongside this README." # ebuilds should handle manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild index be2244bc4a8de..ce8321ba3ab29 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.71-r1.ebuild @@ -431,6 +431,13 @@ documentation that is installed alongside this README." # ebuilds should handle manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild index 283681495a68b..bfa3b9e555018 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-560.35.03-r1.ebuild @@ -434,6 +434,13 @@ documentation that is installed alongside this README." # ebuilds should handle manually if need others or addwrite) insinto /etc/sandbox.d newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # Dracut does not include /etc/modprobe.d if hostonly=no, but we do need this + # to ensure that the nouveau blacklist is applied + # https://github.com/dracut-ng/dracut-ng/issues/674 + # https://bugs.gentoo.org/932781 + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}/usr/lib/dracut/dracut.conf.d/10-${PN}.conf" || die } pkg_preinst() {