diff --git a/kernel/drivers/module-nvidia-current/actions.py b/kernel/drivers/module-nvidia-current/actions.py
index 5d5f6f72e4..6352f6b2e4 100644
--- a/kernel/drivers/module-nvidia-current/actions.py
+++ b/kernel/drivers/module-nvidia-current/actions.py
@@ -28,7 +28,8 @@ def setup():
shelltools.echo("ld.so.conf", nvlibdir)
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
-
+
+ # dkms
shelltools.copytree("kernel", "kernel-dkms")
shelltools.unlink("kernel-dkms/dkms.conf")
shelltools.move("dkms.conf", "kernel-dkms/")
diff --git a/kernel/drivers/module-nvidia-current/pspec.xml b/kernel/drivers/module-nvidia-current/pspec.xml
index 3356c8ee7f..d333923c99 100644
--- a/kernel/drivers/module-nvidia-current/pspec.xml
+++ b/kernel/drivers/module-nvidia-current/pspec.xml
@@ -176,6 +176,7 @@
module-nvidia-current
+ nvidia390-dkms
@@ -183,7 +184,7 @@
2020-01-08
440.44
- Add dkms.
+ Add dkms support
Marcin Bojara
marcin.bojara@gmail.com
diff --git a/kernel/drivers/module-nvidia390/actions.py b/kernel/drivers/module-nvidia390/actions.py
old mode 100755
new mode 100644
index 5c2c694ebd..e65999870a
--- a/kernel/drivers/module-nvidia390/actions.py
+++ b/kernel/drivers/module-nvidia390/actions.py
@@ -14,7 +14,7 @@ KDIR = kerneltools.getKernelVersion()
NoStrip = ["/lib/modules"]
version = get.srcVERSION()
-driver_dir_name = "nvidia-current"
+driver_dir_name = "nvidia390"
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")
@@ -41,6 +41,13 @@ def setup():
shelltools.echo("ld.so.conf", nvlibdir)
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
+ # dkms
+ shelltools.copytree("kernel", "kernel-dkms")
+ shelltools.unlink("kernel-dkms/dkms.conf")
+ shelltools.move("dkms.conf", "kernel-dkms/")
+ pisitools.dosed("kernel-dkms/Makefile", "CC \?= cc", "CC = /usr/bin/cc")
+ pisitools.dosed("kernel-dkms/dkms.conf", "%VERSION%", version)
+
def build():
# We don't need kernel module for emul32 build
if get.buildTYPE() == 'emul32':
@@ -82,10 +89,13 @@ def install():
pisitools.dobin("nvidia-persistenced")
pisitools.doman("nvidia-persistenced.1.gz")
+ # dkms
+ pisitools.insinto("/usr/src/nvidia-%s" % version, "kernel-dkms/*")
+
### 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.2.0" % nvlibdir)
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1" % nvlibdir)
pisitools.dolib("libGL.so.%s" % version, libdir)
diff --git a/kernel/drivers/module-nvidia390/comar/package-emul32.py b/kernel/drivers/module-nvidia390/comar/package-emul32.py
deleted file mode 100755
index 055939ea6b..0000000000
--- a/kernel/drivers/module-nvidia390/comar/package-emul32.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/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
diff --git a/kernel/drivers/module-nvidia390/comar/package.py b/kernel/drivers/module-nvidia390/comar/package.py
deleted file mode 100755
index c3fc7720e4..0000000000
--- a/kernel/drivers/module-nvidia390/comar/package.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/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
diff --git a/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch b/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-x86_64-390.87-kernel-4.19.patch
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch b/kernel/drivers/module-nvidia390/files/NVIDIA-Linux-x86_64-390.87-kernel-4.20.patch
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/dkms.conf b/kernel/drivers/module-nvidia390/files/dkms.conf
new file mode 100644
index 0000000000..b6f93eb7bb
--- /dev/null
+++ b/kernel/drivers/module-nvidia390/files/dkms.conf
@@ -0,0 +1,19 @@
+PACKAGE_NAME="nvidia"
+PACKAGE_VERSION="%VERSION%"
+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"
diff --git a/kernel/drivers/module-nvidia390/files/linux-5.1.patch b/kernel/drivers/module-nvidia390/files/linux-5.1.patch
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/modprobe.conf b/kernel/drivers/module-nvidia390/files/modprobe.conf
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/nvidia-settings.desktop b/kernel/drivers/module-nvidia390/files/nvidia-settings.desktop
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/package-emul32.py b/kernel/drivers/module-nvidia390/files/package-emul32.py
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/package.py b/kernel/drivers/module-nvidia390/files/package.py
old mode 100755
new mode 100644
diff --git a/kernel/drivers/module-nvidia390/files/xorg.conf b/kernel/drivers/module-nvidia390/files/xorg.conf
new file mode 100644
index 0000000000..9c36f59b54
--- /dev/null
+++ b/kernel/drivers/module-nvidia390/files/xorg.conf
@@ -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
diff --git a/kernel/drivers/module-nvidia390/pspec.xml b/kernel/drivers/module-nvidia390/pspec.xml
old mode 100755
new mode 100644
index 9954037b64..ca8da17225
--- a/kernel/drivers/module-nvidia390/pspec.xml
+++ b/kernel/drivers/module-nvidia390/pspec.xml
@@ -13,6 +13,9 @@
NVIDIA graphics drivers provide optimized 2D/3D performance.
http://us.download.nvidia.com/XFree86/Linux-x86/390.132/NVIDIA-Linux-x86-390.132.run
http://us.download.nvidia.com/XFree86/Linux-x86_64/390.132/NVIDIA-Linux-x86_64-390.132.run
+
+ dkms.conf
+
kernel-module-headers
libX11-devel
@@ -39,17 +42,21 @@
noDelta
+
+ nvidia390-dkms
+
-
-
nvidia-xconfig390
app:console
hardware.graphics
Xconfig file for nvidia390 kernel driver
- module-nvidia-current
+
+ module-nvidia390
+ nvidia390-dkms
+
/usr/bin/nvidia-xconfig
@@ -66,25 +73,25 @@
libX11
mesa
xorg-server
- module-nvidia390
+
+ module-nvidia390
+ nvidia390-dkms
+
-
+
xorg-video-nvidia-current
xorg-video-nvidia304
- xorg-video-nvidia340
+ xorg-video-nvidia340
/etc/OpenCL
/usr/bin
/usr/lib
/usr/share/X11
- /usr/share/nvidia-current
+ /usr/share/nvidia390
/usr/share/doc
/usr/share/man
-
- System.Package
-
noDelta
@@ -112,30 +119,58 @@
pango
gdk-pixbuf
-
+
xorg-video-nvidia-current-32bit
xorg-video-nvidia304-32bit
- xorg-video-nvidia340-32bit
+ xorg-video-nvidia340-32bit
/usr/lib32
- /usr/share/nvidia-current/32bit-ld.so.conf
+ /usr/share/nvidia390/32bit-ld.so.conf
-
- System.Package
-
noDelta
+
+ nvidia390-dkms
+ driver
+ NVIDIA driver sources for linux
+
+ dkms
+
+
+ /etc/modprobe.d/nvidia390-dkms.conf
+ /usr/src/nvidia*
+
+
+ modprobe.conf
+ xorg.conf
+
+
+ noDelta
+
+
+ module-nvidia390
+ nvidia-current-dkms
+
+
+
-
+
+ 2020-01-09
+ 390.132
+ Add dkms support
+ Marcin Bojara
+ marcin.bojara@gmail.com
+
+
2019-12-12
390.132
First release
İdris Kalp
idriskalp@gmail.com
-
+
diff --git a/kernel/drivers/module-nvidia390/translations.xml b/kernel/drivers/module-nvidia390/translations.xml
old mode 100755
new mode 100644