diff mbox series

package/nvidia-driver: bump version to 550.78

Message ID 20240509190028.693457-1-nick.whitlock@eizo.com
State Changes Requested
Headers show
Series package/nvidia-driver: bump version to 550.78 | expand

Commit Message

Nick Whitlock May 9, 2024, 7 p.m. UTC
A configuration value was also added to check if the user wants
to install GTK integration for the NVIDIA driver.

This has been confirmed to work on kernel 6.14.
---
 package/nvidia-driver/Config.in          |  4 ++
 package/nvidia-driver/nvidia-driver.hash |  8 +--
 package/nvidia-driver/nvidia-driver.mk   | 72 +++++++++++++-----------
 3 files changed, 47 insertions(+), 37 deletions(-)

Comments

Thomas Petazzoni May 9, 2024, 7:51 p.m. UTC | #1
Hello Nick,

Thanks for your patch, a number of comments/questions below.

On Thu,  9 May 2024 15:00:27 -0400
Nick Whitlock <nick.whitlock@eizo.com> wrote:

> A configuration value was also added to check if the user wants
> to install GTK integration for the NVIDIA driver.
> 
> This has been confirmed to work on kernel 6.14.

Kernel 6.14 ? You're ahead of your time, there's no such thing as Linux
6.14.

We need your patch to have your Signed-off-by line, otherwise we
unfortunately cannot apply it.

> ---
>  package/nvidia-driver/Config.in          |  4 ++
>  package/nvidia-driver/nvidia-driver.hash |  8 +--
>  package/nvidia-driver/nvidia-driver.mk   | 72 +++++++++++++-----------
>  3 files changed, 47 insertions(+), 37 deletions(-)
> 
> diff --git a/package/nvidia-driver/Config.in b/package/nvidia-driver/Config.in
> index a8617a939b..996f2f6eea 100644
> --- a/package/nvidia-driver/Config.in
> +++ b/package/nvidia-driver/Config.in
> @@ -90,4 +90,8 @@ 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 "GTK support"
> +	depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE

Why does this have a depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE ? From
what I can see in your patch, this option is merely installing more
user-space libraries, so why do you make this depend on the driver
module being enabled?

> diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash
> index 620112e6c8..163a168dae 100644
> --- a/package/nvidia-driver/nvidia-driver.hash
> +++ b/package/nvidia-driver/nvidia-driver.hash
> @@ -1,4 +1,4 @@
> -# 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:
> +md5 c289987ebda8e9419a73e7e8e3409244  NVIDIA-Linux-x86_64-550.78.run
> +sha1 4e33f1e9d6274fdef630a3a1b903901c09149e40  NVIDIA-Linux-x86_64-550.78.run
> +sha256 34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf73 NVIDIA-Linux-x86_64-550.78.run

A number of things are not correct:

- You should keep the license file hashes

- You should keep the spacing: 2 spaces between each field

- Are these hashes provided by some authoritative source upstream? If
  so, indicate where. Otherwise, keeping the locally calculated sha256
  is sufficient.

> -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 drivers now are bundled 64-bit and 32-bit together in one .run file.

This should be in the commit log, not in a comment here.

> +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 +23,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.

You probably need to explain in the commit log why this is all going
away.


>  NVIDIA_DRIVER_LIBS += \
>  	$(NVIDIA_DRIVER_LIBS_GL) \
> @@ -87,13 +77,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-ifr.so.$(NVIDIA_DRIVER_VERSION) \
> -	libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
> +	libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) /
> +	libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) /
> +	libnvidia-ngx.so.$(NVIDIA_DRIVER_VERSION) /
> +	libnvidia-opticalflow.so.$(NVIDIA_DRIVER_VERSION) /

These lines end with slashes instead of backslashes, not sure how this
can work. Did you test this part?

Could you fix those different issues, and send a v2 of this patch?

Thanks a lot!

Thomas
Nick Whitlock May 9, 2024, 9:16 p.m. UTC | #2
Thomas,

Thanks for the feedback. Here are some comments, below:

> Kernel 6.14 ? You're ahead of your time, there's no such thing as Linux 6.14.

Apologies, I meant to write "6.1.4" here. I will amend the commit.

--

> We need your patch to have your Signed-off-by line, otherwise we unfortunately cannot apply it.

Is this mentioned somewhere in the documentation? I'm not sure how to apply this.

---

> Why does this have a depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE ? From what I can see in your patch, this option is merely installing more user-space libraries, so why do you make this depend on the driver module being enabled?

Those libraries depend on the driver module, from my understanding.

---

> A number of things are not correct:

> - You should keep the license file hashes

> - You should keep the spacing: 2 spaces between each field

Understood. I will amend the commit.

---

> - Are these hashes provided by some authoritative source upstream? If
  so, indicate where. Otherwise, keeping the locally calculated sha256
  is sufficient.

To my knowledge, I'm not sure. I computed them locally using `md5sum`, `sha1sum` and `sha256sum` and they seemed to take when I built it.

---

> This should be in the commit log, not in a comment here.

I will amend the commit.

---

> You probably need to explain in the commit log why this is all going away.

Understood. I will amend the commit. This was removed because the "legacy" method was removed and only the "new" method is active.

---

> These lines end with slashes instead of backslashes, not sure how this can work. Did you test this part?

I missed this. Thank you.




-----Original Message-----
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com> 
Sent: Thursday, May 9, 2024 3:52 PM
To: ERS Nick Whitlock <nick.whitlock@eizo.com>
Cc: buildroot@buildroot.org; Yann E. MORIN <yann.morin.1998@free.fr>
Subject: Re: [Buildroot] [PATCH] package/nvidia-driver: bump version to 550.78

Hello Nick,

Thanks for your patch, a number of comments/questions below.

On Thu,  9 May 2024 15:00:27 -0400
Nick Whitlock <nick.whitlock@eizo.com> wrote:

> A configuration value was also added to check if the user wants to 
> install GTK integration for the NVIDIA driver.
> 
> This has been confirmed to work on kernel 6.14.

Kernel 6.14 ? You're ahead of your time, there's no such thing as Linux 6.14.

We need your patch to have your Signed-off-by line, otherwise we unfortunately cannot apply it.

> ---
>  package/nvidia-driver/Config.in          |  4 ++
>  package/nvidia-driver/nvidia-driver.hash |  8 +--
>  package/nvidia-driver/nvidia-driver.mk   | 72 +++++++++++++-----------
>  3 files changed, 47 insertions(+), 37 deletions(-)
> 
> diff --git a/package/nvidia-driver/Config.in 
> b/package/nvidia-driver/Config.in index a8617a939b..996f2f6eea 100644
> --- a/package/nvidia-driver/Config.in
> +++ b/package/nvidia-driver/Config.in
> @@ -90,4 +90,8 @@ 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 "GTK support"
> +	depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE

Why does this have a depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE ? From what I can see in your patch, this option is merely installing more user-space libraries, so why do you make this depend on the driver module being enabled?

> diff --git a/package/nvidia-driver/nvidia-driver.hash 
> b/package/nvidia-driver/nvidia-driver.hash
> index 620112e6c8..163a168dae 100644
> --- a/package/nvidia-driver/nvidia-driver.hash
> +++ b/package/nvidia-driver/nvidia-driver.hash
> @@ -1,4 +1,4 @@
> -# 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:
> +md5 c289987ebda8e9419a73e7e8e3409244  NVIDIA-Linux-x86_64-550.78.run
> +sha1 4e33f1e9d6274fdef630a3a1b903901c09149e40  
> +NVIDIA-Linux-x86_64-550.78.run
> +sha256 
> +34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf73 
> +NVIDIA-Linux-x86_64-550.78.run

A number of things are not correct:

- You should keep the license file hashes

- You should keep the spacing: 2 spaces between each field

- Are these hashes provided by some authoritative source upstream? If
  so, indicate where. Otherwise, keeping the locally calculated sha256
  is sufficient.

> -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 drivers now are bundled 64-bit and 32-bit together in one .run file.

This should be in the commit log, not in a comment here.

> +NVIDIA_DRIVER_VERSION = 550.78
> +NVIDIA_DRIVER_SITE = 
> +http://download.nvidia.com/XFree86/Linux-x86_64/$(NVIDIA_DRIVER_VERSI
> +ON) 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 +23,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.

You probably need to explain in the commit log why this is all going away.


>  NVIDIA_DRIVER_LIBS += \
>  	$(NVIDIA_DRIVER_LIBS_GL) \
> @@ -87,13 +77,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-ifr.so.$(NVIDIA_DRIVER_VERSION) \
> -	libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
> +	libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) /
> +	libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) /
> +	libnvidia-ngx.so.$(NVIDIA_DRIVER_VERSION) /
> +	libnvidia-opticalflow.so.$(NVIDIA_DRIVER_VERSION) /

These lines end with slashes instead of backslashes, not sure how this can work. Did you test this part?

Could you fix those different issues, and send a v2 of this patch?

Thanks a lot!

Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com
Thomas Petazzoni May 9, 2024, 9:27 p.m. UTC | #3
Hello Nick,

On Thu, 9 May 2024 21:16:36 +0000
<nick.whitlock@eizo.com> wrote:

> > We need your patch to have your Signed-off-by line, otherwise we unfortunately cannot apply it.  
> 
> Is this mentioned somewhere in the documentation? I'm not sure how to apply this.

See
https://buildroot.org/downloads/manual/manual.html#submitting-patches.
Extract from this:

   Finally, the patch should be signed off. This is done by adding
   Signed-off-by: Your Real Name <your@email.address> at the end of the
   commit message. git commit -s does that for you, if configured
   properly. The Signed-off-by tag means that you publish the patch
   under the Buildroot license (i.e. GPL-2.0+, except for package
   patches, which have the upstream license), and that you are allowed
   to do so. See the Developer Certificate of Origin for details.

So for once, our documentation does have the relevant details :-)

> > Why does this have a depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE ?
> > From what I can see in your patch, this option is merely installing
> > more user-space libraries, so why do you make this depend on the
> > driver module being enabled?  
> 
> Those libraries depend on the driver module, from my understanding.

What makes you think this?

> > - Are these hashes provided by some authoritative source upstream?
> > If  
>   so, indicate where. Otherwise, keeping the locally calculated sha256
>   is sufficient.
> 
> To my knowledge, I'm not sure. I computed them locally using
> `md5sum`, `sha1sum` and `sha256sum` and they seemed to take when I
> built it.

Then, only include the sha256, this is enough.

Thanks a lot!

Thomas
diff mbox series

Patch

diff --git a/package/nvidia-driver/Config.in b/package/nvidia-driver/Config.in
index a8617a939b..996f2f6eea 100644
--- a/package/nvidia-driver/Config.in
+++ b/package/nvidia-driver/Config.in
@@ -90,4 +90,8 @@  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 "GTK support"
+	depends on BR2_PACKAGE_NVIDIA_DRIVER_MODULE
+
 endif # BR2_PACKAGE_NVIDIA_DRIVER
diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash
index 620112e6c8..163a168dae 100644
--- a/package/nvidia-driver/nvidia-driver.hash
+++ b/package/nvidia-driver/nvidia-driver.hash
@@ -1,4 +1,4 @@ 
-# 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:
+md5 c289987ebda8e9419a73e7e8e3409244  NVIDIA-Linux-x86_64-550.78.run
+sha1 4e33f1e9d6274fdef630a3a1b903901c09149e40  NVIDIA-Linux-x86_64-550.78.run
+sha256 34070434527ec9d575483e7f11ca078e467e73f6defc54366ecfbdcfe4a3bf73 NVIDIA-Linux-x86_64-550.78.run
diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk
index f1217b00aa..56f4af1ce1 100644
--- a/package/nvidia-driver/nvidia-driver.mk
+++ b/package/nvidia-driver/nvidia-driver.mk
@@ -4,10 +4,10 @@ 
 #
 ################################################################################
 
-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 drivers now are bundled 64-bit and 32-bit together in one .run file.
+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 +23,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 +42,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 +77,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-ifr.so.$(NVIDIA_DRIVER_VERSION) \
-	libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION)
+	libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) /
+	libnvidia-ifr.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 +110,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 +157,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