diff options
5 files changed, 165 insertions, 5 deletions
diff --git a/system/nvidia-legacy470-kernel/README b/system/nvidia-legacy470-kernel/README index 3f41dfd072..4a70d6d173 100644 --- a/system/nvidia-legacy470-kernel/README +++ b/system/nvidia-legacy470-kernel/README @@ -14,7 +14,10 @@ xorg.conf. The xf86-video-nouveau-blacklist package from /extra is required. -The Nvidia 470.xx series will be supported through December 2024. +The Nvidia 470.xx series is now EOL as of December 2024. -NOTE: To build in -current with gcc14 against the new 6.12.x -kernel, pass "CURRENT=yes" to the script. +NOTE: To build in -current against the 6.12.x kernel, pass +"CURRENT=yes" to the script. + +To build against the 6.13.x or 6.14.x kernels in /testing, pass +"KERNEL614=yes" to the script (forces CURRENT=yes). diff --git a/system/nvidia-legacy470-kernel/nvidia-legacy470-kernel.SlackBuild b/system/nvidia-legacy470-kernel/nvidia-legacy470-kernel.SlackBuild index 3748e10324..a9ab3bfaab 100644 --- a/system/nvidia-legacy470-kernel/nvidia-legacy470-kernel.SlackBuild +++ b/system/nvidia-legacy470-kernel/nvidia-legacy470-kernel.SlackBuild @@ -32,7 +32,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=nvidia-legacy470-kernel VERSION=${VERSION:-470.256.02} -BUILD=${BUILD:-3} +BUILD=${BUILD:-4} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -89,13 +89,25 @@ find -L . \ unset ARCH +CURRENT=${CURRENT:-no} +if [ "{KERNEL614:-no}" = "yes" ]; then +# Force CURRENT to yes + CURRENT=yes +fi + # Patches for -current: -if [ "${CURRENT:-no}" = "yes" ]; then +if [ "${CURRENT}" = "yes" ]; then patch -p1 < $CWD/patches/nvidia-legacy470-gcc14.patch patch -p1 < $CWD/patches/nvidia-legacy470-iosys_map.patch patch -p1 < $CWD/patches/nvidia-legacy470-follow_pfn.patch patch -p1 < $CWD/patches/nvidia-470xx-fix-linux-6.12.patch fi +# Patch for 6.13.x: +if [ "${KERNEL614}" = "yes" ]; then + patch -p1 < $CWD/patches/nvidia-470xx-fix-linux-6.13.patch +# Patch for 6.14-rc: + patch -p1 < $CWD/patches/kernel-6.14.patch +fi # CC=${CC:-gcc} suppresses an otherwise harmless "compiler mismatch" # message. If you custom-build your kernel with clang, diff --git a/system/nvidia-legacy470-kernel/patches/kernel-6.13.patch b/system/nvidia-legacy470-kernel/patches/kernel-6.13.patch new file mode 100644 index 0000000000..63b2eb8ab8 --- /dev/null +++ b/system/nvidia-legacy470-kernel/patches/kernel-6.13.patch @@ -0,0 +1,59 @@ +From 9f91b171f680648647580c163bbc9cc1641e3920 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com> +Date: Sat, 16 Nov 2024 22:45:21 +0000 +Subject: [PATCH] Tentative fix for NVIDIA 470.256.02 driver for Linux 6.13-rc1 + +--- + nvidia-modeset/nvidia-modeset.Kbuild | 8 +++++--- + nvidia/nvidia.Kbuild | 8 +++++--- + 2 files changed, 10 insertions(+), 6 deletions(-) + +diff --git a/nvidia-modeset/nvidia-modeset.Kbuild b/nvidia-modeset/nvidia-modeset.Kbuild +index a7d84e0..d417c28 100644 +--- a/nvidia-modeset/nvidia-modeset.Kbuild ++++ b/nvidia-modeset/nvidia-modeset.Kbuild +@@ -40,13 +40,15 @@ NV_KERNEL_MODULE_TARGETS += $(NVIDIA_MODESET_KO) + NVIDIA_MODESET_BINARY_OBJECT := $(src)/nvidia-modeset/nv-modeset-kernel.o_binary + NVIDIA_MODESET_BINARY_OBJECT_O := nvidia-modeset/nv-modeset-kernel.o + +-quiet_cmd_symlink = SYMLINK $@ +-cmd_symlink = ln -sf $< $@ ++# Rel. commit 80f289101690 "kbuild: change working directory to external module directory with M=" (Masahiro Yamada, 10 Nov 2024) ++# Ensure `$<` is absolute, since the link target is resolved relative to its path, not from where `ln` is run from. ++quiet_cmd_symlinkabs = SYMLINK $@ ++ cmd_symlinkabs = ln -sf $(abspath $<) $@ + + targets += $(NVIDIA_MODESET_BINARY_OBJECT_O) + + $(obj)/$(NVIDIA_MODESET_BINARY_OBJECT_O): $(NVIDIA_MODESET_BINARY_OBJECT) FORCE +- $(call if_changed,symlink) ++ $(call if_changed,symlinkabs) + + nvidia-modeset-y += $(NVIDIA_MODESET_BINARY_OBJECT_O) + +diff --git a/nvidia/nvidia.Kbuild b/nvidia/nvidia.Kbuild +index 31a6f92..62689f6 100644 +--- a/nvidia/nvidia.Kbuild ++++ b/nvidia/nvidia.Kbuild +@@ -40,13 +40,15 @@ NVIDIA_KO = nvidia/nvidia.ko + NVIDIA_BINARY_OBJECT := $(src)/nvidia/nv-kernel.o_binary + NVIDIA_BINARY_OBJECT_O := nvidia/nv-kernel.o + +-quiet_cmd_symlink = SYMLINK $@ +- cmd_symlink = ln -sf $< $@ ++# Rel. commit 80f289101690 "kbuild: change working directory to external module directory with M=" (Masahiro Yamada, 10 Nov 2024) ++# Ensure `$<` is absolute, since the link target is resolved relative to its path, not from where `ln` is run from. ++quiet_cmd_symlinkabs = SYMLINK $@ ++ cmd_symlinkabs = ln -sf $(abspath $<) $@ + + targets += $(NVIDIA_BINARY_OBJECT_O) + + $(obj)/$(NVIDIA_BINARY_OBJECT_O): $(NVIDIA_BINARY_OBJECT) FORCE +- $(call if_changed,symlink) ++ $(call if_changed,symlinkabs) + + nvidia-y += $(NVIDIA_BINARY_OBJECT_O) + +-- +2.47.0 + diff --git a/system/nvidia-legacy470-kernel/patches/kernel-6.14.patch b/system/nvidia-legacy470-kernel/patches/kernel-6.14.patch new file mode 100644 index 0000000000..2aae4aa8d7 --- /dev/null +++ b/system/nvidia-legacy470-kernel/patches/kernel-6.14.patch @@ -0,0 +1,27 @@ +From bee3ff1153f7b42491d2a0552d6f9a66a307ec1a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com> +Date: Sun, 15 Dec 2024 17:56:03 +0000 +Subject: [PATCH] Tentative fix for NVIDIA 470.256.02 driver for Linux 6.14-rc1 + +--- + nvidia-drm/nvidia-drm-drv.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/nvidia-drm/nvidia-drm-drv.c b/nvidia-drm/nvidia-drm-drv.c +index 0b1181d..b50b17a 100644 +--- a/nvidia-drm/nvidia-drm-drv.c ++++ b/nvidia-drm/nvidia-drm-drv.c +@@ -882,7 +882,10 @@ static struct drm_driver nv_drm_driver = { + .name = "nvidia-drm", + + .desc = "NVIDIA DRM driver", ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 14, 0) ++ // Rel. commit. "drm: remove driver date from struct drm_driver and all drivers" (Jani Nikula, 4 Dec 2024) + .date = "20160202", ++#endif + + #if defined(NV_DRM_DRIVER_HAS_DEVICE_LIST) + .device_list = LIST_HEAD_INIT(nv_drm_driver.device_list), +-- +2.48.1 + diff --git a/system/nvidia-legacy470-kernel/patches/nvidia-470xx-fix-linux-6.13.patch b/system/nvidia-legacy470-kernel/patches/nvidia-470xx-fix-linux-6.13.patch new file mode 100644 index 0000000000..63b2eb8ab8 --- /dev/null +++ b/system/nvidia-legacy470-kernel/patches/nvidia-470xx-fix-linux-6.13.patch @@ -0,0 +1,59 @@ +From 9f91b171f680648647580c163bbc9cc1641e3920 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com> +Date: Sat, 16 Nov 2024 22:45:21 +0000 +Subject: [PATCH] Tentative fix for NVIDIA 470.256.02 driver for Linux 6.13-rc1 + +--- + nvidia-modeset/nvidia-modeset.Kbuild | 8 +++++--- + nvidia/nvidia.Kbuild | 8 +++++--- + 2 files changed, 10 insertions(+), 6 deletions(-) + +diff --git a/nvidia-modeset/nvidia-modeset.Kbuild b/nvidia-modeset/nvidia-modeset.Kbuild +index a7d84e0..d417c28 100644 +--- a/nvidia-modeset/nvidia-modeset.Kbuild ++++ b/nvidia-modeset/nvidia-modeset.Kbuild +@@ -40,13 +40,15 @@ NV_KERNEL_MODULE_TARGETS += $(NVIDIA_MODESET_KO) + NVIDIA_MODESET_BINARY_OBJECT := $(src)/nvidia-modeset/nv-modeset-kernel.o_binary + NVIDIA_MODESET_BINARY_OBJECT_O := nvidia-modeset/nv-modeset-kernel.o + +-quiet_cmd_symlink = SYMLINK $@ +-cmd_symlink = ln -sf $< $@ ++# Rel. commit 80f289101690 "kbuild: change working directory to external module directory with M=" (Masahiro Yamada, 10 Nov 2024) ++# Ensure `$<` is absolute, since the link target is resolved relative to its path, not from where `ln` is run from. ++quiet_cmd_symlinkabs = SYMLINK $@ ++ cmd_symlinkabs = ln -sf $(abspath $<) $@ + + targets += $(NVIDIA_MODESET_BINARY_OBJECT_O) + + $(obj)/$(NVIDIA_MODESET_BINARY_OBJECT_O): $(NVIDIA_MODESET_BINARY_OBJECT) FORCE +- $(call if_changed,symlink) ++ $(call if_changed,symlinkabs) + + nvidia-modeset-y += $(NVIDIA_MODESET_BINARY_OBJECT_O) + +diff --git a/nvidia/nvidia.Kbuild b/nvidia/nvidia.Kbuild +index 31a6f92..62689f6 100644 +--- a/nvidia/nvidia.Kbuild ++++ b/nvidia/nvidia.Kbuild +@@ -40,13 +40,15 @@ NVIDIA_KO = nvidia/nvidia.ko + NVIDIA_BINARY_OBJECT := $(src)/nvidia/nv-kernel.o_binary + NVIDIA_BINARY_OBJECT_O := nvidia/nv-kernel.o + +-quiet_cmd_symlink = SYMLINK $@ +- cmd_symlink = ln -sf $< $@ ++# Rel. commit 80f289101690 "kbuild: change working directory to external module directory with M=" (Masahiro Yamada, 10 Nov 2024) ++# Ensure `$<` is absolute, since the link target is resolved relative to its path, not from where `ln` is run from. ++quiet_cmd_symlinkabs = SYMLINK $@ ++ cmd_symlinkabs = ln -sf $(abspath $<) $@ + + targets += $(NVIDIA_BINARY_OBJECT_O) + + $(obj)/$(NVIDIA_BINARY_OBJECT_O): $(NVIDIA_BINARY_OBJECT) FORCE +- $(call if_changed,symlink) ++ $(call if_changed,symlinkabs) + + nvidia-y += $(NVIDIA_BINARY_OBJECT_O) + +-- +2.47.0 + |