diff --git a/kernel/drivers/module-nvidia-current/actions.py b/kernel/drivers/module-nvidia-current/actions.py index bb9d7c9553..56c9cad1e3 100644 --- a/kernel/drivers/module-nvidia-current/actions.py +++ b/kernel/drivers/module-nvidia-current/actions.py @@ -25,7 +25,10 @@ def setup(): shelltools.system("sh NVIDIA-Linux-%s-%s.run -x --target tmp" % (arch, get.srcVERSION())) shelltools.move("tmp/*", ".") - + + shelltools.system("patch -p1 < NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch") + shelltools.system("patch -p1 < NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch") + # Our libc is TLS enabled so use TLS library #shelltools.unlink("*-tls.so*") #shelltools.move("tls/*", ".") @@ -86,7 +89,8 @@ def install(): pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir) pisitools.dolib("libGL.so.%s" % version, libdir) - pisitools.dolib("libEGL.so.1", nvlibdir) + pisitools.dolib("libEGL.so.1.1.0", nvlibdir) + pisitools.dosym("libEGL.so.1.1.0", "%s/libEGL.so.1" % nvlibdir) pisitools.dolib("libEGL_nvidia.so.%s" % version, libdir) pisitools.dolib("libGLESv1_CM_nvidia.so.%s" % version, libdir) pisitools.dolib("libGLESv2_nvidia.so.%s" % version, libdir) diff --git a/kernel/drivers/module-nvidia-current/files/NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch b/kernel/drivers/module-nvidia-current/files/NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch new file mode 100644 index 0000000000..08bf281614 --- /dev/null +++ b/kernel/drivers/module-nvidia-current/files/NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch @@ -0,0 +1,50 @@ +diff -Nurp NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-connector.c NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-connector.c +--- NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-connector.c 2018-08-22 03:55:29.000000000 +0300 ++++ NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-connector.c 2018-11-09 19:46:54.625801192 +0200 +@@ -30,6 +30,8 @@ + #include "nvidia-drm-utils.h" + #include "nvidia-drm-encoder.h" + ++#include ++ + #include + + #include +@@ -226,8 +228,13 @@ static int nv_drm_connector_get_modes(st + + + if (nv_connector->edid != NULL) { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) + drm_mode_connector_update_edid_property( + connector, nv_connector->edid); ++#else ++ drm_connector_update_edid_property( ++ connector, nv_connector->edid); ++#endif + } + + while (1) { +diff -Nurp NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-encoder.c NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-encoder.c +--- NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-encoder.c 2018-08-22 03:55:29.000000000 +0300 ++++ NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-encoder.c 2018-11-09 19:49:34.863861811 +0200 +@@ -30,6 +30,8 @@ + #include "nvidia-drm-connector.h" + #include "nvidia-drm-crtc.h" + ++#include ++ + #include + + #include +@@ -216,7 +218,11 @@ nv_drm_add_encoder(struct drm_device *de + + /* Attach encoder and connector */ + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) + ret = drm_mode_connector_attach_encoder(connector, encoder); ++#else ++ ret = drm_connector_attach_encoder(connector, encoder); ++#endif + + if (ret != 0) { + NV_DRM_DEV_LOG_ERR( diff --git a/kernel/drivers/module-nvidia-current/files/NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch b/kernel/drivers/module-nvidia-current/files/NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch new file mode 100644 index 0000000000..7548fec4fa --- /dev/null +++ b/kernel/drivers/module-nvidia-current/files/NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch @@ -0,0 +1,43 @@ +--- a/kernel/nvidia/os-interface.c ++++ b/kernel/nvidia/os-interface.c +@@ -1670,7 +1670,7 @@ + + struct nv_ipmi_softc + { +- ipmi_user_t p_user; // ptr to ipmi_msghandler user structure ++ struct ipmi_user *p_user; + spinlock_t msg_lock; + struct list_head msgs; + NvU32 seqNum; //request sequence number +@@ -1679,7 +1679,7 @@ + static inline int + nv_ipmi_set_my_address + ( +- ipmi_user_t user, ++ struct ipmi_user *user, + unsigned char address + ) + { +--- a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c ++++ b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c +@@ -20,6 +20,8 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include ++ + #include "nvidia-drm-conftest.h" + + #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) +@@ -345,7 +347,11 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma, + + page_offset = vmf->pgoff - drm_vma_node_start(&gem->vma_node); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) + ret = vm_insert_pfn(vma, address, pfn + page_offset); ++#else ++ ret = vmf_insert_pfn(vma, address, pfn + page_offset); ++#endif + + switch (ret) { + case 0: diff --git a/kernel/drivers/module-nvidia-current/pspec.xml b/kernel/drivers/module-nvidia-current/pspec.xml index a3b9f1f7cf..d277ea4c53 100644 --- a/kernel/drivers/module-nvidia-current/pspec.xml +++ b/kernel/drivers/module-nvidia-current/pspec.xml @@ -11,8 +11,12 @@ NVIDIA NVIDIA drivers for GeForce 6xxx and newer GPUs NVIDIA graphics drivers provide optimized 2D/3D performance. - http://download.nvidia.com/XFree86/Linux-x86/390.25/NVIDIA-Linux-x86-390.25.run - http://download.nvidia.com/XFree86/Linux-x86_64/390.25/NVIDIA-Linux-x86_64-390.25.run + http://download.nvidia.com/XFree86/Linux-x86/390.87/NVIDIA-Linux-x86-390.87.run + http://download.nvidia.com/XFree86/Linux-x86_64/390.87/NVIDIA-Linux-x86_64-390.87.run + + NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch + NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch + kernel-module-headers libX11-devel @@ -162,7 +166,7 @@ 2019-01-20 - 390.25 + 390.87 Rebuild for new kernel Mustafa Cinasal muscnsl@gmail.com