diff --git a/anda/system/nvidia-580/dkms-nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch b/anda/system/nvidia-580/dkms-nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch deleted file mode 100644 index b17015cd83..0000000000 --- a/anda/system/nvidia-580/dkms-nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 60d1ddc17835226ec67ed1bc1c28524e3bb6e151 Mon Sep 17 00:00:00 2001 -From: Peter Jung -Date: Sun, 20 Apr 2025 18:13:22 +0200 -Subject: [PATCH 1/8] Enable atomic kernel modesetting by default - -This is required for proper functionality under Wayland. fbdev has been default enabled since 570 so that -hunk can be removed from this patch. - -Signed-off-by: Peter Jung ---- - nvidia-drm/nvidia-drm-linux.c | 2 +- - nvidia-drm/nvidia-drm-os-interface.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git an/nvidia-drm/nvidia-drm-linux.c b/nvidia-drm/nvidia-drm-linux.c -index 3cb1815d..209cb469 100644 ---- a/nvidia-drm/nvidia-drm-linux.c -+++ b/nvidia-drm/nvidia-drm-linux.c -@@ -31,7 +31,7 @@ - - MODULE_PARM_DESC( - modeset, -- "Enable atomic kernel modesetting (1 = enable, 0 = disable (default))"); -+ "Enable atomic kernel modesetting (1 = enable (default), 0 = disable)"); - module_param_named(modeset, nv_drm_modeset_module_param, bool, 0400); - - #if defined(NV_DRM_FBDEV_AVAILABLE) -diff --git a/nvidia-drm/nvidia-drm-os-interface.c b/nvidia-drm/nvidia-drm-os-interface.c -index 7617476d..f22afd77 100644 ---- a/nvidia-drm/nvidia-drm-os-interface.c -+++ b/nvidia-drm/nvidia-drm-os-interface.c -@@ -41,7 +41,7 @@ - #include - #endif - --bool nv_drm_modeset_module_param = false; -+bool nv_drm_modeset_module_param = true; - bool nv_drm_fbdev_module_param = true; - - void *nv_drm_calloc(size_t nmemb, size_t size) --- -2.49.0.391.g4bbb303af6 diff --git a/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec b/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec index 76cf68b281..2c61a1bcc0 100644 --- a/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec +++ b/anda/system/nvidia-580/dkms-nvidia/dkms-nvidia-580.spec @@ -7,14 +7,13 @@ Name: dkms-%{modulename} Version: 580.159.03 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: https://www.nvidia.com/object/unix.html Source0: https://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run Source1: dkms-nvidia.conf -Patch0: 0001-Enable-atomic-kernel-modesetting-by-default.patch BuildRequires: sed Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: dkms @@ -31,13 +30,10 @@ Packager: Terra Packaging Team This package provides the proprietary NVIDIA kernel driver modules. %prep -sh %{SOURCE0} -x --target dkms-nvidia-%{version}-%{_arch} -%setup -T -D -n dkms-nvidia-%{version}-%{_arch} - -pushd kernel-open -%autopatch -p1 -popd +sh %{SOURCE0} -x --target %{name}-%{version}-%{_arch} +%setup -T -D -n %{name}-%{version}-%{_arch}/kernel +rm -f dkms.conf cp -f %{SOURCE1} dkms.conf sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf @@ -46,8 +42,7 @@ sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf %install mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ -cp -fr * %{buildroot}%{_usrsrc}/%{modulename}-%{version}/ -rm -f %{buildroot}%{_usrsrc}/%{modulename}-%{version}/*/dkms.conf +cp -fr * -t %{buildroot}%{_usrsrc}/%{modulename}-%{version} %post dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || : diff --git a/anda/system/nvidia-580/nvidia-driver/10-nvidia.conf b/anda/system/nvidia-580/nvidia-driver/10-nvidia.conf deleted file mode 100644 index b9db1a9928..0000000000 --- a/anda/system/nvidia-580/nvidia-driver/10-nvidia.conf +++ /dev/null @@ -1,8 +0,0 @@ -Section "OutputClass" - Identifier "nvidia" - MatchDriver "nvidia-drm" - Driver "nvidia" - Option "AllowEmptyInitialConfiguration" - Option "SLI" "Auto" - Option "BaseMosaic" "on" -EndSection diff --git a/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec b/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec index 37874205e2..8a160e8e45 100644 --- a/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec +++ b/anda/system/nvidia-580/nvidia-driver/nvidia-driver-580.spec @@ -12,7 +12,7 @@ Name: %{real_name}-580xx Version: 580.159.03 -Release: 3%{?dist} +Release: 4%{?dist} Summary: NVIDIA's proprietary display driver for NVIDIA graphic cards Epoch: 3 License: NVIDIA License @@ -20,9 +20,8 @@ URL: http://www.nvidia.com/object/unix.html %dnl Source0: %{name}-%{version}-i386.tar.xz %dnl Source1: %{name}-%{version}-x86_64.tar.xz %dnl Source2: %{name}-%{version}-aarch64.tar.xz -Source8: 70-%{real_name}.preset -Source9: 70-%{real_name}-cuda.preset -Source10: 10-nvidia.conf +Source8: 70-nvidia-driver.preset +Source9: 70-nvidia-driver-cuda.preset Source13: alternate-install-present Source40: com.nvidia.driver.metainfo.xml Source41: parse-supported-gpus.py @@ -244,6 +243,9 @@ rm -f libnvidia-pkcs11.so.%{version} %endif %endif +mv libGLX_nvidia.so.%{version} libGLX_nvidia.so.0 +ln -sf libGLX_nvidia.so.0 libGLX_nvidia.so.%{version} + # Create symlinks for shared objects ldconfig -vn . @@ -285,11 +287,9 @@ ln -sf ../libnvidia-allocator.so.%{version} %{buildroot}%{_libdir}/gbm/nvidia-dr %endif %ifarch x86_64 - # NGX Proton/Wine library mkdir -p %{buildroot}%{_libdir}/nvidia/wine/ cp -a *.dll %{buildroot}%{_libdir}/nvidia/wine/ - %endif %ifarch x86_64 aarch64 @@ -306,7 +306,7 @@ install -p -m 0755 -D nvidia.icd %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidi # Binaries mkdir -p %{buildroot}%{_bindir} -install -p -m 0755 nvidia-{debugdump,smi,cuda-mps-control,cuda-mps-server,bug-report.sh,ngx-updater,powerd} %{buildroot}%{_bindir} +install -p -m 0755 nvidia-{debugdump,smi,cuda-mps-control,cuda-mps-server,ngx-updater,powerd} %{buildroot}%{_bindir} # Man pages mkdir -p %{buildroot}%{_mandir}/man1/ @@ -314,7 +314,7 @@ install -p -m 0644 nvidia-{smi,cuda-mps-control}*.gz %{buildroot}%{_mandir}/man1 %if 0%{?fedora} || 0%{?rhel} < 10 # X stuff -install -p -m 0644 -D %{SOURCE10} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf +install -p -m 0644 -D nvidia-drm-outputclass.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf install -p -m 0755 -D nvidia_drv.so %{buildroot}%{_libdir}/xorg/modules/drivers/nvidia_drv.so install -p -m 0755 -D libglxserver_nvidia.so.%{version} %{buildroot}%{_libdir}/xorg/modules/extensions/libglxserver_nvidia.so %endif @@ -358,8 +358,8 @@ install -p -m 0644 -D sandboxutils-filelist.json %{buildroot}%{_datadir}/nvidia/ # dnf4 only for the moment: https://github.com/rpm-software-management/dnf5/issues/1815 %if 0%{?fedora} < 42 || 0%{?rhel} mkdir -p %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d -echo %{real_name} > %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{real_name}.conf -echo %{real_name}-cuda > %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{real_name}-cuda.conf +echo %{name} > %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{name}.conf +echo %{name}-cuda > %{buildroot}%{_sysconfdir}/dnf/plugins/needs-restarting.d/%{name}-cuda.conf %endif %check @@ -369,6 +369,7 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %endif + %ifarch x86_64 aarch64 %post @@ -400,7 +401,6 @@ appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.me %license LICENSE %doc NVIDIA_Changelog README.txt html supported-gpus/supported-gpus.json %dir %{_sysconfdir}/nvidia -%{_bindir}/nvidia-bug-report.sh %{_bindir}/nvidia-ngx-updater %ifarch x86_64 %{_bindir}/nvidia-pcc diff --git a/anda/system/nvidia-580/nvidia-kmod/0001-Enable-atomic-kernel-modesetting-by-default.patch b/anda/system/nvidia-580/nvidia-kmod/0001-Enable-atomic-kernel-modesetting-by-default.patch deleted file mode 100644 index b17015cd83..0000000000 --- a/anda/system/nvidia-580/nvidia-kmod/0001-Enable-atomic-kernel-modesetting-by-default.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 60d1ddc17835226ec67ed1bc1c28524e3bb6e151 Mon Sep 17 00:00:00 2001 -From: Peter Jung -Date: Sun, 20 Apr 2025 18:13:22 +0200 -Subject: [PATCH 1/8] Enable atomic kernel modesetting by default - -This is required for proper functionality under Wayland. fbdev has been default enabled since 570 so that -hunk can be removed from this patch. - -Signed-off-by: Peter Jung ---- - nvidia-drm/nvidia-drm-linux.c | 2 +- - nvidia-drm/nvidia-drm-os-interface.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git an/nvidia-drm/nvidia-drm-linux.c b/nvidia-drm/nvidia-drm-linux.c -index 3cb1815d..209cb469 100644 ---- a/nvidia-drm/nvidia-drm-linux.c -+++ b/nvidia-drm/nvidia-drm-linux.c -@@ -31,7 +31,7 @@ - - MODULE_PARM_DESC( - modeset, -- "Enable atomic kernel modesetting (1 = enable, 0 = disable (default))"); -+ "Enable atomic kernel modesetting (1 = enable (default), 0 = disable)"); - module_param_named(modeset, nv_drm_modeset_module_param, bool, 0400); - - #if defined(NV_DRM_FBDEV_AVAILABLE) -diff --git a/nvidia-drm/nvidia-drm-os-interface.c b/nvidia-drm/nvidia-drm-os-interface.c -index 7617476d..f22afd77 100644 ---- a/nvidia-drm/nvidia-drm-os-interface.c -+++ b/nvidia-drm/nvidia-drm-os-interface.c -@@ -41,7 +41,7 @@ - #include - #endif - --bool nv_drm_modeset_module_param = false; -+bool nv_drm_modeset_module_param = true; - bool nv_drm_fbdev_module_param = true; - - void *nv_drm_calloc(size_t nmemb, size_t size) --- -2.49.0.391.g4bbb303af6 diff --git a/anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec b/anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec index 650734dc34..52073344a2 100644 --- a/anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec +++ b/anda/system/nvidia-580/nvidia-kmod/nvidia-580xx-kmod.spec @@ -6,17 +6,16 @@ Name: %{modulename}-kmod Version: 580.159.03 -Release: 1%{?dist} +Release: 2%{?dist} Summary: NVIDIA display driver kernel module Epoch: 3 License: NVIDIA License URL: http://www.nvidia.com/object/unix.html Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run -Patch0: 0001-Enable-atomic-kernel-modesetting-by-default.patch BuildRequires: kmodtool Requires: nvidia-580xx-kmod-common = %{?epoch:%{epoch}:}%{version} Requires: akmods -Provides: akmod-nvidia-580 = %{evr} +Provides: akmod-nvidia-580 = %{?epoch:%{epoch}:}%{version}-%{release} Provides: nvidia-580-kmod = %{?epoch:%{epoch}:}%{version} Conflicts: dkms-nvidia-580xx Conflicts: nvidia-kmod @@ -33,16 +32,17 @@ The NVidia %{version} display driver kernel module for kernel %{kversion}. # Error out if there was something wrong with kmodtool: %{?kmodtool_check} # Print kmodtool output for debugging purposes: -kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{modulename} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null +kmodtool --target %{_target_cpu} --repo terrapkg.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null -sh %{SOURCE0} -x --target %{real_name}-%{version}-%{_arch} -%setup -T -D -n %{real_name}-%{version}-%{_arch} +sh %{SOURCE0} -x --target %{name}-%{version}-%{_arch} -pushd kernel-open -%autopatch -p1 -popd +%ifarch x86_64 +%setup -T -D -n %{name}-%{version}-%{_arch}/kernel +%elifarch aarch64 +%setup -T -D -n %{name}-%{version}-%{_arch}/kernel +%endif -rm -f */dkms.conf +rm -f dkms.conf for kernel_version in %{?kernel_versions}; do mkdir _kmod_build_${kernel_version%%___*}