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 <andrewammerlaan@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/38628
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
This commit is contained in:
Andrew Ammerlaan
2024-09-16 17:20:40 +02:00
parent 84ebb8f151
commit dacc7d5a54
7 changed files with 49 additions and 0 deletions

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {