All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README
@ 2020-02-20 20:11 Vincent Fazio
  2020-02-20 20:11 ` [Buildroot] [PATCH v2 2/2] package/nvidia-driver: bump version to 390.132 Vincent Fazio
  2021-07-25 15:45 ` [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README Arnout Vandecappelle
  0 siblings, 2 replies; 4+ messages in thread
From: Vincent Fazio @ 2020-02-20 20:11 UTC (permalink / raw)
  To: buildroot

Create a symlink for libglx.so and drop libnvidia-wfb.so (aka libwfb.so)
since all selectable xserver versions in Buildroot provide their own.

VDPAU libraries should be installed into /usr/lib/vdpau/

https://download.nvidia.com/XFree86/Linux-x86_64/390.67/README/installedcomponents.html

Also, allow specifying target subdirectory per library and respect it in
the install loop.

Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>
---
Depends on http://patchwork.ozlabs.org/patch/1181847/

 package/nvidia-driver/nvidia-driver.mk | 57 ++++++++++++++++----------
 1 file changed, 35 insertions(+), 22 deletions(-)

diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk
index baf2ba2be5..0ac8d2a5fb 100644
--- a/package/nvidia-driver/nvidia-driver.mk
+++ b/package/nvidia-driver/nvidia-driver.mk
@@ -62,7 +62,7 @@ NVIDIA_DRIVER_LIBS_MISC = \
 	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) \
+	libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION):vdpau/ \
 	libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION)
 
 NVIDIA_DRIVER_LIBS += \
@@ -92,10 +92,9 @@ NVIDIA_DRIVER_LIBS += \
 endif
 
 # We refer to the destination path; the origin file has no directory component
-NVIDIA_DRIVER_X_MODS = \
-	drivers/nvidia_drv.so \
-	extensions/libglx.so.$(NVIDIA_DRIVER_VERSION) \
-	libnvidia-wfb.so.$(NVIDIA_DRIVER_VERSION)
+NVIDIA_DRIVER_LIBS += \
+	nvidia_drv.so:xorg/modules/drivers/ \
+	libglx.so.$(NVIDIA_DRIVER_VERSION):xorg/modules/extensions/
 
 endif # X drivers
 
@@ -154,24 +153,31 @@ define NVIDIA_DRIVER_EXTRACT_CMDS
 endef
 
 # Helper to install libraries
-# $1: destination directory (target or staging)
+# $1: library name
+# $2: target directory
 #
 # For all libraries, we install them and create a symlink using
 # their SONAME, so we can link to them at runtime; we also create
 # the no-version symlink, so we can link to them at build time.
+define NVIDIA_DRIVER_INSTALL_LIB
+	$(INSTALL) -D -m 0644 $(@D)/$(1) $(2)$(notdir $(1))
+	libsoname="$$( $(TARGET_READELF) -d "$(@D)/$(1)" \
+		|sed -r -e '/.*\(SONAME\).*\[(.*)\]$$/!d; s//\1/;' )"; \
+	if [ -n "$${libsoname}" -a "$${libsoname}" != "$(notdir $(1))" ]; then \
+		ln -sf $(notdir $(1)) $(2)$${libsoname}; \
+	fi
+	baseso=$(firstword $(subst .,$(space),$(notdir $(1)))).so; \
+	if [ -n "$${baseso}" -a "$${baseso}" != "$(notdir $(1))" ]; then \
+		ln -sf $(notdir $(1)) $(2)$${baseso}; \
+	fi
+endef
+
+# Helper to install libraries
+# $1: destination directory (target or staging)
 define NVIDIA_DRIVER_INSTALL_LIBS
-	$(foreach lib,$(NVIDIA_DRIVER_LIBS),\
-		$(INSTALL) -D -m 0644 $(@D)/$(lib) $(1)/usr/lib/$(notdir $(lib))
-		libsoname="$$( $(TARGET_READELF) -d "$(@D)/$(lib)" \
-			|sed -r -e '/.*\(SONAME\).*\[(.*)\]$$/!d; s//\1/;' )"; \
-		if [ -n "$${libsoname}" -a "$${libsoname}" != "$(notdir $(lib))" ]; then \
-			ln -sf $(notdir $(lib)) \
-				$(1)/usr/lib/$${libsoname}; \
-		fi
-		baseso=$(firstword $(subst .,$(space),$(notdir $(lib)))).so; \
-		if [ -n "$${baseso}" -a "$${baseso}" != "$(notdir $(lib))" ]; then \
-			ln -sf $(notdir $(lib)) $(1)/usr/lib/$${baseso}; \
-		fi
+	$(foreach lib,$(NVIDIA_DRIVER_LIBS),
+		$(call NVIDIA_DRIVER_INSTALL_LIB,$(shell echo $(lib) | awk -F":" '{print $$1}'), \
+			$(1)/usr/lib/$(shell echo $(lib) | awk -F":" '{print $$2}'))
 	)
 endef
 
@@ -181,18 +187,25 @@ define NVIDIA_DRIVER_INSTALL_STAGING_CMDS
 	$(NVIDIA_DRIVER_INSTALL_GL_DEV)
 endef
 
+define NVIDIA_DRIVER_SYMLINK_LIBGLX
+	# libglx needs a symlink according to the driver README. It has no SONAME
+	ln -sf libglx.so.$(NVIDIA_DRIVER_VERSION) \
+		$(TARGET_DIR)/usr/lib/xorg/modules/extensions/libglx.so
+endef
+
 # For target, install libraries and X.org modules
 define NVIDIA_DRIVER_INSTALL_TARGET_CMDS
 	$(call NVIDIA_DRIVER_INSTALL_LIBS,$(TARGET_DIR))
-	$(foreach m,$(NVIDIA_DRIVER_X_MODS), \
-		$(INSTALL) -D -m 0644 $(@D)/$(notdir $(m)) \
-			$(TARGET_DIR)/usr/lib/xorg/modules/$(m)
-	)
 	$(foreach p,$(NVIDIA_DRIVER_PROGS), \
 		$(INSTALL) -D -m 0755 $(@D)/$(p) \
 			$(TARGET_DIR)/usr/bin/$(p)
 	)
+	$(NVIDIA_DRIVER_SYMLINK_LIBGLX)
 	$(NVIDIA_DRIVER_INSTALL_KERNEL_MODULE)
 endef
 
+# Due to a conflict with xserver_xorg-server, this needs to be performed when
+# finalizing the target filesystem to make sure this version is used.
+NVIDIA_DRIVER_TARGET_FINALIZE_HOOKS += NVIDIA_DRIVER_SYMLINK_LIBGLX
+
 $(eval $(generic-package))
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v2 2/2] package/nvidia-driver: bump version to 390.132
  2020-02-20 20:11 [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README Vincent Fazio
@ 2020-02-20 20:11 ` Vincent Fazio
  2021-07-25 16:01   ` Arnout Vandecappelle
  2021-07-25 15:45 ` [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README Arnout Vandecappelle
  1 sibling, 1 reply; 4+ messages in thread
From: Vincent Fazio @ 2020-02-20 20:11 UTC (permalink / raw)
  To: buildroot

From: Zach Vargas <zvargas@xes-inc.com>

Support Linux kernel 5.4.

Change the 64-bit download to exclude 32-bit compatibility libs.

Signed-off-by: Zach Vargas <zvargas@xes-inc.com>
[vfazio: 64-bit package change]
Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>
---
Depends on http://patchwork.ozlabs.org/patch/1181847/

 package/nvidia-driver/nvidia-driver.hash | 4 ++--
 package/nvidia-driver/nvidia-driver.mk   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash
index 79ac052610..7f2248d0f9 100644
--- a/package/nvidia-driver/nvidia-driver.hash
+++ b/package/nvidia-driver/nvidia-driver.hash
@@ -1,4 +1,4 @@
 # Locally computed
-sha256 6f4af70ee3d03ed31c497a5d555164c56057b53ecedfc0d2c8de4b0b90728805  NVIDIA-Linux-x86-390.67.run
-sha256 6df2ca1a7420b6751bcaf257d321b14f4e5f7ca54d77a43514912a3792ece65a  NVIDIA-Linux-x86_64-390.67.run
+sha256 51adb28f0ed4548f35a88a93ad6767ebd807fa14f418bf5e51a6d63a3ff7f275  NVIDIA-Linux-x86-390.132.run
+sha256 b6b4b8af37e78e026c9ebdf4a5c64ea412dfcb710931dd028c22dac228de659d  NVIDIA-Linux-x86_64-390.132-no-compat32.run
 sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526  LICENSE
diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk
index 0ac8d2a5fb..75041ecb46 100644
--- a/package/nvidia-driver/nvidia-driver.mk
+++ b/package/nvidia-driver/nvidia-driver.mk
@@ -4,10 +4,10 @@
 #
 ################################################################################
 
-NVIDIA_DRIVER_VERSION = 390.67
+NVIDIA_DRIVER_VERSION = 390.132
 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).run
+NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run
 NVIDIA_DRIVER_LICENSE = NVIDIA Software License
 NVIDIA_DRIVER_LICENSE_FILES = LICENSE
 NVIDIA_DRIVER_REDISTRIBUTE = NO
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README
  2020-02-20 20:11 [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README Vincent Fazio
  2020-02-20 20:11 ` [Buildroot] [PATCH v2 2/2] package/nvidia-driver: bump version to 390.132 Vincent Fazio
@ 2021-07-25 15:45 ` Arnout Vandecappelle
  1 sibling, 0 replies; 4+ messages in thread
From: Arnout Vandecappelle @ 2021-07-25 15:45 UTC (permalink / raw)
  To: Vincent Fazio, buildroot; +Cc: Bernd Kuhls, Jakub Skrzypnik, Yann E . MORIN

 Hi Vincent,

On 20/02/2020 21:11, Vincent Fazio wrote:
> Create a symlink for libglx.so and drop libnvidia-wfb.so (aka libwfb.so)
> since all selectable xserver versions in Buildroot provide their own.
> 
> VDPAU libraries should be installed into /usr/lib/vdpau/
> 
> https://download.nvidia.com/XFree86/Linux-x86_64/390.67/README/installedcomponents.html
> 
> Also, allow specifying target subdirectory per library and respect it in
> the install loop.
> 
> Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>

 I finally applied to master, with a few corrections.

[snip]
> +	$(foreach lib,$(NVIDIA_DRIVER_LIBS),
> +		$(call NVIDIA_DRIVER_INSTALL_LIB,$(shell echo $(lib) | awk -F":" '{print $$1}'), \

 We prefer doing this in make:

$(word 1,$(subst :, ,$(lib)))

> +			$(1)/usr/lib/$(shell echo $(lib) | awk -F":" '{print $$2}'))
>  	)
>  endef
>  
> @@ -181,18 +187,25 @@ define NVIDIA_DRIVER_INSTALL_STAGING_CMDS
>  	$(NVIDIA_DRIVER_INSTALL_GL_DEV)
>  endef
>  
> +define NVIDIA_DRIVER_SYMLINK_LIBGLX
> +	# libglx needs a symlink according to the driver README. It has no SONAME

 You shouldn't put comments inside a define, put them before it.

> +	ln -sf libglx.so.$(NVIDIA_DRIVER_VERSION) \
> +		$(TARGET_DIR)/usr/lib/xorg/modules/extensions/libglx.so
> +endef
> +
>  # For target, install libraries and X.org modules
>  define NVIDIA_DRIVER_INSTALL_TARGET_CMDS
>  	$(call NVIDIA_DRIVER_INSTALL_LIBS,$(TARGET_DIR))
> -	$(foreach m,$(NVIDIA_DRIVER_X_MODS), \
> -		$(INSTALL) -D -m 0644 $(@D)/$(notdir $(m)) \
> -			$(TARGET_DIR)/usr/lib/xorg/modules/$(m)
> -	)
>  	$(foreach p,$(NVIDIA_DRIVER_PROGS), \
>  		$(INSTALL) -D -m 0755 $(@D)/$(p) \
>  			$(TARGET_DIR)/usr/bin/$(p)
>  	)
> +	$(NVIDIA_DRIVER_SYMLINK_LIBGLX)
>  	$(NVIDIA_DRIVER_INSTALL_KERNEL_MODULE)
>  endef
>  
> +# Due to a conflict with xserver_xorg-server, this needs to be performed when
> +# finalizing the target filesystem to make sure this version is used.

 This is fishy... Is it because xserver_xorg-server creates a symlink or library
with the same name? In that case, the usual way we solve it is that we add a
dependency between the two packages:

NVIDIA_DRIVER_DEPENDENCIES += xserver_xorg-server

That way, nvidia-driver will overwrite whatever xorg-server has done.


 However, since I don't completely understand the issue, I left it as is.


 Regards,
 Arnout

> +NVIDIA_DRIVER_TARGET_FINALIZE_HOOKS += NVIDIA_DRIVER_SYMLINK_LIBGLX
> +
>  $(eval $(generic-package))
> 
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] package/nvidia-driver: bump version to 390.132
  2020-02-20 20:11 ` [Buildroot] [PATCH v2 2/2] package/nvidia-driver: bump version to 390.132 Vincent Fazio
@ 2021-07-25 16:01   ` Arnout Vandecappelle
  0 siblings, 0 replies; 4+ messages in thread
From: Arnout Vandecappelle @ 2021-07-25 16:01 UTC (permalink / raw)
  To: Vincent Fazio, buildroot; +Cc: Jakub Skrzypnik, Yann E . MORIN, Zach Vargas



On 20/02/2020 21:11, Vincent Fazio wrote:
> From: Zach Vargas <zvargas@xes-inc.com>
> 
> Support Linux kernel 5.4.
> 
> Change the 64-bit download to exclude 32-bit compatibility libs.
> 
> Signed-off-by: Zach Vargas <zvargas@xes-inc.com>
> [vfazio: 64-bit package change]
> Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>

 Applied to master, thanks.

 There was a later patch by Jakub that also bumps it to more recent versions for
x86_64, but there were some problems with that patch, so I used this one instead.

 Regards,
 Arnout

> ---
> Depends on http://patchwork.ozlabs.org/patch/1181847/
> 
>  package/nvidia-driver/nvidia-driver.hash | 4 ++--
>  package/nvidia-driver/nvidia-driver.mk   | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash
> index 79ac052610..7f2248d0f9 100644
> --- a/package/nvidia-driver/nvidia-driver.hash
> +++ b/package/nvidia-driver/nvidia-driver.hash
> @@ -1,4 +1,4 @@
>  # Locally computed
> -sha256 6f4af70ee3d03ed31c497a5d555164c56057b53ecedfc0d2c8de4b0b90728805  NVIDIA-Linux-x86-390.67.run
> -sha256 6df2ca1a7420b6751bcaf257d321b14f4e5f7ca54d77a43514912a3792ece65a  NVIDIA-Linux-x86_64-390.67.run
> +sha256 51adb28f0ed4548f35a88a93ad6767ebd807fa14f418bf5e51a6d63a3ff7f275  NVIDIA-Linux-x86-390.132.run
> +sha256 b6b4b8af37e78e026c9ebdf4a5c64ea412dfcb710931dd028c22dac228de659d  NVIDIA-Linux-x86_64-390.132-no-compat32.run
>  sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526  LICENSE
> diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk
> index 0ac8d2a5fb..75041ecb46 100644
> --- a/package/nvidia-driver/nvidia-driver.mk
> +++ b/package/nvidia-driver/nvidia-driver.mk
> @@ -4,10 +4,10 @@
>  #
>  ################################################################################
>  
> -NVIDIA_DRIVER_VERSION = 390.67
> +NVIDIA_DRIVER_VERSION = 390.132
>  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).run
> +NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION)$(if $(BR2_x86_64),-no-compat32).run
>  NVIDIA_DRIVER_LICENSE = NVIDIA Software License
>  NVIDIA_DRIVER_LICENSE_FILES = LICENSE
>  NVIDIA_DRIVER_REDISTRIBUTE = NO
> 
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-25 16:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-20 20:11 [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README Vincent Fazio
2020-02-20 20:11 ` [Buildroot] [PATCH v2 2/2] package/nvidia-driver: bump version to 390.132 Vincent Fazio
2021-07-25 16:01   ` Arnout Vandecappelle
2021-07-25 15:45 ` [Buildroot] [PATCH v2 1/2] package/nvidia-driver: fixup libraries according to README Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.