summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathon Fernyhough2021-12-18 14:42:45 +0000
committerJonathon Fernyhough2021-12-18 14:42:45 +0000
commit384f464033f3a90727fcfac2f16c3fb65e18ebf4 (patch)
tree0d2d4d1533467d87938fe37477a16d6019a09e26
parent7d06572661758d8285c4175c439bad8c0b0eb778 (diff)
downloadaur-384f464033f3a90727fcfac2f16c3fb65e18ebf4.tar.gz
Upstream 390.147. Merge from nvidia-utils.
-rw-r--r--.SRCINFO14
-rw-r--r--PKGBUILD119
-rw-r--r--kernel-5.14.patch82
-rw-r--r--nvidia-390xx.rules6
4 files changed, 71 insertions, 150 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4a5b4dbffcbe..44030e4fee74 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,21 +1,21 @@
pkgbase = nvidia-390xx-utils
- pkgver = 390.144
- pkgrel = 3
+ pkgver = 390.147
+ pkgrel = 1
url = https://www.nvidia.com/
arch = x86_64
license = custom
options = !strip
source = nvidia-drm-outputclass.conf
source = nvidia-390xx-utils.sysusers
+ source = nvidia-390xx.rules
source = 30-nvidia-ignoreabi.conf
- source = https://us.download.nvidia.com/XFree86/Linux-x86_64/390.144/NVIDIA-Linux-x86_64-390.144-no-compat32.run
- source = kernel-5.14.patch
+ source = https://us.download.nvidia.com/XFree86/Linux-x86_64/390.147/NVIDIA-Linux-x86_64-390.147.run
source = kernel-4.16.patch
b2sums = 8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9
b2sums = c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be
+ b2sums = 67e32932eeddda8fef667d25c34faf7b3a02f01cf9c15a97e5613bd44a0e8dcf7396e25399a52701f55dd18054c689720f237bb07d5bd580394d8dc8c9d05534
b2sums = 9fde74e26f7e249e9492cbae1c9932ef472625ccf14110130317872c41bb5149be6fe167c7bcccc51f6b1afbbd0b3c6afddd49fbc5f2278968a77d62b351d16f
- b2sums = 093d3f4779a904a9bbbc0d10e1c2b150665d6515bc9bba9fdaeb06c09be4f1029aa742058635f9309d4dca7f5e8e3fcdbe49f74ed6035075315ed3555b648404
- b2sums = 6aa23c223bf46c1fb792574489c169b0a2855c812bed10021d2bb2adedd8c8d82f5ce36402b10782a515457307ec6d434a1af7d1d9ae7c9765aab4a8f127f0f9
+ b2sums = a8085c9abc1c31251788a8f5abdc2090c9085b3028e364184244bbf24d822dc3266877c88b30f403507fa2dd511c68ec67e1f188d6b0f1f4d7d792881d5253fc
b2sums = a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05
pkgname = nvidia-390xx-utils
@@ -48,6 +48,6 @@ pkgname = opencl-nvidia-390xx
pkgname = nvidia-390xx-dkms
pkgdesc = NVIDIA drivers - module sources
depends = dkms
- depends = nvidia-390xx-utils=390.144
+ depends = nvidia-390xx-utils=390.147
depends = libglvnd
provides = NVIDIA-MODULE
diff --git a/PKGBUILD b/PKGBUILD
index 17e5ef2c9ba8..bcc2818fd2d9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,24 +6,24 @@
pkgbase=nvidia-390xx-utils
pkgname=('nvidia-390xx-utils' 'opencl-nvidia-390xx' 'nvidia-390xx-dkms')
-pkgver=390.144
-pkgrel=3
+pkgver=390.147
+pkgrel=1
arch=('x86_64')
url="https://www.nvidia.com/"
license=('custom')
options=('!strip')
-_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
+_pkg="NVIDIA-Linux-x86_64-${pkgver}"
source=('nvidia-drm-outputclass.conf'
'nvidia-390xx-utils.sysusers'
+ 'nvidia-390xx.rules'
'30-nvidia-ignoreabi.conf'
"https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run"
- kernel-5.14.patch
kernel-4.16.patch)
b2sums=('8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9'
'c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be'
+ '67e32932eeddda8fef667d25c34faf7b3a02f01cf9c15a97e5613bd44a0e8dcf7396e25399a52701f55dd18054c689720f237bb07d5bd580394d8dc8c9d05534'
'9fde74e26f7e249e9492cbae1c9932ef472625ccf14110130317872c41bb5149be6fe167c7bcccc51f6b1afbbd0b3c6afddd49fbc5f2278968a77d62b351d16f'
- '093d3f4779a904a9bbbc0d10e1c2b150665d6515bc9bba9fdaeb06c09be4f1029aa742058635f9309d4dca7f5e8e3fcdbe49f74ed6035075315ed3555b648404'
- '6aa23c223bf46c1fb792574489c169b0a2855c812bed10021d2bb2adedd8c8d82f5ce36402b10782a515457307ec6d434a1af7d1d9ae7c9765aab4a8f127f0f9'
+ 'a8085c9abc1c31251788a8f5abdc2090c9085b3028e364184244bbf24d822dc3266877c88b30f403507fa2dd511c68ec67e1f188d6b0f1f4d7d792881d5253fc'
'a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05')
create_links() {
@@ -47,10 +47,6 @@ prepare() {
# From loqs via https://bugs.archlinux.org/task/58074
patch -Np1 -i ../kernel-4.16.patch
- # From Stefan Dirsch
- # https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.14.patch?rev=233
- patch -Np1 -i ../kernel-5.14.patch
-
cd kernel
sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
sed -i 's/__JOBS/`nproc`/' dkms.conf
@@ -77,9 +73,9 @@ package_opencl-nvidia-390xx() {
cd "${_pkg}"
# OpenCL
- install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd"
- install -D -m755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}"
- install -D -m755 "libnvidia-opencl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opencl.so.${pkgver}"
+ install -Dm644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd"
+ install -Dm755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}"
+ install -Dm755 "libnvidia-opencl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opencl.so.${pkgver}"
create_links
@@ -97,9 +93,6 @@ package_nvidia-390xx-dkms() {
install -dm 755 "${pkgdir}"/usr/src
cp -dr --no-preserve='ownership' kernel "${pkgdir}/usr/src/nvidia-${pkgver}"
- echo "blacklist nouveau" |
- install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
-
install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE"
}
@@ -123,99 +116,103 @@ package_nvidia-390xx-utils() {
# for hints on what needs to be installed where.
# X driver
- install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
+ install -Dm755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
# GLX extension module for X
- install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.${pkgver}"
+ install -Dm755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.${pkgver}"
# Ensure that X finds glx
ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.1"
ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so"
- # GLVND
- install -D -m755 "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
- install -D -m755 "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
+ install -Dm755 "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
- # EGL and OpenGL ES libraries
- install -D -m755 "libGLESv1_CM_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM_nvidia.so.${pkgver}"
- install -D -m755 "libGLESv2_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2_nvidia.so.${pkgver}"
- install -D -m644 "10_nvidia.json" "${pkgdir}/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
+ # OpenGL libraries
+ install -Dm755 "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
+ install -Dm755 "libGLESv1_CM_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM_nvidia.so.${pkgver}"
+ install -Dm755 "libGLESv2_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2_nvidia.so.${pkgver}"
+ install -Dm644 "10_nvidia.json" "${pkgdir}/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
# OpenGL core library
- install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
- install -D -m755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
- install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
+ install -Dm755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
+ install -Dm755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
+ install -Dm755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
# misc
- install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}"
- install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
- install -D -m755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}"
- install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
- install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
+ install -Dm755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}"
+ install -Dm755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
+ install -Dm755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}"
+ install -Dm755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
+ install -Dm755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
# Vulkan ICD
- install -D -m644 "nvidia_icd.json.template" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json"
+ install -Dm644 "nvidia_icd.json.template" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json"
# VDPAU
- install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
+ install -Dm755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
# nvidia-tls library
- install -D -m755 "libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
- install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/tls/libnvidia-tls.so.${pkgver}"
+ install -Dm755 "libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
+ install -Dm755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/tls/libnvidia-tls.so.${pkgver}"
# CUDA
- install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
- install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
+ install -Dm755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
+ install -Dm755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
# PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA)
- install -D -m755 "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ptxjitcompiler.so.${pkgver}"
+ install -Dm755 "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ptxjitcompiler.so.${pkgver}"
# Fat (multiarchitecture) binary loader
- install -D -m755 "libnvidia-fatbinaryloader.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fatbinaryloader.so.${pkgver}"
+ install -Dm755 "libnvidia-fatbinaryloader.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fatbinaryloader.so.${pkgver}"
# DEBUG
- install -D -m755 nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
+ install -Dm755 nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
# nvidia-xconfig
- install -D -m755 nvidia-xconfig "${pkgdir}/usr/bin/nvidia-xconfig"
- install -D -m644 nvidia-xconfig.1.gz "${pkgdir}/usr/share/man/man1/nvidia-xconfig.1.gz"
+ install -Dm755 nvidia-xconfig "${pkgdir}/usr/bin/nvidia-xconfig"
+ install -Dm644 nvidia-xconfig.1.gz "${pkgdir}/usr/share/man/man1/nvidia-xconfig.1.gz"
# nvidia-bug-report
- install -D -m755 nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh"
+ install -Dm755 nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh"
# nvidia-smi
- install -D -m755 nvidia-smi "${pkgdir}/usr/bin/nvidia-smi"
- install -D -m644 nvidia-smi.1.gz "${pkgdir}/usr/share/man/man1/nvidia-smi.1.gz"
+ install -Dm755 nvidia-smi "${pkgdir}/usr/bin/nvidia-smi"
+ install -Dm644 nvidia-smi.1.gz "${pkgdir}/usr/share/man/man1/nvidia-smi.1.gz"
# nvidia-cuda-mps
- install -D -m755 nvidia-cuda-mps-server "${pkgdir}/usr/bin/nvidia-cuda-mps-server"
- install -D -m755 nvidia-cuda-mps-control "${pkgdir}/usr/bin/nvidia-cuda-mps-control"
- install -D -m644 nvidia-cuda-mps-control.1.gz "${pkgdir}/usr/share/man/man1/nvidia-cuda-mps-control.1.gz"
+ install -Dm755 nvidia-cuda-mps-server "${pkgdir}/usr/bin/nvidia-cuda-mps-server"
+ install -Dm755 nvidia-cuda-mps-control "${pkgdir}/usr/bin/nvidia-cuda-mps-control"
+ install -Dm644 nvidia-cuda-mps-control.1.gz "${pkgdir}/usr/share/man/man1/nvidia-cuda-mps-control.1.gz"
# nvidia-modprobe
# This should be removed if nvidia fixed their uvm module!
- install -D -m4755 nvidia-modprobe "${pkgdir}/usr/bin/nvidia-modprobe"
- install -D -m644 nvidia-modprobe.1.gz "${pkgdir}/usr/share/man/man1/nvidia-modprobe.1.gz"
+ install -Dm4755 nvidia-modprobe "${pkgdir}/usr/bin/nvidia-modprobe"
+ install -Dm644 nvidia-modprobe.1.gz "${pkgdir}/usr/share/man/man1/nvidia-modprobe.1.gz"
# nvidia-persistenced
- install -D -m755 nvidia-persistenced "${pkgdir}/usr/bin/nvidia-persistenced"
- install -D -m644 nvidia-persistenced.1.gz "${pkgdir}/usr/share/man/man1/nvidia-persistenced.1.gz"
- install -D -m644 nvidia-persistenced-init/systemd/nvidia-persistenced.service.template "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
+ install -Dm755 nvidia-persistenced "${pkgdir}/usr/bin/nvidia-persistenced"
+ install -Dm644 nvidia-persistenced.1.gz "${pkgdir}/usr/share/man/man1/nvidia-persistenced.1.gz"
+ install -Dm644 nvidia-persistenced-init/systemd/nvidia-persistenced.service.template "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
sed -i 's/__USER__/nvidia-persistenced/' "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
# application profiles
- install -D -m644 nvidia-application-profiles-${pkgver}-rc "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-rc"
- install -D -m644 nvidia-application-profiles-${pkgver}-key-documentation "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-key-documentation"
+ install -Dm644 nvidia-application-profiles-${pkgver}-rc "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-rc"
+ install -Dm644 nvidia-application-profiles-${pkgver}-key-documentation "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-key-documentation"
- install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/nvidia-utils/LICENSE"
- install -D -m644 README.txt "${pkgdir}/usr/share/doc/nvidia/README"
- install -D -m644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/nvidia-utils/LICENSE"
+ install -Dm644 README.txt "${pkgdir}/usr/share/doc/nvidia/README"
+ install -Dm644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog"
cp -r html "${pkgdir}/usr/share/doc/nvidia/"
ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils"
# distro specific files must be installed in /usr/share/X11/xorg.conf.d
- install -D -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
+ install -Dm644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
install -Dm644 "${srcdir}/nvidia-390xx-utils.sysusers" "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf"
+ install -Dm644 "${srcdir}/nvidia-390xx.rules" "$pkgdir"/usr/lib/udev/rules.d/60-nvidia-390xx.rules
+
+ echo "blacklist nouveau" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
+ echo "nvidia-uvm" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
+
create_links
}
diff --git a/kernel-5.14.patch b/kernel-5.14.patch
deleted file mode 100644
index a4242ec77f93..000000000000
--- a/kernel-5.14.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-Taken from https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.14.patch?rev=233
-Credit to Stefan Dirsch <sndirsch@suse.com>
-
-diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/conftest.sh NVIDIA-Linux-x86_64-390.144/kernel/conftest.sh
---- NVIDIA-Linux-x86_64-390.144/kernel.orig/conftest.sh 2021-08-31 16:58:57.799629833 +0200
-+++ NVIDIA-Linux-x86_64-390.144/kernel/conftest.sh 2021-08-31 18:00:09.257825534 +0200
-@@ -4493,6 +4493,30 @@ compile_test() {
- fi
- ;;
-
-+ drm_device_has_pdev)
-+ #
-+ # Determine if the 'drm_device' structure has a 'pdev' field.
-+ #
-+ # Removed by commit b347e04452ff ("drm: Remove pdev field from
-+ # struct drm_device") in v5.14-rc1.
-+ #
-+ CODE="
-+ #if defined(NV_DRM_DRMP_H_PRESENT)
-+ #include <drm/drmP.h>
-+ #endif
-+
-+ #if defined(NV_DRM_DRM_DEVICE_H_PRESENT)
-+ #include <drm/drm_device.h>
-+ #endif
-+
-+ int conftest_drm_device_has_pdev(void) {
-+ return offsetof(struct drm_device, pdev);
-+ }"
-+
-+ compile_check_conftest "$CODE" "NV_DRM_DEVICE_HAS_PDEV" "" "types"
-+ ;;
-+
-+
- esac
- }
-
-diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/nvlink_linux.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia/nvlink_linux.c
---- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/nvlink_linux.c 2021-08-31 16:58:57.787629590 +0200
-+++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia/nvlink_linux.c 2021-08-31 17:51:49.207744327 +0200
-@@ -597,7 +597,7 @@ void NVLINK_API_CALL nvlink_sleep(unsign
- // the requested timeout has expired, loop until less
- // than a jiffie of the desired delay remains.
- //
-- current->state = TASK_INTERRUPTIBLE;
-+ set_current_state(TASK_INTERRUPTIBLE);
- do
- {
- schedule_timeout(jiffies);
-diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/os-interface.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia/os-interface.c
---- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/os-interface.c 2021-08-31 16:58:57.787629590 +0200
-+++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia/os-interface.c 2021-08-31 17:51:58.043922420 +0200
-@@ -580,7 +580,7 @@ NV_STATUS NV_API_CALL os_delay(NvU32 Mil
- // the requested timeout has expired, loop until less
- // than a jiffie of the desired delay remains.
- //
-- current->state = TASK_INTERRUPTIBLE;
-+ set_current_state(TASK_INTERRUPTIBLE);
- do
- {
- schedule_timeout(jiffies);
-diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm-drv.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm-drv.c
---- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm-drv.c 2021-08-31 16:58:57.783629508 +0200
-+++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm-drv.c 2021-08-31 17:56:41.345633279 +0200
-@@ -811,7 +811,9 @@ static void nv_drm_register_drm_device(c
-
- dev->dev_private = nv_dev;
- nv_dev->dev = dev;
-+#if defined(NV_DRM_DEVICE_HAS_PDEV)
- dev->pdev = pdev;
-+#endif
-
- /* Register DRM device to DRM sub-system */
-
-diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm.Kbuild NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm.Kbuild
---- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm.Kbuild 2021-08-31 16:58:57.783629508 +0200
-+++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm.Kbuild 2021-08-31 17:53:18.265539346 +0200
-@@ -102,3 +102,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_dr
- NV_CONFTEST_TYPE_COMPILE_TESTS += drm_crtc_atomic_check_has_atomic_state_arg
- NV_CONFTEST_TYPE_COMPILE_TESTS += drm_gem_object_vmap_has_map_arg
- NV_CONFTEST_TYPE_COMPILE_TESTS += drm_plane_atomic_check_has_atomic_state_arg
-+NV_CONFTEST_TYPE_COMPILE_TESTS += drm_device_has_pdev
diff --git a/nvidia-390xx.rules b/nvidia-390xx.rules
new file mode 100644
index 000000000000..97218dfd31f7
--- /dev/null
+++ b/nvidia-390xx.rules
@@ -0,0 +1,6 @@
+# Make sure device nodes are present even when the DDX is not started for the Wayland/EGLStream case
+KERNEL=="nvidia", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
+KERNEL=="nvidia", RUN+="/usr/bin/bash -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do /usr/bin/mknod -Z -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; done'"
+KERNEL=="nvidia_modeset", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
+KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
+KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'"