diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2024-09-19 18:52:32 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2024-09-19 19:29:53 -0400 |
commit | 645c5c5342bdadc6f8206732dc7335498d57eccb (patch) | |
tree | 58ffdf5eb2c3bf0da112cd2cc8911992ed0859e0 /x11-drivers | |
parent | toolchain.eclass: disable automagic CET for x86 (diff) | |
download | gentoo-645c5c5342bdadc6f8206732dc7335498d57eccb.tar.gz gentoo-645c5c5342bdadc6f8206732dc7335498d57eccb.tar.bz2 gentoo-645c5c5342bdadc6f8206732dc7335498d57eccb.zip |
x11-drivers/nvidia-drivers: config check for DRM_TTM_HELPER w/ 6.11+
Essentially the same issue as DRM_KMS_HELPER where nvidia will
detect that it's usable but the kernel will not install the
drm_ttm_helper.ko module resulting in missing symbol dependencies.
Also has the same problem where it cannot be directly selected
so we need to try to explain this to users.
At same time also update the KMS_HELPER message a bit, esp. given
I915 is not usable to enable TTM_HELPER making it a poor suggestion.
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'x11-drivers')
4 files changed, 68 insertions, 20 deletions
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 c0427557f1a5..7b1df6278314 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 @@ -96,6 +96,10 @@ PATCHES=( pkg_setup() { use modules && [[ ${MERGE_TYPE} != binary ]] || return + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + local CONFIG_CHECK=" PROC_FS ~DRM_KMS_HELPER @@ -106,15 +110,23 @@ pkg_setup() { $(usev powerd '~CPU_FREQ') " - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or - DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in." + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or + DRM_QXL=m, DRM_NOUVEAU=m also acceptable if a module and *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg} + Many DRM devices like DRM_I915 cannot currently be used to enable this." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_KVM." diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.120.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.120.ebuild index 0a3e3b785a46..3f80d1a64cc2 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.120.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.120.ebuild @@ -95,6 +95,10 @@ PATCHES=( pkg_setup() { use modules && [[ ${MERGE_TYPE} != binary ]] || return + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + local CONFIG_CHECK=" PROC_FS ~DRM_KMS_HELPER @@ -105,15 +109,23 @@ pkg_setup() { $(usev powerd '~CPU_FREQ') " - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or - DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in." + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or + DRM_QXL=m, DRM_NOUVEAU=m also acceptable if a module and *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg} + Many DRM devices like DRM_I915 cannot currently be used to enable this." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_KVM." 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 abee29c518c4..ee13950d9fd8 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 @@ -97,6 +97,10 @@ PATCHES=( pkg_setup() { use modules && [[ ${MERGE_TYPE} != binary ]] || return + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + local CONFIG_CHECK=" PROC_FS ~DRM_KMS_HELPER @@ -107,15 +111,23 @@ pkg_setup() { $(usev powerd '~CPU_FREQ') " - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or - DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in." + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or + DRM_QXL=m, DRM_NOUVEAU=m also acceptable if a module and *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg} + Many DRM devices like DRM_I915 cannot currently be used to enable this." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_KVM." 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 ac755f870b2e..2027543207fe 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 @@ -99,6 +99,10 @@ PATCHES=( pkg_setup() { use modules && [[ ${MERGE_TYPE} != binary ]] || return + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + local CONFIG_CHECK=" PROC_FS ~DRM_KMS_HELPER @@ -109,15 +113,23 @@ pkg_setup() { $(usev powerd '~CPU_FREQ') " - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or - DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in." + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or + DRM_QXL=m, DRM_NOUVEAU=m also acceptable if a module and *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection + of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg} + Many DRM devices like DRM_I915 cannot currently be used to enable this." local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. Cannot be directly selected in the kernel's menuconfig, and may need selection of another option that requires it such as CONFIG_KVM." |