aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/nvidia-legacy470-kernel/README9
-rw-r--r--system/nvidia-legacy470-kernel/nvidia-legacy470-kernel.SlackBuild16
-rw-r--r--system/nvidia-legacy470-kernel/patches/kernel-6.13.patch59
-rw-r--r--system/nvidia-legacy470-kernel/patches/kernel-6.14.patch27
-rw-r--r--system/nvidia-legacy470-kernel/patches/nvidia-470xx-fix-linux-6.13.patch59
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
+