[Buildroot] [PATCH v4 1/5] package/nvidia-modprobe: new package

Romain Naour romain.naour at gmail.com
Sat Nov 21 10:18:58 UTC 2020


Hello Christian,

Le 19/11/2020 à 08:53, Christian Stewart a écrit :
> nvidia-modprobe package adds a utility and headers for probing the NVIDIA
> hardware at runtime.
> 
> https://github.com/NVIDIA/nvidia-modprobe
> 
> Signed-off-by: Christian Stewart <christian at paral.in>
> ---
>  package/Config.in                            |  1 +
>  package/nvidia-modprobe/Config.in            | 12 ++++++
>  package/nvidia-modprobe/nvidia-modprobe.hash |  3 ++
>  package/nvidia-modprobe/nvidia-modprobe.mk   | 45 ++++++++++++++++++++
>  4 files changed, 61 insertions(+)
>  create mode 100644 package/nvidia-modprobe/Config.in
>  create mode 100644 package/nvidia-modprobe/nvidia-modprobe.hash
>  create mode 100644 package/nvidia-modprobe/nvidia-modprobe.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 016a99ed1a..fa1b5d35e9 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -502,6 +502,7 @@ endmenu
>  	source "package/nanocom/Config.in"
>  	source "package/neard/Config.in"
>  	source "package/nvidia-driver/Config.in"
> +	source "package/nvidia-modprobe/Config.in"
>  	source "package/nvme/Config.in"
>  	source "package/ofono/Config.in"
>  	source "package/on2-8170-modules/Config.in"
> diff --git a/package/nvidia-modprobe/Config.in b/package/nvidia-modprobe/Config.in
> new file mode 100644
> index 0000000000..35953a33d4
> --- /dev/null
> +++ b/package/nvidia-modprobe/Config.in
> @@ -0,0 +1,12 @@
> +config BR2_PACKAGE_NVIDIA_MODPROBE
> +	bool "nvidia-modprobe"
> +	depends on BR2_TOOLCHAIN_HAS_THREADS

glibc toolchains already select BR2_TOOLCHAIN_HAS_THREADS.

> +	depends on BR2_TOOLCHAIN_USES_GLIBC
> +	help
> +	  nvidia-modprobe package adds a utility and headers for
> +	  probing the NVIDIA hardware at runtime.
> +
> +	  https://github.com/NVIDIA/nvidia-modprobe
> +
> +comment "nvidia-modprobe needs a glibc toolchain w/ threads"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAN_USES_GLIBC
> diff --git a/package/nvidia-modprobe/nvidia-modprobe.hash b/package/nvidia-modprobe/nvidia-modprobe.hash
> new file mode 100644
> index 0000000000..99908680f0
> --- /dev/null
> +++ b/package/nvidia-modprobe/nvidia-modprobe.hash
> @@ -0,0 +1,3 @@
> +# Locally computed:
> +sha256 396b4102d3075a2dee3024652fae206a1b38ace54b8efb1e2c20757a11ec19f1  nvidia-modprobe-450.57.tar.gz
> +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
> diff --git a/package/nvidia-modprobe/nvidia-modprobe.mk b/package/nvidia-modprobe/nvidia-modprobe.mk
> new file mode 100644
> index 0000000000..7eeee6716c
> --- /dev/null
> +++ b/package/nvidia-modprobe/nvidia-modprobe.mk
> @@ -0,0 +1,45 @@
> +################################################################################
> +#
> +# nvidia-modprobe
> +#
> +################################################################################
> +
> +NVIDIA_MODPROBE_VERSION = 450.57
> +NVIDIA_MODPROBE_SITE = $(call github,NVIDIA,nvidia-modprobe,$(NVIDIA_MODPROBE_VERSION))
> +NVIDIA_MODPROBE_LICENSE = GPL-2

The license should use identifier like GPL-2.0 or GPL-2.0+.
Here it should be GPL-2.0.

> +NVIDIA_MODPROBE_LICENSE_FILES = COPYING
> +
> +NVIDIA_MODPROBE_DEPENDENCIES = host-pkgconf

Why ? the binary is build by using gcc directly without any build system.

> +NVIDIA_MODPROBE_INSTALL_STAGING = YES
> +
> +define NVIDIA_MODPROBE_BUILD_CMDS
> +	mkdir -p $(@D)/bin
> +	$(TARGET_MAKE_ENV) $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
> +		-I $(@D)/common-utils -I $(@D)/modprobe-utils \
> +		-o $(@D)/bin/nvidia-modprobe \
> +		-DNV_LINUX=true -DPROGRAM_NAME=\"nvidia-modprobe\" \
> +		-DNVIDIA_VERSION=\"$(NVIDIA_MODPROBE_VERSION)\" \
> +		$(@D)/nvidia-modprobe.c $(@D)/modprobe-utils/nvidia-modprobe-utils.c \
> +		$(@D)/modprobe-utils/pci-sysfs.c $(@D)/common-utils/common-utils.c \
> +		$(@D)/common-utils/msg.c $(@D)/common-utils/nvgetopt.c
> +endef

There is a Makefile why not using it ?
Ok it want to install the man pages but it should be easy to fix it.

> +
> +define NVIDIA_MODPROBE_INSTALL_STAGING_CMDS
> +	$(INSTALL) -D -m 644 $(@D)/modprobe-utils/nvidia-modprobe-utils.h \
> +		$(STAGING_DIR)/usr/include/nvidia-modprobe-utils/nvidia-modprobe-utils.h
> +	$(INSTALL) -D -m 644 $(@D)/modprobe-utils/pci-enum.h \
> +		$(STAGING_DIR)/usr/include/nvidia-modprobe-utils/pci-enum.h
> +	$(INSTALL) -D -m 644 $(@D)/common-utils/common-utils.h \
> +		$(STAGING_DIR)/usr/include/nvidia-modprobe-utils/nvidia-common-utils.h
> +	$(INSTALL) -D -m 644 $(@D)/common-utils/msg.h \
> +		$(STAGING_DIR)/usr/include/nvidia-modprobe-utils/msg.h
> +	$(INSTALL) -D -m 644 $(@D)/common-utils/nvgetopt.h \
> +		$(STAGING_DIR)/usr/include/nvidia-modprobe-utils/nvgetopt.h
> +endef

Same, we really don't want to maintain the gcc command line and the list of
installed files. The Makefile must do it for us :)

> +
> +define NVIDIA_MODPROBE_INSTALL_TARGET_CMDS
> +	$(INSTALL) -m 0755 $(@D)/bin/nvidia-modprobe \
> +		$(TARGET_DIR)/usr/bin/nvidia-modprobe
> +endef

Same.

Best regards,
Romain

> +
> +$(eval $(generic-package))
> 




More information about the buildroot mailing list