Merge pull request #7359 from marcin-/master

nvidia-current: add dkms
This commit is contained in:
marcin
2020-01-07 23:09:51 +01:00
committed by GitHub
10 changed files with 262 additions and 378 deletions
+164 -183
View File
@@ -25,21 +25,13 @@ 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)
shelltools.copytree("kernel", "kernel-dkms")
shelltools.unlink("kernel-dkms/dkms.conf")
pisitools.dosed("kernel-dkms/Makefile", "CC \?= cc", "CC = /usr/bin/cc")
def build():
# We don't need kernel module for emul32 build
@@ -57,7 +49,7 @@ 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")
@@ -84,185 +76,174 @@ def install():
pisitools.dobin("nvidia-settings")
pisitools.doman("nvidia-settings.1.gz")
# dkms
pisitools.insinto("/usr/src/nvidia-%s" % version, "kernel-dkms/*")
### Libraries
# 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("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)
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("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)
# 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)
# 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.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))
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)
# VDPAU driver
pisitools.dolib("libvdpau_nvidia.so.%s" % version, "%s/vdpau" % libdir)
pisitools.dosym("libvdpau_nvidia.so.%s" % version, "%s/libvdpau_nvidia.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)
# 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.dolib("libnvidia-gtk2.so.%s" % version, libdir)
pisitools.dolib("libnvidia-gtk3.so.%s" % version, 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))
# 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/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.dolib("libnvidia-gtk2.so.%s" % version, libdir)
pisitools.dolib("libnvidia-gtk3.so.%s" % version, libdir)
# Exit time for emul32 build
#if get.buildTYPE() == 'emul32':
@@ -1,25 +0,0 @@
#!/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
@@ -1,26 +0,0 @@
#!/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
@@ -1,50 +0,0 @@
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(
@@ -1,43 +0,0 @@
--- 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:
@@ -0,0 +1,19 @@
PACKAGE_NAME="nvidia"
PACKAGE_VERSION="440.44"
AUTOINSTALL="yes"
# By default, DKMS will add KERNELRELEASE to the make command line; however,
# this will cause the kernel module build to infer that it was invoked via
# Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting
# the 'make' command name to suppress this behavior.
MAKE[0]="'make' -j5 NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=${kernelver} modules"
# The list of kernel modules was generated by nvidia-installer at runtime.
BUILT_MODULE_NAME[0]="nvidia"
DEST_MODULE_LOCATION[0]="/extra"
BUILT_MODULE_NAME[1]="nvidia-uvm"
DEST_MODULE_LOCATION[1]="/extra"
BUILT_MODULE_NAME[2]="nvidia-modeset"
DEST_MODULE_LOCATION[2]="/extra"
BUILT_MODULE_NAME[3]="nvidia-drm"
DEST_MODULE_LOCATION[3]="/extra"
View File
View File
@@ -0,0 +1,8 @@
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
+71 -51
View File
@@ -11,11 +11,7 @@
<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="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>-->
<Archive sha1sum="fb412c254b9a9f42b7837691368aa883df7c23f1" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/440.44/NVIDIA-Linux-x86_64-440.44.run</Archive>
<BuildDependencies>
<Dependency version="5.4.6">kernel-module-headers</Dependency>
<Dependency>libX11-devel</Dependency>
@@ -30,7 +26,6 @@
<Summary>Kernel module for current NVIDIA graphics driver releases</Summary>
<RuntimeDependencies>
<Dependency version="5.4.6">kernel</Dependency>
<!-- <Dependency release="current">module-nvidia-current-userspace</Dependency> -->
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -42,20 +37,11 @@
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
<Conflicts>
<Package>nvidia-current-dkms</Package>
</Conflicts>
</Package>
<!--<Package>
<Name>module-nvidia-current-userspace</Name>
<IsA>data</IsA>
<Summary>Modprobe rules for nvidia-current 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>
@@ -71,8 +57,11 @@
<Dependency>libX11</Dependency>
<Dependency>libXext</Dependency>
<Dependency>gdk-pixbuf</Dependency>
<Dependency version="current">module-nvidia-current</Dependency>
</RuntimeDependencies>
<AnyDependency>
<Dependency version="current">module-nvidia-current</Dependency>
<Dependency>nvidia-current-dkms</Dependency>
</AnyDependency>
<Files>
<Path fileType="executable">/usr/bin/nvidia-settings</Path>
<Path fileType="man">/usr/share/man/man1/nvidia-settings.1</Path>
@@ -91,9 +80,10 @@
<IsA>app:console</IsA>
<PartOf>hardware.graphics</PartOf>
<Summary>Xconfig file for nvidia-current kernel driver</Summary>
<RuntimeDependencies>
<AnyDependency>
<Dependency version="current">module-nvidia-current</Dependency>
</RuntimeDependencies>
<Dependency>nvidia-current-dkms</Dependency>
</AnyDependency>
<Files>
<Path fileType="executable">/usr/bin/nvidia-xconfig</Path>
<Path fileType="man">/usr/share/man/man1/nvidia-xconfig.1</Path>
@@ -109,8 +99,11 @@
<Dependency>libX11</Dependency>
<Dependency>mesa</Dependency>
<Dependency>xorg-server</Dependency>
<Dependency version="current">module-nvidia-current</Dependency>
</RuntimeDependencies>
<AnyDependency>
<Dependency version="current">module-nvidia-current</Dependency>
<Dependency>nvidia-current-dkms</Dependency>
</AnyDependency>
<Files>
<Path fileType="data">/etc/OpenCL</Path>
<Path fileType="executable">/usr/bin</Path>
@@ -119,51 +112,78 @@
<Path fileType="data">/usr/share/nvidia-current</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="data">/usr/share/glvnd/egl_vendor.d/10_nvidia.json</Path>
<Path fileType="config">/etc/vulkan/icd.d</Path>
</Files>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
</Provides>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package>
<!--Package>
<Name>xorg-video-nvidia-current-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for xorg-video-nvidia-current</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-nvidia-current</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/nvidia-current/32bit-ld.so.conf</Path>
</Files>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
</Package-->
<Package>
<Name>xorg-video-nvidia-current-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for xorg-video-nvidia-current</Summary>
<BuildType>emul32</BuildType>
<BuildDependencies>
<Dependency>libvdpau-32bit</Dependency>
</BuildDependencies>
<Name>nvidia-current-dkms</Name>
<IsA>driver</IsA>
<Summary>NVIDIA driver sources for linux</Summary>
<RuntimeDependencies>
<Dependency>zlib-32bit</Dependency>
<Dependency>mesa-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>libXext-32bit</Dependency>
<Dependency release="current">xorg-video-nvidia-current</Dependency>
<Dependency>atk</Dependency>
<Dependency>gtk2</Dependency>
<Dependency>gtk3</Dependency>
<Dependency>cairo</Dependency>
<Dependency>glib2</Dependency>
<Dependency>pango</Dependency>
<Dependency>gdk-pixbuf</Dependency>
<Dependency>dkms</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32</Path>
<Path fileType="library">/usr/share/nvidia-current/32bit-ld.so.conf</Path>
<Path fileType="config">/etc/modprobe.d/nvidia-current-dkms.conf</Path>
<Path fileType="data">/usr/src/nvidia-440.44</Path>
</Files>
<Provides>
<COMAR script="package-emul32.py">System.Package</COMAR>
</Provides>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/modprobe.d/nvidia-current-dkms.conf">modprobe.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/src/nvidia-440.44/dkms.conf">dkms.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf">xorg.conf</AdditionalFile>
</AdditionalFiles>
<BuildFlags>
<Flag>noDelta</Flag>
</BuildFlags>
<Conflicts>
<Package>module-nvidia-current</Package>
</Conflicts>
</Package>
<History>
<Update release="27">
<Update release="28">
<Date>2020-01-07</Date>
<Version>440.44</Version>
<Comment>Add dkms.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin.bojara@gmail.com</Email>
</Update>
<Update release="27">
<Date>2019-12-28</Date>
<Version>440.44</Version>
<Comment>Version bump</Comment>
@@ -177,7 +197,7 @@
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="25">
<Update release="25">
<Date>2019-06-09</Date>
<Version>390.116</Version>
<Comment>Rebuild</Comment>