* [Buildroot] [PATCH] package/nvidia-driver: bump version to 550.78
@ 2024-05-13 15:59 Nick Whitlock
2024-05-13 18:03 ` [Buildroot] [External] - " Vincent Fazio
0 siblings, 1 reply; 8+ messages in thread
From: Nick Whitlock @ 2024-05-13 15:59 UTC (permalink / raw)
To: buildroot; +Cc: Yann E. MORIN, Nick Whitlock
The NVIDIA drivers now have 64-bit and 32-bit versions bundled
into one .run file.
A configuration value was also added to check if the user wants
to install GTK integration for the NVIDIA driver.
The legacy version of libGL.so was removed in favor of the
vendor neutral version.
This has been confirmed to work on kernel 6.1.4.
Signed-off-by: Nick Whitlock <nick.whitlock@eizo.com>
---
package/nvidia-driver/Config.in | 3 ++
package/nvidia-driver/nvidia-driver.hash | 7 ++-
package/nvidia-driver/nvidia-driver.mk | 69 +++++++++++++-----------
3 files changed, 43 insertions(+), 36 deletions(-)
diff --git a/package/nvidia-driver/Config.in b/package/nvidia-driver/Config.in
index a8617a939b..0fcce93e28 100644
--- a/package/nvidia-driver/Config.in
+++ b/package/nvidia-driver/Config.in
@@ -90,4 +90,7 @@ config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
provides Unified Memory access to the GPU and CPU memories for
CUDA programs.
+config BR2_PACKAGE_NVIDIA_DRIVER_GTK
+ bool "nvidia GTK acceleration"
+
endif # BR2_PACKAGE_NVIDIA_DRIVER
diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash
index 620112e6c8..06e3314d53 100644
--- a/package/nvidia-driver/nvidia-driver.hash
+++ b/package/nvidia-driver/nvidia-driver.hash
@@ -1,4 +1,3 @@
-# Locally computed
-sha256 94e399b459659c12b1344e8c8f4f5eee1ed5915ff459fc8bb831c9e1d44677db NVIDIA-Linux-x86-390.151.run
-sha256 6e4fd2258465f5d5527fe80abd46de925a30348b4a84658498a6d75caf42c47c NVIDIA-Linux-x86_64-390.151-no-compat32.run
-sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526 LICENSE
+# Locally computed:
+sha256 34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf73 NVIDIA-Linux-x86_64-550.78.run
+sha256 5ac626496a6388d37cdd53e0300525267a4b8c89fb5980da060783afd561faf7 LICENSE
diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk
index f1217b00aa..9ea97a2a9f 100644
--- a/package/nvidia-driver/nvidia-driver.mk
+++ b/package/nvidia-driver/nvidia-driver.mk
@@ -4,10 +4,9 @@
#
################################################################################
-NVIDIA_DRIVER_VERSION = 390.151
-NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64)
-NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION)
-NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run
+NVIDIA_DRIVER_VERSION = 550.78
+NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-x86_64/$(NVIDIA_DRIVER_VERSION)
+NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86_64-$(NVIDIA_DRIVER_VERSION).run
NVIDIA_DRIVER_LICENSE = NVIDIA Software License
NVIDIA_DRIVER_LICENSE_FILES = LICENSE
NVIDIA_DRIVER_REDISTRIBUTE = NO
@@ -23,30 +22,15 @@ ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y)
NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers xlib_libX11 xlib_libXext
NVIDIA_DRIVER_PROVIDES += libgl libegl libgles
-# libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library; it
-# has been replaced with libGL.so.1.0.0. Installing both is technically
-# possible, but great care must be taken to ensure they do not conflict,
-# so that EGL still works. The legacy library exposes an NVidia-specific
-# API, so it should not be needed, except for legacy, binary-only
-# applications (in other words: we don't care).
-#
-# libGL.so.1.0.0 is the new vendor-neutral library, aimed at replacing
-# the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The latter contains
-# NVidia extensions (which is deemed bad now), while the former follows
-# the newly-introduced vendor-neutral "dispatching" API/ABI:
-# https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-opengl-abi-proposal.txt
-# However, this is not very useful to us, as we don't support multiple
-# GL providers at the same time on the system, which this proposal is
-# aimed at supporting.
-#
-# So we only install the legacy library for now.
NVIDIA_DRIVER_LIBS_GL = \
libGLX.so.0 \
- libGL.so.$(NVIDIA_DRIVER_VERSION) \
+ libglxserver_nvidia.so.$(NVIDIA_DRIVER_VERSION) \
+ libGL.so.1.7.0 \
libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION)
NVIDIA_DRIVER_LIBS_EGL = \
libEGL.so.1.1.0 \
+ libEGL.so.$(NVIDIA_DRIVER_VERSION) \
libGLdispatch.so.0 \
libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION)
@@ -57,13 +41,18 @@ NVIDIA_DRIVER_LIBS_GLES = \
libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION)
NVIDIA_DRIVER_LIBS_MISC = \
+ libnvidia-allocator.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-api.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-cfg.so.$(NVIDIA_DRIVER_VERSION) \
libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \
- libnvidia-egl-wayland.so.1.0.2 \
+ libnvidia-egl-gbm.so.1.1.1 \
+ libnvidia-egl-wayland.so.1.1.13 \
+ libnvidia-wayland-client.so.$(NVIDIA_DRIVER_VERSION) \
libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \
libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \
- tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
- libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION):vdpau/ \
- libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION)
+ libnvidia-glvkspirv.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-rtcore.so.$(NVIDIA_DRIVER_VERSION)
NVIDIA_DRIVER_LIBS += \
$(NVIDIA_DRIVER_LIBS_GL) \
@@ -87,13 +76,26 @@ endef
# wants to run a third-party program developed under such an agreement).
ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y)
NVIDIA_DRIVER_LIBS += \
+ libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) \
libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \
- libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
+ libnvidia-ngx.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-opticalflow.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvoptix.so.$(NVIDIA_DRIVER_VERSION)
+endif
+
+# Include GTK libraries (if required)
+ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_GTK),y)
+NVIDIA_DRIVER_LIBS += \
+ libnvidia-gtk2.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-gtk3.so.$(NVIDIA_DRIVER_VERSION)
endif
# We refer to the destination path; the origin file has no directory component
NVIDIA_DRIVER_LIBS += \
nvidia_drv.so:xorg/modules/drivers/ \
+ libnvidia-pkcs11.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-pkcs11-openssl3.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
libglx.so.$(NVIDIA_DRIVER_VERSION):xorg/modules/extensions/
# libglx needs a symlink according to the driver README. It has no SONAME
@@ -107,11 +109,13 @@ endif # X drivers
ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y)
NVIDIA_DRIVER_LIBS += \
libcuda.so.$(NVIDIA_DRIVER_VERSION) \
- libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \
+ libcudadebugger.so.$(NVIDIA_DRIVER_VERSION) \
libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \
- libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-gpucomp.so.$(NVIDIA_DRIVER_VERSION) \
+ libnvidia-nvvm.so.$(NVIDIA_DRIVER_VERSION) \
libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \
- libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION)
+ libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION)
ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y)
NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server
endif
@@ -152,8 +156,9 @@ endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE == y
# virtually everywhere, and it is fine enough to provide useful options.
# Except it can't extract into an existing (even empty) directory.
define NVIDIA_DRIVER_EXTRACT_CMDS
- $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --extract-only --target \
- $(@D)/tmp-extract
+ $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --extract-only \
+ $(if $(BR2_x86_64),--no-install-compat32-libs) \
+ --target $(@D)/tmp-extract
chmod u+w -R $(@D)
mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D)
rm -rf $(@D)/tmp-extract
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-05-13 15:59 [Buildroot] [PATCH] package/nvidia-driver: bump version to 550.78 Nick Whitlock
@ 2024-05-13 18:03 ` Vincent Fazio
2024-05-13 20:03 ` nick.whitlock
0 siblings, 1 reply; 8+ messages in thread
From: Vincent Fazio @ 2024-05-13 18:03 UTC (permalink / raw)
To: Nick Whitlock, buildroot@buildroot.org; +Cc: Yann E. MORIN
Nick, All,
> -----Original Message-----
> From: buildroot <buildroot-bounces@buildroot.org> On Behalf Of Nick
> Whitlock
> Sent: Monday, May 13, 2024 10:59 AM
> To: buildroot@buildroot.org
> Cc: Yann E. MORIN <yann.morin.1998@free.fr>; Nick Whitlock
> <nick.whitlock@eizo.com>
> Subject: [External] - [Buildroot] [PATCH] package/nvidia-driver: bump version
> to 550.78
>
> The NVIDIA drivers now have 64-bit and 32-bit versions bundled
> into one .run file.
>
I believe this was always the case. See the /32 folder in the x86_64 run files for 390.x
> A configuration value was also added to check if the user wants
> to install GTK integration for the NVIDIA driver.
>
> The legacy version of libGL.so was removed in favor of the
> vendor neutral version.
>
> This has been confirmed to work on kernel 6.1.4.
>
> Signed-off-by: Nick Whitlock <nick.whitlock@eizo.com>
> ---
> package/nvidia-driver/Config.in | 3 ++
> package/nvidia-driver/nvidia-driver.hash | 7 ++-
> package/nvidia-driver/nvidia-driver.mk | 69 +++++++++++++-----------
> 3 files changed, 43 insertions(+), 36 deletions(-)
>
> diff --git a/package/nvidia-driver/Config.in b/package/nvidia-driver/Config.in
> index a8617a939b..0fcce93e28 100644
> --- a/package/nvidia-driver/Config.in
> +++ b/package/nvidia-driver/Config.in
> @@ -90,4 +90,7 @@ config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
> provides Unified Memory access to the GPU and CPU memories for
> CUDA programs.
>
> +config BR2_PACKAGE_NVIDIA_DRIVER_GTK
> + bool "nvidia GTK acceleration"
> +
> endif # BR2_PACKAGE_NVIDIA_DRIVER
> diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-
> driver/nvidia-driver.hash
> index 620112e6c8..06e3314d53 100644
> --- a/package/nvidia-driver/nvidia-driver.hash
> +++ b/package/nvidia-driver/nvidia-driver.hash
> @@ -1,4 +1,3 @@
> -# Locally computed
> -sha256
> 94e399b459659c12b1344e8c8f4f5eee1ed5915ff459fc8bb831c9e1d44677
> db NVIDIA-Linux-x86-390.151.run
> -sha256
> 6e4fd2258465f5d5527fe80abd46de925a30348b4a84658498a6d75caf42c4
> 7c NVIDIA-Linux-x86_64-390.151-no-compat32.run
> -sha256
> bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997
> 526 LICENSE
> +# Locally computed:
> +sha256
> 34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf7
> 3 NVIDIA-Linux-x86_64-550.78.run
> +sha256
> 5ac626496a6388d37cdd53e0300525267a4b8c89fb5980da060783afd561faf
> 7 LICENSE
> diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-
> driver/nvidia-driver.mk
> index f1217b00aa..9ea97a2a9f 100644
> --- a/package/nvidia-driver/nvidia-driver.mk
> +++ b/package/nvidia-driver/nvidia-driver.mk
> @@ -4,10 +4,9 @@
> #
>
> ############################################################
> ####################
>
> -NVIDIA_DRIVER_VERSION = 390.151
> -NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64)
> -NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-
> x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION)
> -NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-
> $(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run
I think we did this so that 32bit builds didn't need to:
1) fetch the 64bit bundle
2) handle the /32 subdirectory based on the target bitness
If we used the installer's native logic, IIRC, it would install both 32bit and 64bit libraries, hence we stage the files and copy out what we need.
> +NVIDIA_DRIVER_VERSION = 550.78
We had some discussions about a bump a year or two ago and there was never any real consensus about what we should do.
The challenge, I think, is that the 5xx series drops support for some common NVIDIA products that may be more likely be used in embedded environments (like some of the Wolf GPU products).
https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/
At the time, we discussed having different selectable, but mutually exclusive, driver versions so that users could choose the version that provided support for their GPU.
I had intended to do this but never found the time. I was also rewriting the installer to be manifest based but that too stalled due to lack of time.
> +NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-
> x86_64/$(NVIDIA_DRIVER_VERSION)
> +NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86_64-
> $(NVIDIA_DRIVER_VERSION).run
> NVIDIA_DRIVER_LICENSE = NVIDIA Software License
> NVIDIA_DRIVER_LICENSE_FILES = LICENSE
> NVIDIA_DRIVER_REDISTRIBUTE = NO
> @@ -23,30 +22,15 @@ ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y)
> NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers xlib_libX11 xlib_libXext
> NVIDIA_DRIVER_PROVIDES += libgl libegl libgles
>
> -# libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library; it
> -# has been replaced with libGL.so.1.0.0. Installing both is technically
> -# possible, but great care must be taken to ensure they do not conflict,
> -# so that EGL still works. The legacy library exposes an NVidia-specific
> -# API, so it should not be needed, except for legacy, binary-only
> -# applications (in other words: we don't care).
> -#
> -# libGL.so.1.0.0 is the new vendor-neutral library, aimed at replacing
> -# the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The latter contains
> -# NVidia extensions (which is deemed bad now), while the former follows
> -# the newly-introduced vendor-neutral "dispatching" API/ABI:
> -# https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-
> opengl-abi-proposal.txt
> -# However, this is not very useful to us, as we don't support multiple
> -# GL providers at the same time on the system, which this proposal is
> -# aimed at supporting.
> -#
> -# So we only install the legacy library for now.
> NVIDIA_DRIVER_LIBS_GL = \
> libGLX.so.0 \
> - libGL.so.$(NVIDIA_DRIVER_VERSION) \
> + libglxserver_nvidia.so.$(NVIDIA_DRIVER_VERSION) \
> + libGL.so.1.7.0 \
> libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS_EGL = \
> libEGL.so.1.1.0 \
> + libEGL.so.$(NVIDIA_DRIVER_VERSION) \
> libGLdispatch.so.0 \
> libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> @@ -57,13 +41,18 @@ NVIDIA_DRIVER_LIBS_GLES = \
> libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS_MISC = \
> + libnvidia-allocator.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-api.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-cfg.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-egl-wayland.so.1.0.2 \
> + libnvidia-egl-gbm.so.1.1.1 \
> + libnvidia-egl-wayland.so.1.1.13 \
> + libnvidia-wayland-client.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \
> - tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
> - libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION):vdpau/ \
> - libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION)
> + libnvidia-glvkspirv.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-rtcore.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS += \
> $(NVIDIA_DRIVER_LIBS_GL) \
> @@ -87,13 +76,26 @@ endef
> # wants to run a third-party program developed under such an agreement).
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y)
> NVIDIA_DRIVER_LIBS += \
> + libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
> + libnvidia-ngx.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-opticalflow.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvoptix.so.$(NVIDIA_DRIVER_VERSION)
> +endif
> +
> +# Include GTK libraries (if required)
> +ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_GTK),y)
> +NVIDIA_DRIVER_LIBS += \
> + libnvidia-gtk2.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-gtk3.so.$(NVIDIA_DRIVER_VERSION)
> endif
>
> # We refer to the destination path; the origin file has no directory
> component
> NVIDIA_DRIVER_LIBS += \
> nvidia_drv.so:xorg/modules/drivers/ \
> + libnvidia-pkcs11.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-pkcs11-openssl3.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
> libglx.so.$(NVIDIA_DRIVER_VERSION):xorg/modules/extensions/
>
> # libglx needs a symlink according to the driver README. It has no SONAME
> @@ -107,11 +109,13 @@ endif # X drivers
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y)
> NVIDIA_DRIVER_LIBS += \
> libcuda.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \
> + libcudadebugger.so.$(NVIDIA_DRIVER_VERSION) \
> libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-gpucomp.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-nvvm.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION)
> + libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION)
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y)
> NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server
> endif
> @@ -152,8 +156,9 @@ endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE ==
> y
> # virtually everywhere, and it is fine enough to provide useful options.
> # Except it can't extract into an existing (even empty) directory.
> define NVIDIA_DRIVER_EXTRACT_CMDS
> - $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --
> extract-only --target \
> - $(@D)/tmp-extract
> + $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --
> extract-only \
> + $(if $(BR2_x86_64),--no-install-compat32-libs) \
> + --target $(@D)/tmp-extract
> chmod u+w -R $(@D)
> mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D)
> rm -rf $(@D)/tmp-extract
> --
> 2.43.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
> CAUTION: This email originated from outside of the organization. Do not click
> links or open attachments unless you recognize the sender and know the
> content is safe.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-05-13 18:03 ` [Buildroot] [External] - " Vincent Fazio
@ 2024-05-13 20:03 ` nick.whitlock
2024-06-12 18:13 ` nick.whitlock
2024-08-06 21:33 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 8+ messages in thread
From: nick.whitlock @ 2024-05-13 20:03 UTC (permalink / raw)
To: vfazio, buildroot; +Cc: yann.morin.1998
Hello,
If a selectable (or user-enterable) version number is the consensus, then I'm all for that.
There isn't currently a way to use recent NVIDIA discrete GPUs (read: Ampere and up) for GPGPU in embedded spaces until this gets resolved though.
-----Original Message-----
From: Vincent Fazio <vfazio@xes-inc.com>
Sent: Monday, May 13, 2024 2:03 PM
To: ERS Nick Whitlock <nick.whitlock@eizo.com>; buildroot@buildroot.org
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Subject: RE: [External] - [Buildroot] [PATCH] package/nvidia-driver: bump version to 550.78
Nick, All,
> -----Original Message-----
> From: buildroot <buildroot-bounces@buildroot.org> On Behalf Of Nick
> Whitlock
> Sent: Monday, May 13, 2024 10:59 AM
> To: buildroot@buildroot.org
> Cc: Yann E. MORIN <yann.morin.1998@free.fr>; Nick Whitlock
> <nick.whitlock@eizo.com>
> Subject: [External] - [Buildroot] [PATCH] package/nvidia-driver: bump
> version to 550.78
>
> The NVIDIA drivers now have 64-bit and 32-bit versions bundled into
> one .run file.
>
I believe this was always the case. See the /32 folder in the x86_64 run files for 390.x
> A configuration value was also added to check if the user wants to
> install GTK integration for the NVIDIA driver.
>
> The legacy version of libGL.so was removed in favor of the vendor
> neutral version.
>
> This has been confirmed to work on kernel 6.1.4.
>
> Signed-off-by: Nick Whitlock <nick.whitlock@eizo.com>
> ---
> package/nvidia-driver/Config.in | 3 ++
> package/nvidia-driver/nvidia-driver.hash | 7 ++-
> package/nvidia-driver/nvidia-driver.mk | 69 +++++++++++++-----------
> 3 files changed, 43 insertions(+), 36 deletions(-)
>
> diff --git a/package/nvidia-driver/Config.in
> b/package/nvidia-driver/Config.in index a8617a939b..0fcce93e28 100644
> --- a/package/nvidia-driver/Config.in
> +++ b/package/nvidia-driver/Config.in
> @@ -90,4 +90,7 @@ config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
> provides Unified Memory access to the GPU and CPU memories for
> CUDA programs.
>
> +config BR2_PACKAGE_NVIDIA_DRIVER_GTK
> + bool "nvidia GTK acceleration"
> +
> endif # BR2_PACKAGE_NVIDIA_DRIVER
> diff --git a/package/nvidia-driver/nvidia-driver.hash
> b/package/nvidia- driver/nvidia-driver.hash index
> 620112e6c8..06e3314d53 100644
> --- a/package/nvidia-driver/nvidia-driver.hash
> +++ b/package/nvidia-driver/nvidia-driver.hash
> @@ -1,4 +1,3 @@
> -# Locally computed
> -sha256
> 94e399b459659c12b1344e8c8f4f5eee1ed5915ff459fc8bb831c9e1d44677
> db NVIDIA-Linux-x86-390.151.run
> -sha256
> 6e4fd2258465f5d5527fe80abd46de925a30348b4a84658498a6d75caf42c4
> 7c NVIDIA-Linux-x86_64-390.151-no-compat32.run
> -sha256
> bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997
> 526 LICENSE
> +# Locally computed:
> +sha256
> 34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf7
> 3 NVIDIA-Linux-x86_64-550.78.run
> +sha256
> 5ac626496a6388d37cdd53e0300525267a4b8c89fb5980da060783afd561faf
> 7 LICENSE
> diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-
> driver/nvidia-driver.mk index f1217b00aa..9ea97a2a9f 100644
> --- a/package/nvidia-driver/nvidia-driver.mk
> +++ b/package/nvidia-driver/nvidia-driver.mk
> @@ -4,10 +4,9 @@
> #
>
> ############################################################
> ####################
>
> -NVIDIA_DRIVER_VERSION = 390.151
> -NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64) -NVIDIA_DRIVER_SITE =
> http://download.nvidia.com/XFree86/Linux-
> x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION)
> -NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-
> $(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run
I think we did this so that 32bit builds didn't need to:
1) fetch the 64bit bundle
2) handle the /32 subdirectory based on the target bitness
If we used the installer's native logic, IIRC, it would install both 32bit and 64bit libraries, hence we stage the files and copy out what we need.
> +NVIDIA_DRIVER_VERSION = 550.78
We had some discussions about a bump a year or two ago and there was never any real consensus about what we should do.
The challenge, I think, is that the 5xx series drops support for some common NVIDIA products that may be more likely be used in embedded environments (like some of the Wolf GPU products).
https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/
At the time, we discussed having different selectable, but mutually exclusive, driver versions so that users could choose the version that provided support for their GPU.
I had intended to do this but never found the time. I was also rewriting the installer to be manifest based but that too stalled due to lack of time.
> +NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-
> x86_64/$(NVIDIA_DRIVER_VERSION)
> +NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86_64-
> $(NVIDIA_DRIVER_VERSION).run
> NVIDIA_DRIVER_LICENSE = NVIDIA Software License
> NVIDIA_DRIVER_LICENSE_FILES = LICENSE NVIDIA_DRIVER_REDISTRIBUTE = NO
> @@ -23,30 +22,15 @@ ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y)
> NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers xlib_libX11 xlib_libXext
> NVIDIA_DRIVER_PROVIDES += libgl libegl libgles
>
> -# libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library;
> it -# has been replaced with libGL.so.1.0.0. Installing both is
> technically -# possible, but great care must be taken to ensure they
> do not conflict, -# so that EGL still works. The legacy library
> exposes an NVidia-specific -# API, so it should not be needed, except
> for legacy, binary-only -# applications (in other words: we don't care).
> -#
> -# libGL.so.1.0.0 is the new vendor-neutral library, aimed at
> replacing -# the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The
> latter contains -# NVidia extensions (which is deemed bad now), while
> the former follows -# the newly-introduced vendor-neutral "dispatching" API/ABI:
> -# https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-
> opengl-abi-proposal.txt
> -# However, this is not very useful to us, as we don't support
> multiple -# GL providers at the same time on the system, which this
> proposal is -# aimed at supporting.
> -#
> -# So we only install the legacy library for now.
> NVIDIA_DRIVER_LIBS_GL = \
> libGLX.so.0 \
> - libGL.so.$(NVIDIA_DRIVER_VERSION) \
> + libglxserver_nvidia.so.$(NVIDIA_DRIVER_VERSION) \
> + libGL.so.1.7.0 \
> libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS_EGL = \
> libEGL.so.1.1.0 \
> + libEGL.so.$(NVIDIA_DRIVER_VERSION) \
> libGLdispatch.so.0 \
> libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> @@ -57,13 +41,18 @@ NVIDIA_DRIVER_LIBS_GLES = \
> libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS_MISC = \
> + libnvidia-allocator.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-api.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-cfg.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-egl-wayland.so.1.0.2 \
> + libnvidia-egl-gbm.so.1.1.1 \
> + libnvidia-egl-wayland.so.1.1.13 \
> + libnvidia-wayland-client.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \
> - tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
> - libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION):vdpau/ \
> - libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION)
> + libnvidia-glvkspirv.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-rtcore.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS += \
> $(NVIDIA_DRIVER_LIBS_GL) \
> @@ -87,13 +76,26 @@ endef
> # wants to run a third-party program developed under such an agreement).
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y)
> NVIDIA_DRIVER_LIBS += \
> + libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
> + libnvidia-ngx.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-opticalflow.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvoptix.so.$(NVIDIA_DRIVER_VERSION)
> +endif
> +
> +# Include GTK libraries (if required) ifeq
> +($(BR2_PACKAGE_NVIDIA_DRIVER_GTK),y)
> +NVIDIA_DRIVER_LIBS += \
> + libnvidia-gtk2.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-gtk3.so.$(NVIDIA_DRIVER_VERSION)
> endif
>
> # We refer to the destination path; the origin file has no directory
> component NVIDIA_DRIVER_LIBS += \
> nvidia_drv.so:xorg/modules/drivers/ \
> + libnvidia-pkcs11.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-pkcs11-openssl3.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
> libglx.so.$(NVIDIA_DRIVER_VERSION):xorg/modules/extensions/
>
> # libglx needs a symlink according to the driver README. It has no
> SONAME @@ -107,11 +109,13 @@ endif # X drivers ifeq
> ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y)
> NVIDIA_DRIVER_LIBS += \
> libcuda.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \
> + libcudadebugger.so.$(NVIDIA_DRIVER_VERSION) \
> libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-gpucomp.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-nvvm.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION)
> + libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION)
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y)
> NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server
> endif @@ -152,8 +156,9 @@ endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE ==
> y # virtually everywhere, and it is fine enough to provide useful
> options.
> # Except it can't extract into an existing (even empty) directory.
> define NVIDIA_DRIVER_EXTRACT_CMDS
> - $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --
> extract-only --target \
> - $(@D)/tmp-extract
> + $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --
> extract-only \
> + $(if $(BR2_x86_64),--no-install-compat32-libs) \
> + --target $(@D)/tmp-extract
> chmod u+w -R $(@D)
> mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D)
> rm -rf $(@D)/tmp-extract
> --
> 2.43.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
> CAUTION: This email originated from outside of the organization. Do
> not click links or open attachments unless you recognize the sender
> and know the content is safe.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-05-13 20:03 ` nick.whitlock
@ 2024-06-12 18:13 ` nick.whitlock
2024-08-06 21:33 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 8+ messages in thread
From: nick.whitlock @ 2024-06-12 18:13 UTC (permalink / raw)
To: vfazio, buildroot; +Cc: yann.morin.1998
Hello, what is the status of this?
Nicholas Whitlock
Software Manager
www.eizorugged.com
482 S Keller Rd
Orlando, FL 32810
O:(407) 262-7100
C: (772) 643-5400
Company Feedback
-----Original Message-----
From: buildroot <buildroot-bounces@buildroot.org> On Behalf Of nick.whitlock@eizo.com
Sent: Monday, May 13, 2024 4:04 PM
To: vfazio@xes-inc.com; buildroot@buildroot.org
Cc: yann.morin.1998@free.fr
Subject: Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
Hello,
If a selectable (or user-enterable) version number is the consensus, then I'm all for that.
There isn't currently a way to use recent NVIDIA discrete GPUs (read: Ampere and up) for GPGPU in embedded spaces until this gets resolved though.
-----Original Message-----
From: Vincent Fazio <vfazio@xes-inc.com>
Sent: Monday, May 13, 2024 2:03 PM
To: ERS Nick Whitlock <nick.whitlock@eizo.com>; buildroot@buildroot.org
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Subject: RE: [External] - [Buildroot] [PATCH] package/nvidia-driver: bump version to 550.78
Nick, All,
> -----Original Message-----
> From: buildroot <buildroot-bounces@buildroot.org> On Behalf Of Nick
> Whitlock
> Sent: Monday, May 13, 2024 10:59 AM
> To: buildroot@buildroot.org
> Cc: Yann E. MORIN <yann.morin.1998@free.fr>; Nick Whitlock
> <nick.whitlock@eizo.com>
> Subject: [External] - [Buildroot] [PATCH] package/nvidia-driver: bump
> version to 550.78
>
> The NVIDIA drivers now have 64-bit and 32-bit versions bundled into
> one .run file.
>
I believe this was always the case. See the /32 folder in the x86_64 run files for 390.x
> A configuration value was also added to check if the user wants to
> install GTK integration for the NVIDIA driver.
>
> The legacy version of libGL.so was removed in favor of the vendor
> neutral version.
>
> This has been confirmed to work on kernel 6.1.4.
>
> Signed-off-by: Nick Whitlock <nick.whitlock@eizo.com>
> ---
> package/nvidia-driver/Config.in | 3 ++
> package/nvidia-driver/nvidia-driver.hash | 7 ++-
> package/nvidia-driver/nvidia-driver.mk | 69 +++++++++++++-----------
> 3 files changed, 43 insertions(+), 36 deletions(-)
>
> diff --git a/package/nvidia-driver/Config.in
> b/package/nvidia-driver/Config.in index a8617a939b..0fcce93e28 100644
> --- a/package/nvidia-driver/Config.in
> +++ b/package/nvidia-driver/Config.in
> @@ -90,4 +90,7 @@ config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
> provides Unified Memory access to the GPU and CPU memories for
> CUDA programs.
>
> +config BR2_PACKAGE_NVIDIA_DRIVER_GTK
> + bool "nvidia GTK acceleration"
> +
> endif # BR2_PACKAGE_NVIDIA_DRIVER
> diff --git a/package/nvidia-driver/nvidia-driver.hash
> b/package/nvidia- driver/nvidia-driver.hash index
> 620112e6c8..06e3314d53 100644
> --- a/package/nvidia-driver/nvidia-driver.hash
> +++ b/package/nvidia-driver/nvidia-driver.hash
> @@ -1,4 +1,3 @@
> -# Locally computed
> -sha256
> 94e399b459659c12b1344e8c8f4f5eee1ed5915ff459fc8bb831c9e1d44677
> db NVIDIA-Linux-x86-390.151.run
> -sha256
> 6e4fd2258465f5d5527fe80abd46de925a30348b4a84658498a6d75caf42c4
> 7c NVIDIA-Linux-x86_64-390.151-no-compat32.run
> -sha256
> bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997
> 526 LICENSE
> +# Locally computed:
> +sha256
> 34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf7
> 3 NVIDIA-Linux-x86_64-550.78.run
> +sha256
> 5ac626496a6388d37cdd53e0300525267a4b8c89fb5980da060783afd561faf
> 7 LICENSE
> diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-
> driver/nvidia-driver.mk index f1217b00aa..9ea97a2a9f 100644
> --- a/package/nvidia-driver/nvidia-driver.mk
> +++ b/package/nvidia-driver/nvidia-driver.mk
> @@ -4,10 +4,9 @@
> #
>
> ############################################################
> ####################
>
> -NVIDIA_DRIVER_VERSION = 390.151
> -NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64) -NVIDIA_DRIVER_SITE =
> http://download.nvidia.com/XFree86/Linux-
> x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION)
> -NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-
> $(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run
I think we did this so that 32bit builds didn't need to:
1) fetch the 64bit bundle
2) handle the /32 subdirectory based on the target bitness
If we used the installer's native logic, IIRC, it would install both 32bit and 64bit libraries, hence we stage the files and copy out what we need.
> +NVIDIA_DRIVER_VERSION = 550.78
We had some discussions about a bump a year or two ago and there was never any real consensus about what we should do.
The challenge, I think, is that the 5xx series drops support for some common NVIDIA products that may be more likely be used in embedded environments (like some of the Wolf GPU products).
https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/
At the time, we discussed having different selectable, but mutually exclusive, driver versions so that users could choose the version that provided support for their GPU.
I had intended to do this but never found the time. I was also rewriting the installer to be manifest based but that too stalled due to lack of time.
> +NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-
> x86_64/$(NVIDIA_DRIVER_VERSION)
> +NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86_64-
> $(NVIDIA_DRIVER_VERSION).run
> NVIDIA_DRIVER_LICENSE = NVIDIA Software License
> NVIDIA_DRIVER_LICENSE_FILES = LICENSE NVIDIA_DRIVER_REDISTRIBUTE = NO
> @@ -23,30 +22,15 @@ ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y)
> NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers xlib_libX11 xlib_libXext
> NVIDIA_DRIVER_PROVIDES += libgl libegl libgles
>
> -# libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library;
> it -# has been replaced with libGL.so.1.0.0. Installing both is
> technically -# possible, but great care must be taken to ensure they
> do not conflict, -# so that EGL still works. The legacy library
> exposes an NVidia-specific -# API, so it should not be needed, except
> for legacy, binary-only -# applications (in other words: we don't care).
> -#
> -# libGL.so.1.0.0 is the new vendor-neutral library, aimed at
> replacing -# the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The
> latter contains -# NVidia extensions (which is deemed bad now), while
> the former follows -# the newly-introduced vendor-neutral "dispatching" API/ABI:
> -# https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-
> opengl-abi-proposal.txt
> -# However, this is not very useful to us, as we don't support
> multiple -# GL providers at the same time on the system, which this
> proposal is -# aimed at supporting.
> -#
> -# So we only install the legacy library for now.
> NVIDIA_DRIVER_LIBS_GL = \
> libGLX.so.0 \
> - libGL.so.$(NVIDIA_DRIVER_VERSION) \
> + libglxserver_nvidia.so.$(NVIDIA_DRIVER_VERSION) \
> + libGL.so.1.7.0 \
> libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS_EGL = \
> libEGL.so.1.1.0 \
> + libEGL.so.$(NVIDIA_DRIVER_VERSION) \
> libGLdispatch.so.0 \
> libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> @@ -57,13 +41,18 @@ NVIDIA_DRIVER_LIBS_GLES = \
> libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS_MISC = \
> + libnvidia-allocator.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-api.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-cfg.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-egl-wayland.so.1.0.2 \
> + libnvidia-egl-gbm.so.1.1.1 \
> + libnvidia-egl-wayland.so.1.1.13 \
> + libnvidia-wayland-client.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \
> - tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
> - libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION):vdpau/ \
> - libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION)
> + libnvidia-glvkspirv.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-rtcore.so.$(NVIDIA_DRIVER_VERSION)
>
> NVIDIA_DRIVER_LIBS += \
> $(NVIDIA_DRIVER_LIBS_GL) \
> @@ -87,13 +76,26 @@ endef
> # wants to run a third-party program developed under such an agreement).
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y)
> NVIDIA_DRIVER_LIBS += \
> + libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
> + libnvidia-ngx.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-opticalflow.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvoptix.so.$(NVIDIA_DRIVER_VERSION)
> +endif
> +
> +# Include GTK libraries (if required) ifeq
> +($(BR2_PACKAGE_NVIDIA_DRIVER_GTK),y)
> +NVIDIA_DRIVER_LIBS += \
> + libnvidia-gtk2.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-gtk3.so.$(NVIDIA_DRIVER_VERSION)
> endif
>
> # We refer to the destination path; the origin file has no directory
> component NVIDIA_DRIVER_LIBS += \
> nvidia_drv.so:xorg/modules/drivers/ \
> + libnvidia-pkcs11.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-pkcs11-openssl3.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \
> libglx.so.$(NVIDIA_DRIVER_VERSION):xorg/modules/extensions/
>
> # libglx needs a symlink according to the driver README. It has no
> SONAME @@ -107,11 +109,13 @@ endif # X drivers ifeq
> ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y)
> NVIDIA_DRIVER_LIBS += \
> libcuda.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \
> + libcudadebugger.so.$(NVIDIA_DRIVER_VERSION) \
> libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-gpucomp.so.$(NVIDIA_DRIVER_VERSION) \
> + libnvidia-nvvm.so.$(NVIDIA_DRIVER_VERSION) \
> libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \
> - libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION)
> + libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION)
> ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y)
> NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server
> endif @@ -152,8 +156,9 @@ endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE ==
> y # virtually everywhere, and it is fine enough to provide useful
> options.
> # Except it can't extract into an existing (even empty) directory.
> define NVIDIA_DRIVER_EXTRACT_CMDS
> - $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --
> extract-only --target \
> - $(@D)/tmp-extract
> + $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --
> extract-only \
> + $(if $(BR2_x86_64),--no-install-compat32-libs) \
> + --target $(@D)/tmp-extract
> chmod u+w -R $(@D)
> mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D)
> rm -rf $(@D)/tmp-extract
> --
> 2.43.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
> CAUTION: This email originated from outside of the organization. Do
> not click links or open attachments unless you recognize the sender
> and know the content is safe.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-05-13 20:03 ` nick.whitlock
2024-06-12 18:13 ` nick.whitlock
@ 2024-08-06 21:33 ` Thomas Petazzoni via buildroot
2024-08-07 17:16 ` nick.whitlock
1 sibling, 1 reply; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-08-06 21:33 UTC (permalink / raw)
To: nick.whitlock; +Cc: vfazio, yann.morin.1998, buildroot
Hello Nick,
Sorry for the delay in getting back to you. Thanks as well to Vincent
for the review.
On Mon, 13 May 2024 20:03:56 +0000
<nick.whitlock@eizo.com> wrote:
> If a selectable (or user-enterable) version number is the consensus,
> then I'm all for that.
>
> There isn't currently a way to use recent NVIDIA discrete GPUs (read:
> Ampere and up) for GPGPU in embedded spaces until this gets resolved
> though.
I think a version selection is the only approach that we have. Indeed
keeping support for older GPUs is important, but supporting newer ones
is also important, so we will have to live with a more complicated
package that supports different generations of the driver.
Nick, do you think you could prepare a new iteration with such a
version selection, but also taking into account the rest of the
feedback from Vincent?
> > +config BR2_PACKAGE_NVIDIA_DRIVER_GTK
> > + bool "nvidia GTK acceleration"
Could you also give a little bit more details about this GTK
acceleration? How come two additional .so files can "accelerate GTK" ?
How do they interact with GTK ?
Thanks a lot,
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-08-06 21:33 ` Thomas Petazzoni via buildroot
@ 2024-08-07 17:16 ` nick.whitlock
2024-08-07 21:22 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 8+ messages in thread
From: nick.whitlock @ 2024-08-07 17:16 UTC (permalink / raw)
To: thomas.petazzoni; +Cc: vfazio, yann.morin.1998, buildroot
Thomas,
I can look into adding a version selection mechanism.
About the GTK acceleration. The library (from my understanding) provides GPU hardware acceleration support for GTK so it renders on the GPU instead of on the CPU.
Side note:
Originally when I wrote this patch, I wrote it with the proprietary NVIDIA driver in mind. However, I'm now aware of the open-kernel-modules package of NVIDIA and I may submit a different patch to add support for this (bearing in mind that the open kernel modules only supports Ampere and up).
-----Original Message-----
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Sent: Tuesday, August 6, 2024 5:33 PM
To: ERS Nick Whitlock <nick.whitlock@eizo.com>
Cc: vfazio@xes-inc.com; buildroot@buildroot.org; yann.morin.1998@free.fr
Subject: Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
Hello Nick,
Sorry for the delay in getting back to you. Thanks as well to Vincent for the review.
On Mon, 13 May 2024 20:03:56 +0000
<nick.whitlock@eizo.com> wrote:
> If a selectable (or user-enterable) version number is the consensus,
> then I'm all for that.
>
> There isn't currently a way to use recent NVIDIA discrete GPUs (read:
> Ampere and up) for GPGPU in embedded spaces until this gets resolved
> though.
I think a version selection is the only approach that we have. Indeed keeping support for older GPUs is important, but supporting newer ones is also important, so we will have to live with a more complicated package that supports different generations of the driver.
Nick, do you think you could prepare a new iteration with such a version selection, but also taking into account the rest of the feedback from Vincent?
> > +config BR2_PACKAGE_NVIDIA_DRIVER_GTK
> > + bool "nvidia GTK acceleration"
Could you also give a little bit more details about this GTK acceleration? How come two additional .so files can "accelerate GTK" ?
How do they interact with GTK ?
Thanks a lot,
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-08-07 17:16 ` nick.whitlock
@ 2024-08-07 21:22 ` Thomas Petazzoni via buildroot
2024-08-08 12:57 ` nick.whitlock
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-08-07 21:22 UTC (permalink / raw)
To: nick.whitlock; +Cc: vfazio, yann.morin.1998, buildroot
Hello Nick,
On Wed, 7 Aug 2024 17:16:38 +0000
<nick.whitlock@eizo.com> wrote:
> I can look into adding a version selection mechanism.
Awesome, thanks!
> About the GTK acceleration. The library (from my understanding)
> provides GPU hardware acceleration support for GTK so it renders on
> the GPU instead of on the CPU.
But how does it hook up into Gtk to accelerate it?
> Side note:
> Originally when I wrote this patch, I wrote it with the proprietary
> NVIDIA driver in mind. However, I'm now aware of the
> open-kernel-modules package of NVIDIA and I may submit a different
> patch to add support for this (bearing in mind that the open kernel
> modules only supports Ampere and up).
I'd say it's up to you which version(s) you want to add support for, as
long as support for already supported HW is preserved (by using a
version selection). So if you add support for the open kernel modules,
which means only support for Ampere platforms is added, that's fine by
me.
BTW, instead of a version selection, we could also decide to introduce
a separate package. Maybe rename nvidia-driver to nvidia-driver-legacy,
or something similar, and add a new nvidia-driver package. This would
be sensible if the packages are radically different in their "build"
process for example.
I prefer two separate and simple packages than a single convoluted
package that supports two versions, but with in fact nothing shared
between the two versions supported.
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
2024-08-07 21:22 ` Thomas Petazzoni via buildroot
@ 2024-08-08 12:57 ` nick.whitlock
0 siblings, 0 replies; 8+ messages in thread
From: nick.whitlock @ 2024-08-08 12:57 UTC (permalink / raw)
To: thomas.petazzoni; +Cc: vfazio, yann.morin.1998, buildroot
Thomas,
> But how does it hook up into Gtk to accelerate it?
I'm honestly not sure as I haven't looked into it too deeply yet.
> I prefer two separate and simple packages than a single convoluted package that supports two versions, but with in fact nothing shared between the two versions supported.
Yeah, I share the same position. I think an "nvidia-open-gpu-modules" module would easier to support since it's just a matter of using their GitHub repository.
-----Original Message-----
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Sent: Wednesday, August 7, 2024 5:23 PM
To: ERS Nick Whitlock <nick.whitlock@eizo.com>
Cc: vfazio@xes-inc.com; buildroot@buildroot.org; yann.morin.1998@free.fr
Subject: Re: [Buildroot] [External] - [PATCH] package/nvidia-driver: bump version to 550.78
Hello Nick,
On Wed, 7 Aug 2024 17:16:38 +0000
<nick.whitlock@eizo.com> wrote:
> I can look into adding a version selection mechanism.
Awesome, thanks!
> About the GTK acceleration. The library (from my understanding)
> provides GPU hardware acceleration support for GTK so it renders on
> the GPU instead of on the CPU.
But how does it hook up into Gtk to accelerate it?
> Side note:
> Originally when I wrote this patch, I wrote it with the proprietary
> NVIDIA driver in mind. However, I'm now aware of the
> open-kernel-modules package of NVIDIA and I may submit a different
> patch to add support for this (bearing in mind that the open kernel
> modules only supports Ampere and up).
I'd say it's up to you which version(s) you want to add support for, as long as support for already supported HW is preserved (by using a version selection). So if you add support for the open kernel modules, which means only support for Ampere platforms is added, that's fine by me.
BTW, instead of a version selection, we could also decide to introduce a separate package. Maybe rename nvidia-driver to nvidia-driver-legacy, or something similar, and add a new nvidia-driver package. This would be sensible if the packages are radically different in their "build"
process for example.
I prefer two separate and simple packages than a single convoluted package that supports two versions, but with in fact nothing shared between the two versions supported.
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-08-08 12:57 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-13 15:59 [Buildroot] [PATCH] package/nvidia-driver: bump version to 550.78 Nick Whitlock
2024-05-13 18:03 ` [Buildroot] [External] - " Vincent Fazio
2024-05-13 20:03 ` nick.whitlock
2024-06-12 18:13 ` nick.whitlock
2024-08-06 21:33 ` Thomas Petazzoni via buildroot
2024-08-07 17:16 ` nick.whitlock
2024-08-07 21:22 ` Thomas Petazzoni via buildroot
2024-08-08 12:57 ` nick.whitlock
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox