Merge pull request #7320 from IdrisKalp/master

nvidia modules
This commit is contained in:
Idris Kalp
2019-12-28 22:01:54 +03:00
committed by GitHub
69 changed files with 2408 additions and 99 deletions
+181 -80
View File
@@ -22,19 +22,21 @@ nvlibdir = "%s/%s" % (libdir, driver_dir_name)
xorglibdir= "%s/xorg" % libdir
def setup():
shelltools.system("sh NVIDIA-Linux-%s-%s.run -x --target tmp"
% (arch, get.srcVERSION()))
shelltools.system("sh NVIDIA-Linux-x86_64-%s.run -x --target tmp"
% 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")
#shelltools.system("patch -p1 < header-fix.patch")
# Our libc is TLS enabled so use TLS library
#shelltools.unlink("*-tls.so*")
#shelltools.move("tls/*", ".")
# xorg-server provides libwfb.so
shelltools.unlink("libnvidia-wfb.so.*")
#shelltools.unlink("libnvidia-wfb.so.*")
shelltools.echo("ld.so.conf", nvlibdir)
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
@@ -46,11 +48,8 @@ def build():
shelltools.export("SYSSRC", "/lib/modules/%s/build" % KDIR)
shelltools.cd("kernel")
autotools.make("module")
autotools.make("module")
#shelltools.cd("uvm")
#autotools.make("module")
def install():
@@ -58,6 +57,9 @@ def install():
# Kernel driver
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-drm.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-uvm.ko")
@@ -84,89 +86,188 @@ def install():
### Libraries
# OpenGl library
pisitools.dolib("libGL.so.%s" % version, nvlibdir)
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.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)
# OpenCL
pisitools.insinto("/etc/OpenCL/vendors", "nvidia.icd")
pisitools.dolib("libnvidia-compiler.so.%s" % version, libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
# 32-bit libraries
if get.buildTYPE() == 'emul32':
pisitools.dolib("32/libGL.so.1.7.0", nvlibdir)
pisitools.dosym("libGL.so.1.7.0", "%s/libGL.so.1.2.0" % nvlibdir)
pisitools.dosym("libGL.so.1.7.0", "%s/libGL.so.1" % nvlibdir)
pisitools.dosym("libGL.so.1.7.0", "%s/libGL.so" % nvlibdir)
pisitools.dolib("32/libEGL.so.1.1.0", nvlibdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so.1.1.0" % libdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so.1.0.0" % nvlibdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so.1" % nvlibdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so" % nvlibdir)
pisitools.dolib("32/libEGL_nvidia.so.%s" % version, libdir)
pisitools.dosym("libEGL_nvidia.so.%s" % version, "%s/libEGL_nvidia.so.1" %libdir)
pisitools.dosym("libEGL_nvidia.so.%s" % version, "%s/libEGL_nvidia.so" %libdir)
pisitools.dolib("32/libGLESv1_CM_nvidia.so.%s" % version, libdir)
pisitools.dolib("32/libGLESv2_nvidia.so.%s" % version, libdir)
pisitools.dolib("32/libnvidia-compiler.so.%s" % version, libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so" % libdir)
#pisitools.dolib("32/libOpenCL.so.1.0.0", libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so" % libdir)
pisitools.dolib("32/libnvidia-opencl.so.%s" % version, libdir)
pisitools.dosym("libnvidia-opencl.so.%s" % version, "%s/libnvidia-opencl.so.1" % libdir)
pisitools.dosym("libnvidia-opencl.so.1", "%s/libnvidia-opencl.so" % libdir)
pisitools.dolib("32/libcuda.so.%s" % version, libdir)
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
pisitools.dolib("32/libnvcuvid.so.%s" % version, libdir)
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
pisitools.dolib("32/libnvidia-ml.so.%s" % version, libdir)
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
for lib in ("eglcore", "encode", "fatbinaryloader", "fbc", "glcore", "glsi", \
"glvkspirv", "ifr", "opticalflow", "ptxjitcompiler", "tls", "allocator" ):
pisitools.dolib("32/libnvidia-%s.so.%s" % (lib, version), libdir)
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so.1" %(libdir, lib))
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so" %(libdir, lib))
pisitools.dolib("32/libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.so" % libdir)
pisitools.dolib("libOpenCL.so.1.0.0", libdir)
pisitools.dosym("libOpenCL.so.1.0.0", "%s/libOpenCL.so.1.0" % libdir)
pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
pisitools.dolib("libnvidia-opencl.so.%s" % version, libdir)
pisitools.dosym("libnvidia-opencl.so.%s" % version, "%s/libnvidia-opencl.so.1" % libdir)
pisitools.dosym("libnvidia-opencl.so.1", "%s/libnvidia-opencl.so" % libdir)
pisitools.dolib("32/libGLX_nvidia.so.%s" % version, libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so.0" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_nvidia.so.0" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_nvidia.so" % libdir)
pisitools.dolib("32/libGLdispatch.so.0", libdir)
pisitools.dosym("libGLdispatch.so.0", "%s/ibGLdispatch.so" % libdir)
pisitools.dolib("32/libGLX.so.0", libdir)
pisitools.dosym("libGLX.so.0", "%s/libGLX.so" % libdir)
pisitools.dolib("32/libOpenGL.so.0", libdir)
pisitools.dosym("libOpenGL.so.0", "%s/libOpenGL.so" % libdir)
else:
# OpenGl library
pisitools.dolib("libGL.so.1.7.0", nvlibdir)
pisitools.dosym("libGL.so.1.7.0", "%s/libGL.so.1.2.0" % nvlibdir)
pisitools.dosym("libGL.so.1.7.0", "%s/libGL.so.1" % nvlibdir)
pisitools.dosym("libGL.so.1.7.0", "%s/libGL.so" % nvlibdir)
pisitools.dolib("libEGL.so.1.1.0", nvlibdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so.1.1.0" % libdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so.1.0.0" % nvlibdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so.1" % nvlibdir)
#pisitools.dosym("%s/libEGL.so.1.1.0" % nvlibdir, "%s/libEGL.so" % nvlibdir)
pisitools.dolib("libEGL_nvidia.so.%s" % version, libdir)
pisitools.dolib("libEGL.so.%s" % version, libdir)
pisitools.dolib("libGLESv1_CM_nvidia.so.%s" % version, libdir)
pisitools.dolib("libGLESv2_nvidia.so.%s" % version, libdir)
pisitools.dolib("libGLdispatch.so.0", libdir)
pisitools.dosym("libGLdispatch.so.0", "%s/libGLdispatch.so" % libdir)
pisitools.dolib("libGLX.so.0", libdir)
pisitools.dosym("libGLX.so.0", "%s/libGLX.so" % libdir)
pisitools.dolib("libOpenGL.so.0", libdir)
pisitools.dosym("libOpenGL.so.0", "%s/libOpenGL.so" % libdir)
# OpenCL
pisitools.insinto("/etc/OpenCL/vendors", "nvidia.icd")
pisitools.dolib("libnvidia-compiler.so.%s" % version, libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so" % libdir)
#pisitools.dolib("libOpenCL.so.1.0.0", libdir)
#pisitools.dosym("libOpenCL.so.1.0.0", "%s/libOpenCL.so.1.0" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so" % libdir)
pisitools.dolib("libnvidia-opencl.so.%s" % version, libdir)
pisitools.dosym("libnvidia-opencl.so.%s" % version, "%s/libnvidia-opencl.so.1" % libdir)
pisitools.dosym("libnvidia-opencl.so.1", "%s/libnvidia-opencl.so" % libdir)
# CUDA
pisitools.dolib("libcuda.so.%s" % version, libdir)
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
pisitools.dolib("libnvcuvid.so.%s" % version, libdir)
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
# NVML
# Provides programmatic access to static information and monitoring
# data for NVIDIA GPUs, as well as limited managment capabilities
pisitools.dolib("libnvidia-ml.so.%s" % version, libdir)
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
pisitools.dolib("libnvidia-cfg.so.%s" % version, libdir)
pisitools.dosym("libnvidia-cfg.so.%s" % version, "%s/libnvidia-cfg.so.1" % libdir)
pisitools.dolib("libcuda.so.%s" % version, libdir)
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
pisitools.dolib("libnvcuvid.so.%s" % version, libdir)
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
# NVML
# Provides programmatic access to static information and monitoring
# data for NVIDIA GPUs, as well as limited managment capabilities
pisitools.dolib("libnvidia-ml.so.%s" % version, libdir)
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
pisitools.dolib("libnvidia-cfg.so.%s" % version, libdir)
pisitools.dosym("libnvidia-cfg.so.%s" % version, "%s/libnvidia-cfg.so.1" % libdir)
pisitools.dolib("libnvoptix.so.%s" % version, libdir)
pisitools.dosym("libnvoptix.so.%s" % version, "%s/libnvoptix.so.1" % libdir)
pisitools.dosym("libnvoptix.so.%s" % version, "%s/libnvoptix.so" % libdir)
pisitools.dolib("libnvidia-egl-wayland.so.1.1.4", libdir)
pisitools.dosym("libnvidia-egl-wayland.so.1.1.4", "%s/libnvidia-egl-wayland.so.1" % libdir)
pisitools.dosym("libnvidia-egl-wayland.so.1.1.4", "%s/libnvidia-egl-wayland.so" % libdir)
# OpenGL core library and others
for lib in ("allocator", "cbl", "eglcore", "encode", "fatbinaryloader", "fbc", "glcore", "glsi", \
"glvkspirv", "ifr", "opticalflow", "ptxjitcompiler", "rtcore", "tls" ):
pisitools.dolib("libnvidia-%s.so.%s" % (lib, version), libdir)
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so.1" %(libdir, lib))
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so" %(libdir, lib))
# OpenGL core library and others
for lib in ("glcore", "tls", "encode", "fbc", "glsi", "ifr", "eglcore"):
pisitools.dolib("libnvidia-%s.so.%s" % (lib, version), libdir)
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so.1" %(libdir, lib))
# VDPAU driver
pisitools.dolib("libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.so" % libdir)
# VDPAU driver
pisitools.dolib("libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.so" % libdir)
# nvidia-tls library
pisitools.dolib("libnvidia-tls.so.%s" % version, libdir)
pisitools.dolib("tls/libnvidia-tls.so.%s" % version, "%s/tls" % libdir)
# X modules
pisitools.dolib("nvidia_drv.so", "%s/modules/drivers" % xorglibdir)
pisitools.dolib("libglx.so.%s" % version, "%s/modules/extensions" % xorglibdir)
pisitools.dosym("libglx.so.%s" % version, "%s/modules/extensions/libglx.so.1" % xorglibdir)
pisitools.dolib("libGLX_nvidia.so.%s" % version, libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so.0" % libdir)
# PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA)
pisitools.dolib("libnvidia-ptxjitcompiler.so.%s" % version, libdir)
# Fat (multiarchitecture) binary loader
pisitools.dolib("libnvidia-fatbinaryloader.so.%s" % version, libdir)
pisitools.insinto("/usr/share/X11/xorg.conf.d", "nvidia-drm-outputclass.conf")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-rc")
# X modules
pisitools.dolib("nvidia_drv.so", "%s/modules/drivers" % xorglibdir)
pisitools.dolib("libglxserver_nvidia.so.%s" % version, "%s/xorg/extensions" % nvlibdir)
pisitools.dosym("libglxserver_nvidia.so.%s" % version, "%s/xorg/extensions/libglx.so.1" % nvlibdir)
pisitools.dosym("libglxserver_nvidia.so.%s" % version, "%s/xorg/extensions/libglx.so" % nvlibdir)
pisitools.dolib("libglxserver_nvidia.so.%s" % version, "%s/modules/extensions" % xorglibdir)
pisitools.dosym("libglxserver_nvidia.so.%s" % version, "%s/modules/extensions/libglx.so.1" % xorglibdir)
# Vulkan driver
pisitools.dolib("libGLX_nvidia.so.%s" % version, libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so.0" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_nvidia.so.0" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_nvidia.so" % libdir)
pisitools.insinto("/etc/vulkan/icd.d", "nvidia_icd.json")
pisitools.insinto("/etc/vulkan/icd.d", "nvidia_layers.json")
pisitools.insinto("/usr/share/glvnd/egl_vendor.d", "10_nvidia.json")
#pisitools.insinto("/usr/share/X11/xorg.conf.d", "nvidia-drm-outputclass.conf")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-rc")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-key-documentation")
pisitools.insinto("/usr/share/pixmaps", "nvidia-settings.png")
pisitools.insinto("/usr/share/pixmaps", "nvidia-settings.png")
pisitools.dolib("libnvidia-gtk2.so.%s" % version, libdir)
pisitools.dolib("libnvidia-gtk3.so.%s" % version, libdir)
pisitools.dolib("libnvidia-gtk2.so.%s" % version, libdir)
pisitools.dolib("libnvidia-gtk3.so.%s" % version, libdir)
# Exit time for emul32 build
if get.buildTYPE() == 'emul32':
pisitools.insinto(datadir, "ld.so.conf", "32bit-ld.so.conf")
return
#if get.buildTYPE() == 'emul32':
#pisitools.insinto(datadir, "ld.so.conf", "32bit-ld.so.conf")
#return
pisitools.insinto(datadir, "ld.so.conf")
pisitools.insinto(datadir, "XvMCConfig")
View File
View File
+12 -6
View File
@@ -11,14 +11,13 @@
<License>NVIDIA</License>
<Summary>NVIDIA drivers for GeForce 6xxx and newer GPUs</Summary>
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
<Archive sha1sum="9f58a26a88d9ce400b47566490b089ce2e950e5d" type="binary">http://download.nvidia.com/XFree86/Linux-x86/390.116/NVIDIA-Linux-x86-390.116.run</Archive>
<Archive sha1sum="d2beae835642513e1a77e1eef0a60dd21db6c81f" type="binary">http://download.nvidia.com/XFree86/Linux-x86_64/390.116/NVIDIA-Linux-x86_64-390.116.run</Archive>
<AdditionalFiles>
<Archive sha1sum="fb412c254b9a9f42b7837691368aa883df7c23f1" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/440.36/NVIDIA-Linux-x86_64-440.44.run</Archive>
<!-- <AdditionalFiles>
<AdditionalFile target="NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch">NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch</AdditionalFile>
<AdditionalFile target="NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch">NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch</AdditionalFile>
</AdditionalFiles>
</AdditionalFiles>-->
<BuildDependencies>
<Dependency version="4.19.56">kernel-module-headers</Dependency>
<Dependency version="5.4.6">kernel-module-headers</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>gtk2-devel</Dependency>
<Dependency>gtk3-devel</Dependency>
@@ -30,7 +29,7 @@
<IsA>driver</IsA>
<Summary>Kernel module for current NVIDIA graphics driver releases</Summary>
<RuntimeDependencies>
<Dependency version="4.19.56">kernel</Dependency>
<Dependency version="5.4.6">kernel</Dependency>
<!-- <Dependency release="current">module-nvidia-current-userspace</Dependency> -->
</RuntimeDependencies>
<Files>
@@ -164,6 +163,13 @@
</Package>
<History>
<Update release="27">
<Date>2019-12-28</Date>
<Version>440.44</Version>
<Comment>Version bump</Comment>
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="26">
<Date>2019-08-14</Date>
<Version>390.116</Version>
View File
View File
+78
View File
@@ -0,0 +1,78 @@
--- kernel/os-interface.c 2017-09-14 23:51:09.000000000 +0300
+++ kernel/os-interface.c 2019-11-05 19:23:48.332089532 +0300
@@ -24,6 +24,7 @@
#include "os-interface.h"
#include "nv-linux.h"
+#include <linux/time.h>
void NV_API_CALL os_disable_preemption(void)
{
--- kernel/os-interface.c 2019-11-05 19:34:40.868104129 +0300
+++ kernel/os-interface.c 2019-11-05 19:38:43.529109557 +0300
@@ -26,6 +26,14 @@
#include "nv-linux.h"
#include <linux/time.h>
+void do_gettimeofday(struct timeval *tv)
+{
+struct timespec64 ts;
+ktime_get_real_ts64(&ts);
+tv->tv_sec = ts.tv_sec;
+tv->tv_usec = ts.tv_nsec;
+}
+
void NV_API_CALL os_disable_preemption(void)
{
#if defined(preempt_disable)
diff --git kernel/nv-linux.h kernel/nv-linux.h
index 4043bf1..62f0874 100644
--- kernel/nv-linux.h
+++ kernel/nv-linux.h
@@ -877,12 +877,21 @@ extern void *nv_stack_t_cache;
__ret; \
})
#elif (NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT == 3)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
#define NV_SMP_CALL_FUNCTION(func, info, wait) \
({ \
int __ret = smp_call_function(func, info, wait); \
__ret; \
})
#else
+#define NV_SMP_CALL_FUNCTION(func, info, wait) \
+ ({ \
+ int __ret = 0; \
+ smp_call_function(func, info, wait); \
+ __ret; \
+ })
+#endif
+#else
#error "NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT value unrecognized!"
#endif
#elif defined(CONFIG_SMP)
@@ -897,12 +906,21 @@ extern void *nv_stack_t_cache;
__ret; \
})
#elif (NV_ON_EACH_CPU_ARGUMENT_COUNT == 3)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
#define NV_ON_EACH_CPU(func, info, wait) \
({ \
int __ret = on_each_cpu(func, info, wait); \
__ret; \
})
#else
+#define NV_ON_EACH_CPU(func, info, wait) \
+ ({ \
+ int __ret = 0; \
+ on_each_cpu(func, info, wait); \
+ __ret; \
+ })
+#endif
+#else
#error "NV_ON_EACH_CPU_ARGUMENT_COUNT value unrecognized!"
#endif
#elif defined(CONFIG_SMP)
View File
+10 -2
View File
@@ -17,9 +17,10 @@
<AdditionalFiles>
<AdditionalFile target="kernel-4.14.patch">kernel-4.14.patch</AdditionalFile>
<AdditionalFile target="nvidia-304.137-bionic-18.04.patch">nvidia-304.137-bionic-18.04.patch</AdditionalFile>
<AdditionalFile target="linux-5.3.patch">linux-5.3.patch</AdditionalFile>
</AdditionalFiles>
<BuildDependencies>
<Dependency version="4.19.56">kernel-module-headers</Dependency>
<Dependency version="5.4.6">kernel-module-headers</Dependency>
</BuildDependencies>
</Source>
@@ -27,7 +28,7 @@
<Name>module-nvidia304</Name>
<Summary>Kernel module for NVIDIA driver 304.xx releases</Summary>
<RuntimeDependencies>2
<Dependency version="4.19.56">kernel</Dependency>
<Dependency version="5.4.6">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -67,6 +68,13 @@
</Package>
<History>
<Update release="28">
<Date>2019-12-28</Date>
<Version>304.137</Version>
<Comment>Rebuild for new kernel.</Comment>
<Name>Idris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="27">
<Date>2019-08-14</Date>
<Version>304.137</Version>
+207
View File
@@ -0,0 +1,207 @@
#
# This Makefile was automatically generated; do not edit.
# Generated on 'swio-display-x64-rhel04-13' on Thu May 24 21:16:20 PDT 2018.
#
#
# KBUILD Makefile for the NVIDIA Linux kernel module.
#
# The motivation for replacing the original Makefile is the hope that this
# version will simplify the build and installation process. In the past,
# many architectural and cosmetic changes to the Linux kernel have made it
# difficult to maintain compatibility or required duplication of logic.
#
# Linux 2.6 introduces numerous such changes, many of which impact modules.
# Relying on KBUILD, some aspects of the build system otherwise difficult
# to support (for example, module versioning) are abstracted away and dealt
# with elsewhere, making life significantly easier here.
#
# The new approach currently has its own share of problems, some of which
# are architectural difficulties with KBUILD, others minor annoyances. For
# this reason, an improved version of the NVIDIA Makefile is available to
# those experiencing difficulties.
#
# kbuild Makefile originally developed by:
#
# Alistair J Strachan (alistair@devzero.co.uk) (first pass, enhancements)
# Christian Zander (zander@mail.minion.de) (enhancements)
#
#
# The NVIDIA kernel module base name.
#
MODULE_BASENAME := nvidia
#
# This suffix is used to construct the name of the NVIDIA kernel module
# in case of multiple kernel module builds. This suffix can either take the
# numeric value 0-7 or the string "frontend". For normal NVIDIA kernel module
# builds, this variable is empty and hence the module name is identical to
# the base names.
#
NV_MODULE_SUFFIX ?=
#
# The NVIDIA kernel module name and static file names. In case of multiple
# NVIDIA kernel module builds, $(NV_MODULE_SUFFIX) is appended to the
# module basename to construct the module name of the concerned module.
# KBUILD will go ahead and append ".o" or ".ko" to form the module file name.
#
ifeq ($(NV_MODULE_SUFFIX),frontend)
MODULE_NAME := $(MODULE_BASENAME)-$(NV_MODULE_SUFFIX)
else
MODULE_NAME := $(MODULE_BASENAME)$(NV_MODULE_SUFFIX)
endif
VERSION_HEADER := nv_compiler.h
#
# List of object files to link into NVIDIA kernel module; this list
# is assigned depending on the value of $(NV_MODULE_SUFFIX) being passed.
# Make sure KBUILD understands that we want a module.
#
CORE_OBJS := nv-kernel.o
ifdef NV_BUILD_MODULE_INSTANCES
ifeq ($(NV_MODULE_SUFFIX),frontend)
MODULE_GLUE_OBJS := $(patsubst %.c,%.o,nv-frontend.c)
$(MODULE_NAME)-objs := $(MODULE_GLUE_OBJS)
else
MODULE_GLUE_OBJS := $(patsubst %.c,%.o, nv.c nv-acpi.c nv-chrdev.c nv-cray.c nv-dma.c nv-drm.c nv-gvi.c nv-i2c.c nv-mempool.c nv-mmap.c nv-p2p.c nv-pat.c nv-procfs.c nv-usermap.c nv-vm.c nv-vtophys.c os-interface.c os-mlock.c os-pci.c os-registry.c os-smp.c os-usermap.c nv_uvm_interface.c)
$(MODULE_NAME)-objs := $(CORE_OBJS) $(MODULE_GLUE_OBJS)
endif
else
MODULE_GLUE_OBJS := $(patsubst %.c,%.o, nv.c nv-acpi.c nv-chrdev.c nv-cray.c nv-dma.c nv-drm.c nv-gvi.c nv-i2c.c nv-mempool.c nv-mmap.c nv-p2p.c nv-pat.c nv-procfs.c nv-usermap.c nv-vm.c nv-vtophys.c os-interface.c os-mlock.c os-pci.c os-registry.c os-smp.c os-usermap.c nv_uvm_interface.c) $(patsubst %.c,%.o,nv-frontend.c)
$(MODULE_NAME)-objs := $(CORE_OBJS) $(MODULE_GLUE_OBJS)
endif
#
# List of targets to build in case of multiple NVIDIA kernel module builds.
# The actual target is constructed by prefixing nvidia/nvidia- to every
# item in the list $(BUILD_MODULES_LIST)/$(BUILD_MODULE_FRONTEND).
#
ifdef NV_BUILD_MODULE_INSTANCES
BUILD_MODULES_LIST := $(shell seq 0 `expr $(NV_BUILD_MODULE_INSTANCES) - 1`)
BUILD_MODULE_FRONTEND := frontend
endif
COMPILE_TESTS = \
remap_pfn_range \
vmap \
set_pages_uc \
set_memory_uc \
set_memory_array_uc \
change_page_attr \
i2c_adapter \
pci_get_class \
pm_message_t \
irq_handler_t \
pci_choose_state \
vm_insert_page \
acpi_device_ops \
acpi_op_remove \
acpi_device_id \
acquire_console_sem \
console_lock \
kmem_cache_create \
outer_flush_all \
on_each_cpu \
smp_call_function \
nvmap_support \
acpi_evaluate_integer \
ioremap_cache \
ioremap_wc \
proc_dir_entry \
INIT_WORK \
acpi_walk_namespace \
scatterlist \
pci_domain_nr \
pci_dma_mapping_error \
file_operations \
sg_alloc_table \
sg_init_table \
pci_get_domain_bus_and_slot \
get_num_physpages \
efi_enabled \
dom0_kernel_present \
drm_available \
proc_create_data \
pde_data \
proc_remove \
sg_table \
pm_vt_switch_required \
pci_save_state \
file_inode \
drm_pci_set_busid \
write_cr4 \
for_each_online_node \
node_end_pfn \
get_user_pages \
get_user_pages_remote \
register_cpu_notifier \
cpuhp_setup_state \
vm_fault_present \
vm_fault_has_address \
drm_driver_unload_has_int_return_type \
drm_gem_object_get \
do_gettimeofday \
drm_legacy_pci_init \
timer_setup
#
# CFLAGS dependent on the type of builds (e.g. single/muliple module, debug)
#
ifdef NV_BUILD_MODULE_INSTANCES
EXTRA_CFLAGS += -DNV_BUILD_MODULE_INSTANCES=1
ifneq ($(NV_MODULE_SUFFIX),frontend)
EXTRA_CFLAGS += -DNV_MODULE_INSTANCE=$(NV_MODULE_SUFFIX)
endif
else
EXTRA_CFLAGS += -DNV_MODULE_INSTANCE=0
EXTRA_CFLAGS += -DNV_BUILD_MODULE_INSTANCES=0
endif
EXTRA_CFLAGS += -UDEBUG -U_DEBUG -DNDEBUG
#
# Include common definitions; we rely on the definition of the source path to
# find the file; set to a reasonable default if unset (e.g. for top-level
# passes). The source path is also used in the common file.
#
src ?= .
include $(src)/nvidia-modules-common.mk
#
# Generate multiple targets at runtime depending on the items present in
# the lists $(BUILD_MODULES_LIST) and $(BUILD_MODULE_FRONTEND) for multiple
# NVIDIA kernel module builds.
#
# For normal builds, generate the target $(MODULE_BASENAME).ko.
#
# Multiple-RM builds require GNU Make v3.81 or later, due to a bug in earlier
# versions of GNU Make that prevents the use of $(eval) within a $(foreach):
#
# http://savannah.gnu.org/bugs/?func=detailitem&item_id=1517
#
$(foreach obj_file, $(BUILD_MODULES_LIST), $(eval $(call BUILD_MODULE_RULE,$(MODULE_BASENAME)$(obj_file).ko,$(obj_file),$(MODULE_BASENAME)-$(BUILD_MODULE_FRONTEND).ko)))
$(eval $(call BUILD_MODULE_RULE,$(MODULE_BASENAME)-$(BUILD_MODULE_FRONTEND).ko,$(BUILD_MODULE_FRONTEND),))
$(eval $(call BUILD_MODULE_RULE,$(MODULE_BASENAME).ko,,))
#
# Add dependencies for the generated targets, depending on whether we are
# building multiple RM instances or a single RM.
#
ifdef NV_BUILD_MODULE_INSTANCES
NV_MODULE_TARGET_DEPS := $(addsuffix .ko,$(addprefix $(MODULE_BASENAME),$(BUILD_MODULES_LIST) -$(BUILD_MODULE_FRONTEND)))
else
NV_MODULE_TARGET_DEPS := $(MODULE_OBJECT)
endif
module: $(NV_MODULE_TARGET_DEPS)
+234
View File
@@ -0,0 +1,234 @@
################################################################################
# Copyright (c) 2013 NVidia Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
################################################################################
#
# UVM kernel module makefile
#
# The following UVM_BUILD_TYPEs are supported: debug, release, and develop.
# The first two are nearly self-explanatory, but "develop" deserves a little
# more explanation (below).
#
# Description of the UVM build types (UVM_BUILD_TYPE):
#
# debug builds: these get debug symbols, no optimization (in order to allow
# easier stepping through of functions), and debug printing.
#
# develop builds: these are "printing" builds, normally without debug symbols.
# These builds must run at close to normal speeds, so they are optimized, and
# do not have any debug symbols. However, they do have debug printing output.
# This allows a convenient way for QA (or anyone) to get a slightly deeper look
# at what the driver is doing, without the hassle of setting up kernel
# debugging.
#
# release builds: these are just the usual speed-optimized, no-debug,
# no-printing builds that you would expect most users to run.
#
UVM_BUILD_TYPE ?= release
ifeq ($(UVM_BUILD_TYPE),debug)
EXTRA_CFLAGS += -DDEBUG -O0 -g
else
ifeq ($(UVM_BUILD_TYPE),develop)
# -DDEBUG is required, in order to allow pr_devel() print statements to
# work:
EXTRA_CFLAGS += -DDEBUG -O2
else
EXTRA_CFLAGS += -O2
endif
endif
NV_HOST_OS := $(shell uname)
NV_HOST_ARCH := $(shell uname -m)
NV_TARGET_DEFINES ?=
NV_DEFINES=
# In addition to the UVM_BUILD_TYPE (release, debug) choice, there is also a
# UVM_PROJECT choice. Choices include UVM_NEXT and UVM_LITE, and ALL. The
# default is UVM_LITE.
#
# Unless you are working (inside NVIDIA) on the "next" version of UVM, you want
# to use the default choice here.
UVM_PROJECT ?= UVM_LITE
UVM_LITE ?= 0
UVM_NEXT ?= 0
RM_ENABLED ?= 1
ifeq ($(UVM_PROJECT),ALL)
UVM_LITE = 1
UVM_NEXT = 1
else
ifeq ($(UVM_PROJECT),UVM_LITE)
UVM_LITE = 1
else
ifeq ($(UVM_PROJECT),UVM_NEXT)
UVM_NEXT = 1
else
$(error "Invalid UVM_PROJECT: $(UVM_PROJECT)")
endif
endif
endif
ifeq ($(UVM_LITE),0)
ifeq ($(UVM_NEXT),0)
$(error "Cannot build with both UVM_LITE and UVM_NEXT disabled")
endif
endif
ifneq ($(UVM_LITE),0)
NV_DEFINES += -DNVIDIA_UVM_LITE_ENABLED
endif
ifneq ($(UVM_NEXT),0)
NV_DEFINES += -DNVIDIA_UVM_NEXT_ENABLED
endif
NV_DEFINES += -D$(NV_HOST_OS)
ifneq ($(findstring $(NV_HOST_OS),"Linux"),)
NV_HOST_OS_FAMILY = Unix
NV_HOST_OS_FAMILY_LOWER_CASE = unix
NV_DEFINES+= -D__linux__
endif
ifneq ($(findstring $(NV_HOST_OS),"macosx"),)
NV_HOST_OS_FAMILY = MacOSX
NV_HOST_OS_FAMILY_LOWER_CASE = macosx
endif
ifeq ($(NV_HOST_OS_FAMILY),)
$(error "Unrecognized NV_HOST_OS: $(NV_HOST_OS)")
endif
ifneq ($(findstring $(NV_HOST_OS_FAMILY),"Unix MacOSX"),)
# For Unix and MacOS, use the host platform as the default target platform.
NV_TARGET_OS ?= $(NV_HOST_OS)
NV_TARGET_ARCH ?= $(NV_HOST_ARCH)
endif
#
# Determine NV_TARGET_OS_FAMILY
#
NV_TARGET_OS_FAMILY =
ifneq ($(findstring $(NV_TARGET_OS),"Linux"),)
NV_TARGET_OS_FAMILY = Unix
NV_TARGET_OS_FAMILY_LOWER_CASE = unix
endif
ifneq ($(findstring $(NV_TARGET_OS),"macosx"),)
NV_TARGET_OS_FAMILY = MacOSX
NV_TARGET_OS_FAMILY_LOWER_CASE = macosx
endif
ifeq ($(NV_TARGET_OS_FAMILY),)
$(error "NV_TARGET_OS_FAMILY has not been set.")
endif
src ?= .
obj ?= $(src)
# In both internal builds, and installation (public) builds, the UVM open-source
# files (that's all of them, for UVM) are in a subdirectory below the RM
# open-source files.
RM_OUT_DIR ?= $(src)/..
VERSION_HEADER := $(RM_OUT_DIR)/nv_compiler.h
COMPILE_TESTS = \
remap_page_range \
remap_pfn_range \
irq_handler_t \
vm_insert_page \
kmem_cache_create \
outer_flush_all \
vm_operations_struct \
file_operations \
task_struct \
address_space \
address_space_init_once \
kbasename \
fatal_signal_pending \
kuid_t \
do_gettimeofday \
vm_fault_has_address
MODULE_NAME:= nvidia-uvm
MODULE_GLUE_OBJS := nvidia_uvm_linux.o \
nvidia_uvm_common.o \
nvidia_uvm_utils.o
ifneq ($(UVM_LITE),0)
MODULE_GLUE_OBJS += nvidia_uvm_lite.o \
nvidia_uvm_page_cache.o \
nvidia_uvm_lite_api.o \
nvidia_uvm_lite_counters.o \
nvidia_page_migration.o \
nvidia_page_migration_kepler.o \
nvidia_uvm_lite_events.o \
uvm_gpu_ops_tests.o
endif
NV_INCLUDES:= -I$(PWD) -I$(RM_OUT_DIR)
ifneq ($(UVM_NEXT),0)
include $(src)/uvmnext.mk
endif
ifneq ($(RM_ENABLED),0)
NV_DEFINES += -DNVIDIA_UVM_RM_ENABLED
endif
EXTRA_CFLAGS += $(NV_DEFINES) $(NV_TARGET_DEFINES) $(NV_INCLUDES)
ccflags-y += $(EXTRA_CFLAGS)
RM_MODULE_SYMVERS:= $(RM_OUT_DIR)/Module.symvers
UVM_MODULE_SYMVERS:= $(obj)/Module.symvers
module $(MODULE_NAME).ko: $(UVM_MODULE_SYMVERS) debug_diagnostics_printing
$(MODULE_NAME)-y := $(MODULE_GLUE_OBJS)
include $(RM_OUT_DIR)/nvidia-modules-common.mk
$(eval $(call BUILD_MODULE_RULE, $(MODULE_OBJECT),"uvm",))
module: $(MODULE_OBJECT)
$(RM_MODULE_SYMVERS):
cd $(RM_OUT_DIR); make module SYSSRC=$(KERNEL_SOURCES) SYSOUT=$(KERNEL_OUTPUT) KBUILD_EXTMOD=$(RM_OUT_DIR)
$(UVM_MODULE_SYMVERS): $(RM_MODULE_SYMVERS)
cp $< $@
debug_diagnostics_printing:
ifeq ($(NV_VERBOSE),1)
@echo "NVIDIA UVM: CC=$(CC), HOST_CC=$(HOST_CC) NV_TARGET_ARCH=$(NV_TARGET_ARCH)"
@echo "NVIDIA UVM: CONFTEST=$(CONFTEST)"
@echo "KERNEL_SOURCES: $(KERNEL_SOURCES)"
@echo "EXTRA_CFLAGS: $(EXTRA_CFLAGS)"
endif
.PHONY: debug_diagnostics_printing
View File
View File
+43
View File
@@ -0,0 +1,43 @@
diff --git kernel/uvm/nvidia_uvm_lite.c kernel/uvm/nvidia_uvm_lite.c
index 65b9a4d..f5ea5d7 100644
--- a/kernel/uvm/nvidia_uvm_lite.c
+++ b/kernel/uvm/nvidia_uvm_lite.c
@@ -830,8 +830,10 @@ done:
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-#else
-int _fault(struct vm_fault *vmf)
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
+int _fault(struct vm_fault *vmf)
+#else
+vm_fault_t _fault(struct vm_fault *vmf)
#endif
{
#if defined(NV_VM_FAULT_HAS_ADDRESS)
@@ -886,8 +888,10 @@ static struct vm_operations_struct uvmlite_vma_ops =
#if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
int _sigbus_fault(struct vm_fault *vmf)
+#else
+vm_fault_t _sigbus_fault(struct vm_fault *vmf)
#endif
{
vmf->page = NULL;
diff --git kernel/nv-drm.c kernel/nv-drm.c
index 122ba7d..1be5733 100644
--- a/kernel/nv-drm.c
+++ b/kernel/nv-drm.c
@@ -146,7 +146,7 @@ static const struct file_operations nv_drm_fops = {
};
static struct drm_driver nv_drm_driver = {
-#if defined(DRIVER_LEGACY)
+#if defined(DRIVER_LEGACY) || LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
.driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
#else
.driver_features = DRIVER_GEM | DRIVER_PRIME,
+49
View File
@@ -0,0 +1,49 @@
diff --git kernel/nv-linux.h kernel/nv-linux.h
index 4043bf1..62f0874 100644
--- kernel/nv-linux.h
+++ kernel/nv-linux.h
@@ -877,12 +877,21 @@ extern void *nv_stack_t_cache;
__ret; \
})
#elif (NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT == 3)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
#define NV_SMP_CALL_FUNCTION(func, info, wait) \
({ \
int __ret = smp_call_function(func, info, wait); \
__ret; \
})
#else
+#define NV_SMP_CALL_FUNCTION(func, info, wait) \
+ ({ \
+ int __ret = 0; \
+ smp_call_function(func, info, wait); \
+ __ret; \
+ })
+#endif
+#else
#error "NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT value unrecognized!"
#endif
#elif defined(CONFIG_SMP)
@@ -897,12 +906,21 @@ extern void *nv_stack_t_cache;
__ret; \
})
#elif (NV_ON_EACH_CPU_ARGUMENT_COUNT == 3)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
#define NV_ON_EACH_CPU(func, info, wait) \
({ \
int __ret = on_each_cpu(func, info, wait); \
__ret; \
})
#else
+#define NV_ON_EACH_CPU(func, info, wait) \
+ ({ \
+ int __ret = 0; \
+ on_each_cpu(func, info, wait); \
+ __ret; \
+ })
+#endif
+#else
#error "NV_ON_EACH_CPU_ARGUMENT_COUNT value unrecognized!"
#endif
#elif defined(CONFIG_SMP)
@@ -0,0 +1,113 @@
From f90c388c755a6bd9b72cb51c712a0ae686e0b377 Mon Sep 17 00:00:00 2001
From: Alberto Milone <alberto.milone@canonical.com>
Date: Wed, 27 Nov 2019 13:01:18 +0100
Subject: [PATCH 1/1] Add support for Linux 5.4
---
conftest.sh | 46 ++++++++++++++++++++++++++++++++++++++++
nv-drm.c | 9 +++++---
nvidia-modules-common.mk | 2 +-
3 files changed, 53 insertions(+), 4 deletions(-)
diff --git a/conftest.sh b/conftest.sh
index fb0bf60..babbb50 100755
--- a/kernel/conftest.sh
+++ b/kernel/conftest.sh
@@ -265,6 +265,23 @@ build_cflags() {
if [ -n "$BUILD_PARAMS" ]; then
CFLAGS="$CFLAGS -D$BUILD_PARAMS"
fi
+
+ # Check if gcc supports asm goto and set CC_HAVE_ASM_GOTO if it does.
+ # Older kernels perform this check and set this flag in Kbuild, and since
+ # conftest.sh runs outside of Kbuild it ends up building without this flag.
+ # Starting with commit e9666d10a5677a494260d60d1fa0b73cc7646eb3 this test
+ # is done within Kconfig, and the preprocessor flag is no longer needed.
+
+ GCC_GOTO_SH="$SOURCES/build/gcc-goto.sh"
+
+ if [ -f "$GCC_GOTO_SH" ]; then
+ # Newer versions of gcc-goto.sh don't print anything on success, but
+ # this is okay, since it's no longer necessary to set CC_HAVE_ASM_GOTO
+ # based on the output of those versions of gcc-goto.sh.
+ if [ `/bin/sh "$GCC_GOTO_SH" "$CC"` = "y" ]; then
+ CFLAGS="$CFLAGS -DCC_HAVE_ASM_GOTO"
+ fi
+ fi
}
CONFTEST_PREAMBLE="#include \"conftest.h\"
@@ -1521,6 +1538,35 @@ compile_test() {
compile_check_conftest "$CODE" "NV_DRM_AVAILABLE" "" "generic"
;;
+ drm_driver_prime_flag_present)
+ #
+ # Determine whether driver feature flag DRIVER_PRIME is present.
+ #
+ # The DRIVER_PRIME flag was added by commit 3248877ea179 (drm:
+ # base prime/dma-buf support (v5)) in v3.4 (2011-11-25) and is
+ # removed by commit 0424fdaf883a (drm/prime: Actually remove
+ # DRIVER_PRIME everywhere) on 2019-06-17.
+ #
+ # DRIVER_PRIME definition moved from drmP.h to drm_drv.h by
+ # commit 85e634bce01a (drm: Extract drm_drv.h) in v4.10
+ # (2016-11-14).
+ #
+ # DRIVER_PRIME define is changed to enum value by commit
+ # 0e2a933b02c9 (drm: Switch DRIVER_ flags to an enum) in v5.1
+ # (2019-01-29).
+ #
+ CODE="
+ #include <drm/drmP.h>
+ #if defined(NV_DRM_DRM_DRV_H_PRESENT)
+ #include <drm/drm_drv.h>
+ #endif
+ unsigned int drm_driver_prime_flag_present_conftest(void) {
+ return DRIVER_PRIME;
+ }"
+
+ compile_check_conftest "$CODE" "NV_DRM_DRIVER_PRIME_FLAG_PRESENT" "" "types"
+ ;;
+
proc_create_data)
#
# Determine if the proc_create_data() function is present.
diff --git a/nv-drm.c b/nv-drm.c
index 76719bb..12f7029 100644
--- a/kernel/nv-drm.c
+++ b/kernel/nv-drm.c
@@ -156,11 +156,14 @@ static const struct file_operations nv_drm_fops = {
};
static struct drm_driver nv_drm_driver = {
+ .driver_features =
+#if defined(NV_DRM_DRIVER_PRIME_FLAG_PRESENT)
+ DRIVER_PRIME |
+#endif
#if defined(DRIVER_LEGACY) || LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
- .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
-#else
- .driver_features = DRIVER_GEM | DRIVER_PRIME,
+ DRIVER_LEGACY |
#endif
+ DRIVER_GEM,
.load = nv_drm_load,
.unload = nv_drm_unload,
.fops = &nv_drm_fops,
diff --git a/nvidia-modules-common.mk b/nvidia-modules-common.mk
index 8ac7058..7418005 100644
--- a/kernel/nvidia-modules-common.mk
+++ b/kernel/nvidia-modules-common.mk
@@ -180,7 +180,7 @@ ifndef NV_VERBOSE
endif
KBUILD_PARAMS += KBUILD_VERBOSE=$(NV_VERBOSE)
-KBUILD_PARAMS += -C $(KERNEL_SOURCES) SUBDIRS=$(PWD)
+KBUILD_PARAMS += -C $(KERNEL_SOURCES) M=$(PWD)
KBUILD_PARAMS += ARCH=$(ARCH)
#
--
2.20.1
@@ -0,0 +1,29 @@
Author: Andreas Beckmann <anbe@debian.org>
Description: use kmem_cache_create_usercopy on 4.16+
fixes "Bad or missing usercopy whitelist? Kernel memory exposure attempt
detected from SLUB object 'nvidia_stack_cache'" on linux-image-4.16.0-2-*
or newer that have disabled CONFIG_HARDENED_USERCOPY_FALLBACK
Bug-Debian: #901919, #899998
Bug: https://devtalk.nvidia.com/default/topic/1031067
--- a/kernel/nv-linux.h
+++ b/kernel/nv-linux.h
@@ -757,11 +757,18 @@ extern nv_spinlock_t km_lock;
0, 0, NULL, NULL); \
}
#elif (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)
+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
+ { \
+ kmem_cache = kmem_cache_create_usercopy(name, sizeof(type), 0, 0, 0, sizeof(type), NULL); \
+ }
+#else
#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type) \
{ \
kmem_cache = kmem_cache_create(name, sizeof(type), \
0, 0, NULL); \
}
+#endif
#else
#error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"
#endif
View File
View File
View File
@@ -0,0 +1,199 @@
--- kernel/conftest.sh
+++ kernel/conftest.sh
@@ -168,6 +168,7 @@ test_headers() {
FILES="$FILES linux/sched/task.h"
FILES="$FILES xen/ioemu.h"
FILES="$FILES linux/fence.h"
+ FILES="$FILES linux/ktime.h"
FILES_ARCH="$FILES_ARCH asm/set_memory.h"
@@ -1971,6 +1972,38 @@ compile_test() {
compile_check_conftest "$CODE" "NV_DRM_DRIVER_UNLOAD_HAS_INT_RETURN_TYPE" "" "types"
;;
+ drm_gem_object_get)
+ #
+ # Determine if the function drm_gem_object_get() is present.
+ #
+ CODE="
+ #include <drm/drmP.h>
+ #if defined(NV_DRM_DRM_GEM_H_PRESENT)
+ #include <drm/drm_gem.h>
+ #endif
+ void conftest_drm_gem_object_get(void) {
+ drm_gem_object_get();
+ }"
+
+ compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_GET_PRESENT" "" "functions"
+ ;;
+
+ do_gettimeofday)
+ #
+ # Determine if the function do_gettimeofday() is present.
+ #
+ CODE="
+ #include <linux/time.h>
+ #if defined(NV_LINUX_KTIME_H_PRESENT)
+ #include <linux/ktime.h>
+ #endif
+ void conftest_do_gettimeofday(void) {
+ do_gettimeofday();
+ }"
+
+ compile_check_conftest "$CODE" "NV_DO_GETTIMEOFDAY_PRESENT" "" "functions"
+ ;;
+
drm_legacy_pci_init)
#
# Determine if drm_legacy_pci_init() is present. drm_pci_init() was
--- kernel/nv-drm.c
+++ kernel/nv-drm.c
@@ -37,6 +37,16 @@ struct nv_gem_object {
struct page **pages;
};
+static inline void
+nv_drm_gem_object_unreference_unlocked(struct nv_gem_object *nv_gem)
+{
+#if defined(NV_DRM_GEM_OBJECT_GET_PRESENT)
+ drm_gem_object_put_unlocked(&nv_gem->base);
+#else
+ drm_gem_object_unreference_unlocked(&nv_gem->base);
+#endif
+}
+
static int nv_drm_load(
struct drm_device *dev,
unsigned long flags
@@ -252,7 +262,7 @@ RM_STATUS NV_API_CALL nv_alloc_os_descriptor_handle(
goto done;
}
- drm_gem_object_unreference_unlocked(&nv_obj->base);
+ nv_drm_gem_object_unreference_unlocked(nv_obj);
status = RM_OK;
--- /dev/null
+++ kernel/nv-time.h
@@ -0,0 +1,24 @@
+#ifndef __NV_TIME_H__
+#define __NV_TIME_H__
+
+#include "conftest.h"
+#include <linux/time.h>
+
+#if defined(NV_LINUX_KTIME_H_PRESENT)
+#include <linux/ktime.h>
+#endif
+
+static inline void nv_gettimeofday(struct timeval *tv)
+{
+#ifdef NV_DO_GETTIMEOFDAY_PRESENT
+ do_gettimeofday(tv);
+#else
+ struct timespec64 now;
+
+ ktime_get_real_ts64(&now);
+ tv->tv_sec = now.tv_sec;
+ tv->tv_usec = now.tv_nsec/1000;
+#endif
+}
+
+#endif
--- kernel/os-interface.c
+++ kernel/os-interface.c
@@ -13,6 +13,7 @@
#include "os-interface.h"
#include "nv-linux.h"
+#include "nv-time.h"
RM_STATUS NV_API_CALL os_disable_console_access(void)
{
@@ -440,7 +441,7 @@ RM_STATUS NV_API_CALL os_get_current_time(
{
struct timeval tm;
- do_gettimeofday(&tm);
+ nv_gettimeofday(&tm);
*seconds = tm.tv_sec;
*useconds = tm.tv_usec;
@@ -475,7 +476,7 @@ RM_STATUS NV_API_CALL os_delay_us(NvU32 MicroSeconds)
#ifdef NV_CHECK_DELAY_ACCURACY
struct timeval tm1, tm2;
- do_gettimeofday(&tm1);
+ nv_gettimeofday(&tm1);
#endif
if (in_irq() && (MicroSeconds > NV_MAX_ISR_DELAY_US))
@@ -490,7 +491,7 @@ RM_STATUS NV_API_CALL os_delay_us(NvU32 MicroSeconds)
udelay(usec);
#ifdef NV_CHECK_DELAY_ACCURACY
- do_gettimeofday(&tm2);
+ nv_gettimeofday(&tm2);
nv_printf(NV_DBG_ERRORS, "NVRM: osDelayUs %d: 0x%x 0x%x\n",
MicroSeconds, tm2.tv_sec - tm1.tv_sec, tm2.tv_usec - tm1.tv_usec);
#endif
@@ -518,7 +519,7 @@ RM_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
struct timeval tm_start;
#endif
- do_gettimeofday(&tm_aux);
+ nv_gettimeofday(&tm_aux);
#ifdef NV_CHECK_DELAY_ACCURACY
tm_start = tm_aux;
#endif
@@ -552,7 +553,7 @@ RM_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
do
{
schedule_timeout(jiffies);
- do_gettimeofday(&tm_aux);
+ nv_gettimeofday(&tm_aux);
if (NV_TIMERCMP(&tm_aux, &tm_end, <))
{
NV_TIMERSUB(&tm_end, &tm_aux, &tm_aux);
@@ -574,7 +575,7 @@ RM_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
udelay(MicroSeconds);
}
#ifdef NV_CHECK_DELAY_ACCURACY
- do_gettimeofday(&tm_aux);
+ nv_gettimeofday(&tm_aux);
timersub(&tm_aux, &tm_start, &tm_aux);
nv_printf(NV_DBG_ERRORS, "NVRM: osDelay %dmsec: %d.%06dsec\n",
MilliSeconds, tm_aux.tv_sec, tm_aux.tv_usec);
--- kernel/uvm/nvidia_uvm_linux.h
+++ kernel/uvm/nvidia_uvm_linux.h
@@ -146,6 +146,7 @@
#include <linux/interrupt.h> /* tasklets, interrupt helpers */
#include <linux/timer.h>
#include <linux/time.h> /* do_gettimeofday()*/
+#include "nv-time.h"
#include <asm/div64.h> /* do_div() */
#if defined(NV_ASM_SYSTEM_H_PRESENT)
--- kernel/uvm/nvidia_uvm_lite.c
+++ kernel/uvm/nvidia_uvm_lite.c
@@ -2019,7 +2019,7 @@ static RM_STATUS _check_ecc_errors(UvmGpuMigrationTracking *pMigTracker,
{
if (!!(rmInterruptSet) && !bEccIncomingError)
{
- do_gettimeofday(&eccErrorStartTime);
+ nv_gettimeofday(&eccErrorStartTime);
_set_timeout_in_usec(&eccErrorStartTime, &eccTimeout,
UVM_ECC_ERR_TIMEOUT_USEC);
@@ -2051,7 +2051,7 @@ static RM_STATUS _check_ecc_errors(UvmGpuMigrationTracking *pMigTracker,
//
if (!!(rmInterruptSet) && (eccErrorStartTime.tv_usec != 0))
{
- do_gettimeofday(&eccErrorCurrentTime);
+ nv_gettimeofday(&eccErrorCurrentTime);
if ((eccErrorCurrentTime.tv_sec > eccTimeout.tv_sec) ||
((eccErrorCurrentTime.tv_sec == eccTimeout.tv_sec) &&
(eccErrorCurrentTime.tv_usec >= eccTimeout.tv_usec)))
@@ -0,0 +1,28 @@
Author: Andreas Beckmann <anbe@debian.org>
Description: unregister procfs upon module load failure
the nvidia module may leave stale proc entries if it refuses to be
loaded becase nouveau is already loaded and has claimed the device
.
the error unwinding in nvidia_init_module() is insane
(375.26 looks much better)
.
this patch is probably not correct in all cases, but the unwinding is
not reverse linear in creation and the gotos are all across everything
.
leaving stale proc entries prevents the nvidia module from loading again
.
accessing the stale proc entries results in
BUG: unable to handle kernel paging request at ...
Bug-Debian: #764639
--- a/kernel/nv.c
+++ b/kernel/nv.c
@@ -1038,6 +1038,8 @@ failed3:
pci_unregister_driver(&nv_pci_driver);
+ nv_unregister_procfs();
+
failed5:
rm_shutdown_rm(sp);
+17 -2
View File
@@ -15,9 +15,17 @@
<Archive sha1sum="de4d309e52ab489e412fe6de000bb92ca27b6f31" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/340.107/NVIDIA-Linux-x86_64-340.107.run</Archive>
<AdditionalFiles>
<AdditionalFile target="kernel-4.11.patch">kernel-4.11.patch</AdditionalFile>
<AdditionalFile target="kernel-5.3.patch">kernel-5.3.patch</AdditionalFile>
<AdditionalFile target="kernel-5.1.patch">kernel-5.1.patch</AdditionalFile>
<AdditionalFile target="kernel-5.4.patch">kernel-5.4.patch</AdditionalFile>
<AdditionalFile target="kmem_cache_create_usercopy.patch">kmem_cache_create_usercopy.patch</AdditionalFile>
<AdditionalFile target="unregister_procfs_on_failure.patch">unregister_procfs_on_failure.patch</AdditionalFile>
<AdditionalFile target="nv_patch_340.107_linux_kernel_5.0">nv_patch_340.107_linux_kernel_5.0</AdditionalFile>
<AdditionalFile target="Makefile-kernel">Makefile-kernel</AdditionalFile>
<AdditionalFile target="Makefile-uvm">Makefile-uvm</AdditionalFile>
</AdditionalFiles>
<BuildDependencies>
<Dependency version="4.19.56">kernel-module-headers</Dependency>
<Dependency version="5.4.6">kernel-module-headers</Dependency>
</BuildDependencies>
</Source>
@@ -26,7 +34,7 @@
<IsA>driver</IsA>
<Summary>Kernel module for NVIDIA driver 340.xx releases</Summary>
<RuntimeDependencies>
<Dependency version="4.19.56">kernel</Dependency>
<Dependency version="5.4.6">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -97,6 +105,13 @@
</Package>
<History>
<Update release="28">
<Date>2019-12-28</Date>
<Version>340.107</Version>
<Comment>Rebuild for new kernel.</Comment>
<Name>Idris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="27">
<Date>2019-08-14</Date>
<Version>340.107</Version>
+184
View File
@@ -0,0 +1,184 @@
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import kerneltools
WorkDir = "."
KDIR = kerneltools.getKernelVersion()
NoStrip = ["/lib/modules"]
version = get.srcVERSION()
driver_dir_name = "nvidia-current"
datadir = "/usr/share/%s" % driver_dir_name
libdir = "/usr/lib32" if get.buildTYPE() == 'emul32' else "/usr/lib"
arch = "x86" if get.buildTYPE() == 'emul32' else get.ARCH().replace("i6", "x")
nvlibdir = "%s/%s" % (libdir, driver_dir_name)
xorglibdir= "%s/xorg" % libdir
def setup():
shelltools.system("sh NVIDIA-Linux-%s-%s.run -x --target tmp"
% (arch, get.srcVERSION()))
shelltools.move("tmp/*", ".")
#if get.buildTYPE() != 'emul32':
#shelltools.system("patch -p1 < linux-5.1.patch")
# Our libc is TLS enabled so use TLS library
#shelltools.unlink("*-tls.so*")
#shelltools.move("tls/*", ".")
# xorg-server provides libwfb.so
shelltools.unlink("libnvidia-wfb.so.*")
shelltools.echo("ld.so.conf", nvlibdir)
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
def build():
# We don't need kernel module for emul32 build
if get.buildTYPE() == 'emul32':
return
shelltools.export("SYSSRC", "/lib/modules/%s/build" % KDIR)
shelltools.cd("kernel")
autotools.make("module")
#shelltools.cd("uvm")
#autotools.make("module")
def install():
if not get.buildTYPE() == 'emul32':
# Kernel driver
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-uvm.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-modeset.ko")
# Command line tools and their man pages
pisitools.dobin("nvidia-smi")
pisitools.doman("nvidia-smi.1.gz")
pisitools.dobin("nvidia-debugdump")
pisitools.dobin("nvidia-xconfig")
pisitools.doman("nvidia-xconfig.1.gz")
pisitools.dobin("nvidia-bug-report.sh")
pisitools.dobin("nvidia-cuda-mps-server")
pisitools.dobin("nvidia-cuda-mps-control")
pisitools.doman("nvidia-cuda-mps-control.1.gz")
pisitools.dobin("nvidia-modprobe")
pisitools.doman("nvidia-modprobe.1.gz")
pisitools.dobin("nvidia-persistenced")
pisitools.doman("nvidia-persistenced.1.gz")
### Libraries
# OpenGl library
pisitools.dolib("libGL.so.%s" % version, nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1" % nvlibdir)
pisitools.dolib("libGL.so.%s" % version, libdir)
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)
# OpenCL
pisitools.insinto("/etc/OpenCL/vendors", "nvidia.icd")
pisitools.dolib("libnvidia-compiler.so.%s" % version, libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
pisitools.dolib("libOpenCL.so.1.0.0", libdir)
pisitools.dosym("libOpenCL.so.1.0.0", "%s/libOpenCL.so.1.0" % libdir)
pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
pisitools.dolib("libnvidia-opencl.so.%s" % version, libdir)
pisitools.dosym("libnvidia-opencl.so.%s" % version, "%s/libnvidia-opencl.so.1" % libdir)
pisitools.dosym("libnvidia-opencl.so.1", "%s/libnvidia-opencl.so" % libdir)
# CUDA
pisitools.dolib("libcuda.so.%s" % version, libdir)
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
pisitools.dolib("libnvcuvid.so.%s" % version, libdir)
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
# NVML
# Provides programmatic access to static information and monitoring
# data for NVIDIA GPUs, as well as limited managment capabilities
pisitools.dolib("libnvidia-ml.so.%s" % version, libdir)
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
pisitools.dolib("libnvidia-cfg.so.%s" % version, libdir)
pisitools.dosym("libnvidia-cfg.so.%s" % version, "%s/libnvidia-cfg.so.1" % libdir)
# OpenGL core library and others
for lib in ("glcore", "tls", "encode", "fbc", "glsi", "ifr", "eglcore"):
pisitools.dolib("libnvidia-%s.so.%s" % (lib, version), libdir)
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so.1" %(libdir, lib))
# VDPAU driver
pisitools.dolib("libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.so" % libdir)
# nvidia-tls library
pisitools.dolib("libnvidia-tls.so.%s" % version, libdir)
pisitools.dolib("tls/libnvidia-tls.so.%s" % version, "%s/tls" % libdir)
# X modules
pisitools.dolib("nvidia_drv.so", "%s/modules/drivers" % xorglibdir)
pisitools.dolib("libglx.so.%s" % version, "%s" % nvlibdir)
pisitools.dosym("libglx.so.%s" % version, "%s/libglx.so.1" % nvlibdir)
pisitools.dosym("libglx.so.%s" % version, "%s/libglx.so" % nvlibdir)
pisitools.dolib("libglx.so.%s" % version, "%s/modules/extensions" % xorglibdir)
pisitools.dosym("libglx.so.%s" % version, "%s/modules/extensions/libglx.so.1" % xorglibdir)
pisitools.dolib("libGLX_nvidia.so.%s" % version, libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so.0" % libdir)
# PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA)
pisitools.dolib("libnvidia-ptxjitcompiler.so.%s" % version, libdir)
# Fat (multiarchitecture) binary loader
pisitools.dolib("libnvidia-fatbinaryloader.so.%s" % version, libdir)
pisitools.insinto("/usr/share/X11/xorg.conf.d", "nvidia-drm-outputclass.conf")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-rc")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-key-documentation")
#pisitools.insinto("/usr/share/pixmaps", "nvidia-settings.png")
# Exit time for emul32 build
if get.buildTYPE() == 'emul32':
pisitools.insinto(datadir, "ld.so.conf", "32bit-ld.so.conf")
return
pisitools.insinto(datadir, "ld.so.conf")
pisitools.insinto(datadir, "XvMCConfig")
# Documentation
docdir = "xorg-video-%s" % driver_dir_name
pisitools.dodoc("LICENSE", "NVIDIA_Changelog", "README.txt", destDir=docdir)
pisitools.dohtml("html/*", destDir=docdir)
### Note
# This package includes nvidia-setting and nvidia-xconfig binaries. However
# we have seperate packages for each of them. Nvidia provides tarballs for
# these binaries. Don't forget to update these package with each NVIDIA
# driver update.
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia390"
libdir = "/usr/lib32/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib32/libGL.so.1.2.0 libGL-32bit %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib32/xorg/modules/volatile xorg-modules-volatile-32bit %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/ld.so.conf.d/10-nvidia-32bit.conf nvidia-ldsoconf-32bit %(datadir)s/32bit-ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL-32bit") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL-32bit %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL-32bit %s/libGL.so.1.2.0" % libdir)
pass
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia390"
libdir = "/usr/lib/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib/libGL.so.1.2.0 libGL %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib/xorg/modules/volatile xorg-modules-volatile %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/X11/XvMCConfig XvMCConfig %(datadir)s/XvMCConfig \
# --slave /etc/ld.so.conf.d/10-nvidia.conf nvidia-ldsoconf %(datadir)s/ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL %s/libGL.so.1.2.0" % libdir)
pass
@@ -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 <linux/version.h>
+
#include <drm/drm_crtc_helper.h>
#include <drm/drm_atomic.h>
@@ -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 <linux/version.h>
+
#include <drm/drm_crtc_helper.h>
#include <drm/drm_atomic.h>
@@ -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(
@@ -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 <linux/version.h>
+
#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:
+130
View File
@@ -0,0 +1,130 @@
diff --git a/kernel/common/inc/nv-list-helpers.h b/kernel/common/inc/nv-list-helpers.h
index 0aed851..d6304c9 100644
--- a/kernel/common/inc/nv-list-helpers.h
+++ b/kernel/common/inc/nv-list-helpers.h
@@ -26,6 +26,8 @@
#include <linux/list.h>
#include "conftest.h"
+#include <linux/version.h>
+
#if !defined (list_for_each)
#define list_for_each(pos, head) \
for (pos = (head)->next; pos != (head); pos = (pos)->next)
@@ -91,10 +93,12 @@
list_entry((pos)->member.next, typeof(*(pos)), member)
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
static inline int list_is_first(const struct list_head *list,
const struct list_head *head)
{
return list->prev == head;
}
+#endif
#endif // __NV_LIST_HELPERS_H__
diff --git a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c
index 24631c0..ba1497c 100644
--- a/kernel/nvidia-drm/nvidia-drm-connector.c
+++ b/kernel/nvidia-drm/nvidia-drm-connector.c
@@ -30,7 +30,12 @@
#include "nvidia-drm-utils.h"
#include "nvidia-drm-encoder.h"
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
#include <drm/drm_crtc_helper.h>
+#else
+#include <drm/drm_probe_helper.h>
+#endif
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c
index 1c2db68..d524d51 100644
--- a/kernel/nvidia-drm/nvidia-drm-drv.c
+++ b/kernel/nvidia-drm/nvidia-drm-drv.c
@@ -41,7 +41,12 @@
#include <drm/drmP.h>
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
#include <drm/drm_crtc_helper.h>
+#else
+#include <drm/drm_probe_helper.h>
+#endif
#if defined(NV_DRM_DRM_GEM_H_PRESENT)
#include <drm/drm_gem.h>
diff --git a/kernel/nvidia-drm/nvidia-drm-encoder.c b/kernel/nvidia-drm/nvidia-drm-encoder.c
index f66bbd7..df38042 100644
--- a/kernel/nvidia-drm/nvidia-drm-encoder.c
+++ b/kernel/nvidia-drm/nvidia-drm-encoder.c
@@ -31,7 +31,12 @@
#include "nvidia-drm-crtc.h"
#include "nvidia-drm-helper.h"
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
#include <drm/drm_crtc_helper.h>
+#else
+#include <drm/drm_probe_helper.h>
+#endif
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
diff --git a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
index 8636eff..fd0c8da 100644
--- a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
+++ b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
@@ -29,6 +29,8 @@
#include "nv-mm.h"
+#include <linux/version.h>
+
static void __nv_drm_gem_nvkms_memory_free(struct nv_drm_gem_object *nv_gem)
{
struct nv_drm_device *nv_dev = nv_gem->nv_dev;
@@ -268,7 +270,11 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma,
*/
#if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
static int nv_drm_vma_fault(struct vm_fault *vmf)
+#else
+static vm_fault_t nv_drm_vma_fault(struct vm_fault *vmf)
+#endif
{
return __nv_drm_vma_fault(vmf->vma, vmf);
}
diff --git a/kernel/nvidia-uvm/uvm8.c b/kernel/nvidia-uvm/uvm8.c
index e00923d..2e01e3c 100644
--- a/kernel/nvidia-uvm/uvm8.c
+++ b/kernel/nvidia-uvm/uvm8.c
@@ -172,7 +172,11 @@ static int uvm_vm_fault_sigbus(struct vm_area_struct *vma, struct vm_fault *vmf)
return VM_FAULT_SIGBUS;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
static int uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf)
+#else
+static vm_fault_t uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf)
+#endif
{
#if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG)
return uvm_vm_fault_sigbus(vmf->vma, vmf);
@@ -507,7 +511,11 @@ convert_error:
}
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
static int uvm_vm_fault_wrapper(struct vm_fault *vmf)
+#else
+static vm_fault_t uvm_vm_fault_wrapper(struct vm_fault *vmf)
+#endif
{
#if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG)
return uvm_vm_fault(vmf->vma, vmf);
+2
View File
@@ -0,0 +1,2 @@
blacklist nouveau
options nouveau modeset=0
@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=NVIDIA X Server Settings
Comment=Configure NVIDIA X Server Settings
Exec=/usr/bin/nvidia-settings
Icon=/usr/share/pixmaps/nvidia-settings.png
Categories=Application;Settings;
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia-current"
libdir = "/usr/lib32/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib32/libGL.so.1.2.0 libGL-32bit %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib32/xorg/modules/volatile xorg-modules-volatile-32bit %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/ld.so.conf.d/10-nvidia-32bit.conf nvidia-ldsoconf-32bit %(datadir)s/32bit-ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL-32bit") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL-32bit %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL-32bit %s/libGL.so.1.2.0" % libdir)
pass
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia-current"
libdir = "/usr/lib/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib/libGL.so.1.2.0 libGL %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib/xorg/modules/volatile xorg-modules-volatile %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/X11/XvMCConfig XvMCConfig %(datadir)s/XvMCConfig \
# --slave /etc/ld.so.conf.d/10-nvidia.conf nvidia-ldsoconf %(datadir)s/ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL %s/libGL.so.1.2.0" % libdir)
pass
+141
View File
@@ -0,0 +1,141 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>module-nvidia390t</Name>
<Homepage>http://www.nvidia.com</Homepage>
<Packager>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Packager>
<License>NVIDIA</License>
<Summary>NVIDIA drivers for GeForce 6xxx and newer GPUs</Summary>
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
<Archive sha1sum="1966a1d54c3ab415a7b252f4a0d38fa77a7e4c30" type="binary">http://us.download.nvidia.com/XFree86/Linux-x86/390.132/NVIDIA-Linux-x86-390.132.run</Archive>
<Archive sha1sum="63d49c0fac620b21a23b361a9f02487534ac9c5c" type="binary">http://us.download.nvidia.com/XFree86/Linux-x86_64/390.132/NVIDIA-Linux-x86_64-390.132.run</Archive>
<BuildDependencies>
<Dependency version="5.4.2">kernel-module-headers</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>gtk2-devel</Dependency>
<Dependency>gtk3-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>module-nvidia390</Name>
<IsA>driver</IsA>
<Summary>Kernel module for current NVIDIA graphics driver releases</Summary>
<RuntimeDependencies>
<Dependency version="5.4.2">kernel</Dependency>
<!-- <Dependency release="current">module-nvidia-current-userspace</Dependency> -->
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
<Path fileType="data">/etc/modprobe.d</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/modprobe.d/blacklist-nouveau.conf">modprobe.conf</AdditionalFile>
</AdditionalFiles>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<Package>
<Name>nvidia-xconfig390</Name>
<IsA>app:console</IsA>
<PartOf>hardware.graphics</PartOf>
<Summary>Xconfig file for nvidia390 kernel driver</Summary>
<RuntimeDependencies>
<Dependency version="current">module-nvidia-current</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/nvidia-xconfig</Path>
<Path fileType="man">/usr/share/man/man1/nvidia-xconfig.1</Path>
</Files>
</Package>
<Package>
<Name>xorg-video-nvidia390</Name>
<IsA>driver</IsA>
<PartOf>x11.driver</PartOf>
<RuntimeDependencies>
<Dependency>libXext</Dependency>
<Dependency>libX11</Dependency>
<Dependency>mesa</Dependency>
<Dependency>xorg-server</Dependency>
<Dependency version="current">module-nvidia390</Dependency>
</RuntimeDependencies>
<Conflicts>
<Package>xorg-video-nvidia-current</Package>
<Package>xorg-video-nvidia304</Package>
<Package>xorg-video-nvidia340</Package>
</Conflicts>
<Files>
<Path fileType="data">/etc/OpenCL</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/usr/share/X11</Path>
<Path fileType="data">/usr/share/nvidia-current</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
</Provides>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<Package>
<Name>xorg-video-nvidia390-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for xorg-video-nvidia390</Summary>
<BuildType>emul32</BuildType>
<BuildDependencies>
<Dependency>libvdpau-32bit</Dependency>
</BuildDependencies>
<RuntimeDependencies>
<Dependency>zlib-32bit</Dependency>
<Dependency>mesa-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>libXext-32bit</Dependency>
<Dependency release="current">xorg-video-nvidia390</Dependency>
<Dependency>atk</Dependency>
<Dependency>gtk2</Dependency>
<Dependency>gtk3</Dependency>
<Dependency>cairo</Dependency>
<Dependency>glib2</Dependency>
<Dependency>pango</Dependency>
<Dependency>gdk-pixbuf</Dependency>
</RuntimeDependencies>
<Conflicts>
<Package>xorg-video-nvidia-current-32bit</Package>
<Package>xorg-video-nvidia304-32bit</Package>
<Package>xorg-video-nvidia340-32bit</Package>
</Conflicts>
<Files>
<Path fileType="library">/usr/lib32</Path>
<Path fileType="library">/usr/share/nvidia-current/32bit-ld.so.conf</Path>
</Files>
<Provides>
<COMAR script="package-emul32.py">System.Package</COMAR>
</Provides>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<History>
<Update release="4">
<Date>2019-12-12</Date>
<Version>390.132</Version>
<Comment>First release</Comment>
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
</History>
</PISI>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>module-nvidia-current</Name>
<Summary xml:lang="tr">GeForce 6xxx ve daha yeni NVIDIA ekran kartları için sürücüler</Summary>
<Description xml:lang="tr">NVIDIA grafik sürücüleri daha iyi 2B/3B başarımı sağlar.</Description>
<Description xml:lang="es">Controladores de kernel nVIDIA y glx para rendimiento optimizado 2d/3d en Linux (Para NV3X o mejor).</Description>
<Summary xml:lang="es">Controladores nVIDIA de kernel y glx para tarjetas NV3 o mejor (Geforce FX o mejor)</Summary>
</Source>
<Package>
<Name>module-nvidia-current</Name>
<Summary xml:lang="tr">Güncel NVIDIA grafik sürücüleri için çekirdek modülü</Summary>
</Package>
<Package>
<Name>xorg-video-nvidia-current</Name>
<Summary xml:lang="tr">Güncel NVIDIA userspace sürücüleri ve ikili dosyaları</Summary>
</Package>
<Package>
<Name>xorg-video-nvidia-current-32bit</Name>
<Summary xml:lang="tr">xorg-video-nvidia-current için 32-bit paylaşımlı kitaplıklar</Summary>
</Package>
</PISI>
+251
View File
@@ -0,0 +1,251 @@
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import kerneltools
WorkDir = "."
KDIR = kerneltools.getKernelVersion()
NoStrip = ["/lib/modules"]
version = get.srcVERSION()
driver_dir_name = "nvidia430"
datadir = "/usr/share/%s" % driver_dir_name
libdir = "/usr/lib32" if get.buildTYPE() == 'emul32' else "/usr/lib"
arch = "x86" if get.buildTYPE() == 'emul32' else get.ARCH().replace("i6", "x")
nvlibdir = "%s/%s" % (libdir, driver_dir_name)
xorglibdir= "%s/xorg" % libdir
def setup():
shelltools.system("sh NVIDIA-Linux-x86_64-%s.run -x --target tmp"
% 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")
#shelltools.system("patch -p1 < header-fix.patch")
# Our libc is TLS enabled so use TLS library
#shelltools.unlink("*-tls.so*")
#shelltools.move("tls/*", ".")
# xorg-server provides libwfb.so
#shelltools.unlink("libnvidia-wfb.so.*")
shelltools.echo("ld.so.conf", nvlibdir)
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
def build():
# We don't need kernel module for emul32 build
if get.buildTYPE() == 'emul32':
return
shelltools.export("SYSSRC", "/lib/modules/%s/build" % KDIR)
shelltools.cd("kernel")
autotools.make("module")
def install():
if not get.buildTYPE() == 'emul32':
# Kernel driver
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-drm.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-uvm.ko")
pisitools.insinto("/lib/modules/%s/extra" % KDIR,
"kernel/nvidia-modeset.ko")
# Command line tools and their man pages
pisitools.dobin("nvidia-smi")
pisitools.doman("nvidia-smi.1.gz")
pisitools.dobin("nvidia-debugdump")
#pisitools.dobin("nvidia-xconfig")
#pisitools.doman("nvidia-xconfig.1.gz")
pisitools.dobin("nvidia-bug-report.sh")
pisitools.dobin("nvidia-cuda-mps-server")
pisitools.dobin("nvidia-cuda-mps-control")
pisitools.doman("nvidia-cuda-mps-control.1.gz")
pisitools.dobin("nvidia-modprobe")
pisitools.doman("nvidia-modprobe.1.gz")
pisitools.dobin("nvidia-persistenced")
pisitools.doman("nvidia-persistenced.1.gz")
#pisitools.dobin("nvidia-settings")
#pisitools.doman("nvidia-settings.1.gz")
### Libraries
# 32-bit libraries
if get.buildTYPE() == 'emul32':
pisitools.dolib("32/libGL.so.%s" % version, nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1" % nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so" % nvlibdir)
pisitools.dolib("32/libEGL.so.1.1.0", nvlibdir)
pisitools.dosym("libEGL.so.1.1.0", "%s/libEGL.so.1" % nvlibdir)
pisitools.dosym("32/libEGL.so.1.1.0", "%s/libEGL.so" % nvlibdir)
pisitools.dolib("32/libEGL_nvidia.so.%s" % version, libdir)
pisitools.dolib("32/libGLESv1_CM_nvidia.so.%s" % version, libdir)
pisitools.dolib("32/libGLESv2_nvidia.so.%s" % version, libdir)
pisitools.insinto("/etc/OpenCL/vendors", "nvidia.icd")
pisitools.dolib("32/libnvidia-compiler.so.%s" % version, libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so" % libdir)
#pisitools.dolib("32/libOpenCL.so.1.0.0", libdir)
#pisitools.dosym("libOpenCL.so.1.0.0", "%s/libOpenCL.so.1.0" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so" % libdir)
pisitools.dolib("32/libnvidia-opencl.so.%s" % version, libdir)
pisitools.dosym("libnvidia-opencl.so.%s" % version, "%s/libnvidia-opencl.so.1" % libdir)
pisitools.dosym("libnvidia-opencl.so.1", "%s/libnvidia-opencl.so" % libdir)
pisitools.dolib("32/libcuda.so.%s" % version, libdir)
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
pisitools.dolib("32/libnvcuvid.so.%s" % version, libdir)
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
pisitools.dolib("32/libnvidia-ml.so.%s" % version, libdir)
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
for lib in ("eglcore", "encode", "fatbinaryloader", "fbc", "glcore", "glsi", \
"glvkspirv", "ifr", "opticalflow", "ptxjitcompiler", "tls" ):
pisitools.dolib("32/libnvidia-%s.so.%s" % (lib, version), libdir)
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so.1" %(libdir, lib))
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so" %(libdir, lib))
pisitools.dolib("32/libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.so" % libdir)
pisitools.dolib("32/libGLX_nvidia.so.%s" % version, libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so.0" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so" % libdir)
else:
# OpenGl library
pisitools.dolib("libGL.so.%s" % version, nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1" % nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so" % nvlibdir)
pisitools.dolib("libEGL.so.1.1.0", nvlibdir)
pisitools.dosym("libEGL.so.1.1.0", "%s/libEGL.so.1" % nvlibdir)
pisitools.dosym("libEGL.so.1.1.0", "%s/libEGL.so" % 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)
pisitools.dolib("libGLdispatch.so.0", libdir)
pisitools.dosym("libGLdispatch.so.0", "%s/libGLdispatch.so" % libdir)
# OpenCL
pisitools.insinto("/etc/OpenCL/vendors", "nvidia.icd")
pisitools.dolib("libnvidia-compiler.so.%s" % version, libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so" % libdir)
#pisitools.dolib("libOpenCL.so.1.0.0", libdir)
#pisitools.dosym("libOpenCL.so.1.0.0", "%s/libOpenCL.so.1.0" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so" % libdir)
pisitools.dolib("libnvidia-opencl.so.%s" % version, libdir)
pisitools.dosym("libnvidia-opencl.so.%s" % version, "%s/libnvidia-opencl.so.1" % libdir)
pisitools.dosym("libnvidia-opencl.so.1", "%s/libnvidia-opencl.so" % libdir)
# CUDA
pisitools.dolib("libcuda.so.%s" % version, libdir)
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
pisitools.dolib("libnvcuvid.so.%s" % version, libdir)
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
# NVML
# Provides programmatic access to static information and monitoring
# data for NVIDIA GPUs, as well as limited managment capabilities
pisitools.dolib("libnvidia-ml.so.%s" % version, libdir)
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
pisitools.dolib("libnvidia-cfg.so.%s" % version, libdir)
pisitools.dosym("libnvidia-cfg.so.%s" % version, "%s/libnvidia-cfg.so.1" % libdir)
pisitools.dolib("libnvoptix.so.%s" % version, libdir)
pisitools.dosym("libnvoptix.so.%s" % version, "%s/libnvoptix.so.1" % libdir)
pisitools.dosym("libnvoptix.so.%s" % version, "%s/libnvoptix.so" % libdir)
pisitools.dolib("libnvidia-egl-wayland.so.1.1.2", libdir)
pisitools.dosym("libnvidia-egl-wayland.so.1.1.2", "%s/libnvidia-egl-wayland.so.1" % libdir)
pisitools.dosym("libnvidia-egl-wayland.so.1.1.2", "%s/libnvidia-egl-wayland.so" % libdir)
# OpenGL core library and others
for lib in ("cbl", "eglcore", "encode", "fatbinaryloader", "fbc", "glcore", "glsi", \
"glvkspirv", "ifr", "opticalflow", "ptxjitcompiler", "rtcore", "tls" ):
pisitools.dolib("libnvidia-%s.so.%s" % (lib, version), libdir)
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so.1" %(libdir, lib))
pisitools.dosym("libnvidia-%s.so.%s" % (lib, version), "%s/libnvidia-%s.so" %(libdir, lib))
# VDPAU driver
pisitools.dolib("libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.so" % libdir)
# X modules
pisitools.dolib("nvidia_drv.so", "%s/modules/drivers" % xorglibdir)
pisitools.dolib("libglxserver_nvidia.so.%s" % version, "%s" % nvlibdir)
pisitools.dosym("libglxserver_nvidia.so.%s" % version, "%s/libglx.so.1" % nvlibdir)
pisitools.dosym("libglxserver_nvidia.so.%s" % version, "%s/libglx.so" % nvlibdir)
pisitools.dolib("libglxserver_nvidia.so.%s" % version, "%s/modules/extensions" % xorglibdir)
pisitools.dosym("libglxserver_nvidia.so.%s" % version, "%s/modules/extensions/libglx.so.1" % xorglibdir)
pisitools.dolib("libGLX_nvidia.so.%s" % version, libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so.0" % libdir)
pisitools.dosym("libGLX_nvidia.so.%s" % version, "%s/libGLX_indirect.so" % libdir)
pisitools.insinto("/usr/share/X11/xorg.conf.d", "nvidia-drm-outputclass.conf")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-rc")
# pisitools.insinto("/usr/share/nvidia", "nvidia-application-profiles-367.27-key-documentation")
#pisitools.insinto("/usr/share/pixmaps", "nvidia-settings.png")
#pisitools.dolib("libnvidia-gtk2.so.%s" % version, libdir)
#pisitools.dolib("libnvidia-gtk3.so.%s" % version, libdir)
# Exit time for emul32 build
#if get.buildTYPE() == 'emul32':
#pisitools.insinto(datadir, "ld.so.conf", "32bit-ld.so.conf")
#return
pisitools.insinto(datadir, "ld.so.conf")
pisitools.insinto(datadir, "XvMCConfig")
# Documentation
docdir = "xorg-video-%s" % driver_dir_name
pisitools.dodoc("LICENSE", "NVIDIA_Changelog", "README.txt", destDir=docdir)
pisitools.dohtml("html/*", destDir=docdir)
### Note
# This package includes nvidia-setting and nvidia-xconfig binaries. However
# we have seperate packages for each of them. Nvidia provides tarballs for
# these binaries. Don't forget to update these package with each NVIDIA
# driver update.
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia-current"
libdir = "/usr/lib32/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib32/libGL.so.1.2.0 libGL-32bit %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib32/xorg/modules/volatile xorg-modules-volatile-32bit %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/ld.so.conf.d/10-nvidia-32bit.conf nvidia-ldsoconf-32bit %(datadir)s/32bit-ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL-32bit") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL-32bit %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL-32bit %s/libGL.so.1.2.0" % libdir)
pass
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia-current"
libdir = "/usr/lib/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib/libGL.so.1.2.0 libGL %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib/xorg/modules/volatile xorg-modules-volatile %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/X11/XvMCConfig XvMCConfig %(datadir)s/XvMCConfig \
# --slave /etc/ld.so.conf.d/10-nvidia.conf nvidia-ldsoconf %(datadir)s/ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL %s/libGL.so.1.2.0" % libdir)
pass
+2
View File
@@ -0,0 +1,2 @@
blacklist nouveau
options nouveau modeset=0
+177
View File
@@ -0,0 +1,177 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>module-nvidia430</Name>
<Homepage>http://www.nvidia.com</Homepage>
<Packager>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Packager>
<License>NVIDIA</License>
<Summary>NVIDIA drivers for GeForce 6xxx and newer GPUs</Summary>
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
<Archive sha1sum="3ff62a457f2570eb67c3ce7fb3800ddcbe54164e" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/430.64/NVIDIA-Linux-x86_64-430.64.run</Archive>
<BuildDependencies>
<Dependency version="5.4.2">kernel-module-headers</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>gtk2-devel</Dependency>
<Dependency>gtk3-devel</Dependency>
</BuildDependencies>
<AdditionalFiles>
<!-- <AdditionalFile owner="root" permission="0644" target="header-fix.patch">header-fix.patch</AdditionalFile> -->
</AdditionalFiles>
</Source>
<Package>
<Name>module-nvidia430</Name>
<IsA>driver</IsA>
<Summary>Kernel module for current NVIDIA graphics driver releases</Summary>
<RuntimeDependencies>
<Dependency version="5.4.2">kernel</Dependency>
<!-- <Dependency release="current">module-nvidia430-userspace</Dependency> -->
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
<Path fileType="data">/etc/modprobe.d</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/modprobe.d/blacklist-nouveau.conf">modprobe.conf</AdditionalFile>
</AdditionalFiles>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<!--<Package>
<Name>module-nvidia430-userspace</Name>
<IsA>data</IsA>
<Summary>Modprobe rules for nvidia430 kernel driver</Summary>
<Files>
<Path fileType="data">/etc/modprobe.d</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/modprobe.d/blacklist-nouveau.conf">modprobe.conf</AdditionalFile>
</AdditionalFiles>
</Package>-->
<!-- <Package>
<Name>nvidia-settings</Name>
<IsA>app:gui</IsA>
<PartOf>hardware.graphics</PartOf>
<Summary>Settings for nvidia430 kernel driver</Summary>
<RuntimeDependencies>
<Dependency>atk</Dependency>
<Dependency>gtk2</Dependency>
<Dependency>gtk3</Dependency>
<Dependency>cairo</Dependency>
<Dependency>glib2</Dependency>
<Dependency>pango</Dependency>
<Dependency>libX11</Dependency>
<Dependency>libXext</Dependency>
<Dependency>gdk-pixbuf</Dependency>
<Dependency version="current">module-nvidia430</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/nvidia-settings</Path>
<Path fileType="man">/usr/share/man/man1/nvidia-settings.1</Path>
<Path fileType="library">/usr/lib/libnvidia-gtk*</Path>
<Path fileType="data">/usr/share/applications</Path>
<Path fileType="data">/usr/share/pixmaps</Path>
<Path fileType="data">/usr/share/nvidia</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/nvidia-settings.desktop">nvidia-settings.desktop</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>nvidia-xconfig</Name>
<IsA>app:console</IsA>
<PartOf>hardware.graphics</PartOf>
<Summary>Xconfig file for nvidia430 kernel driver</Summary>
<RuntimeDependencies>
<Dependency version="current">module-nvidia430</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/nvidia-xconfig</Path>
<Path fileType="man">/usr/share/man/man1/nvidia-xconfig.1</Path>
</Files>
</Package>-->
<Package>
<Name>xorg-video-nvidia430</Name>
<IsA>driver</IsA>
<PartOf>x11.driver</PartOf>
<RuntimeDependencies>
<Dependency>libXext</Dependency>
<Dependency>libX11</Dependency>
<Dependency>mesa</Dependency>
<Dependency>xorg-server</Dependency>
<Dependency>opencl-icd</Dependency>
<Dependency>vulkan</Dependency>
<Dependency version="current">module-nvidia430</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="data">/etc/OpenCL</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/usr/share/X11</Path>
<Path fileType="data">/usr/share/nvidia430</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
</Provides>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<Package>
<Name>xorg-video-nvidia430-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for xorg-video-nvidia430</Summary>
<BuildType>emul32</BuildType>
<BuildDependencies>
<Dependency>libvdpau-32bit</Dependency>
</BuildDependencies>
<RuntimeDependencies>
<Dependency>zlib-32bit</Dependency>
<Dependency>mesa-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>libXext-32bit</Dependency>
<Dependency>opencl-icd-32bit</Dependency>
<Dependency>vulkan-32bit</Dependency>
<Dependency release="current">xorg-video-nvidia430</Dependency>
<Dependency>atk</Dependency>
<Dependency>gtk2</Dependency>
<Dependency>gtk3</Dependency>
<Dependency>cairo</Dependency>
<Dependency>glib2</Dependency>
<Dependency>pango</Dependency>
<Dependency>gdk-pixbuf</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32</Path>
<Path fileType="library">/usr/share/nvidia430/32bit-ld.so.conf</Path>
</Files>
<Provides>
<COMAR script="package-emul32.py">System.Package</COMAR>
</Provides>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<History>
<Update release="1">
<Date>2019-11-03</Date>
<Version>430.64</Version>
<Comment>First release</Comment>
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
</History>
</PISI>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>module-nvidia430</Name>
<Summary xml:lang="tr">GeForce 6xxx ve daha yeni NVIDIA ekran kartları için sürücüler</Summary>
<Description xml:lang="tr">NVIDIA grafik sürücüleri daha iyi 2B/3B başarımı sağlar.</Description>
<Description xml:lang="es">Controladores de kernel nVIDIA y glx para rendimiento optimizado 2d/3d en Linux (Para NV3X o mejor).</Description>
<Summary xml:lang="es">Controladores nVIDIA de kernel y glx para tarjetas NV3 o mejor (Geforce FX o mejor)</Summary>
</Source>
<Package>
<Name>module-nvidia430</Name>
<Summary xml:lang="tr">Güncel NVIDIA grafik sürücüleri için çekirdek modülü</Summary>
</Package>
<Package>
<Name>xorg-video-nvidia430</Name>
<Summary xml:lang="tr">Güncel NVIDIA userspace sürücüleri ve ikili dosyaları</Summary>
</Package>
<Package>
<Name>xorg-video-nvidia430-32bit</Name>
<Summary xml:lang="tr">xorg-video-nvidia-current için 32-bit paylaşımlı kitaplıklar</Summary>
</Package>
</PISI>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+16 -9
View File
@@ -12,7 +12,7 @@
<IsA>app:gui</IsA>
<Summary>Performance analyser tool that makes full use of the Linux performance counter subsystem</Summary>
<Description>perf is a new tool which is used to optimize, validate and measure applications, workloads or the full system through the Linux performance counter subsystem.</Description>
<Archive sha1sum="eb09a8e0483a9ec40bdb767551d0eda27f7c221a" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.tar.gz</Archive>
<Archive sha1sum="8fd0449a462c77f3e5b35848f4bf3c41411702d6" type="targz">https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.gz</Archive>
<BuildDependencies>
<Dependency>libunwind-devel</Dependency>
<Dependency>audit-devel</Dependency>
@@ -38,14 +38,14 @@
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-4.19.49.xz</Patch>
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.14.44/2.mga7/PATCHES/patches/series-->
<!--stable patches-->
<!--CVE-2016-8405-->
<!--other patches-->
<Patch level="1">patches/mageia_4_19/fs-aufs-4.19.patch</Patch>
<Patch level="1">patches/mageia_4_19/fs-aufs-4.19-modular.patch</Patch>
<Patch level="1">patches/mageia_4_14/fs-aufs-include-vmalloc.patch</Patch>
<Patch level="1" compressionType="xz">patches/linux/patch-5.4.6.xz</Patch>
<!-- Mageia Linux patches-->
<Patch level="1">patches/mageia/fs-aufs-5.4.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs-5.4-modular.patch</Patch>
<Patch level="1">patches/mageia/fs-vboxsf.patch</Patch>
<!-- Build fix -->
<Patch level="1">patches/pisilinux/kernel-5.4-build-fix.patch</Patch>
</Patches>
</Source>
@@ -77,6 +77,13 @@
</Files>
</Package>
<History>
<Update release="17">
<Date>2019-12-28</Date>
<Version>5.4.6</Version>
<Comment>Version bump.</Comment>
<Name>Idris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="16">
<Date>2019-06-09</Date>
<Version>4.19.49</Version>