[Buildroot] [PATCH v1 1/6] package/nvidia-modprobe: new package

Asaf Kahlon asafka7 at gmail.com
Sat Aug 8 07:02:49 UTC 2020


Hello,

On Sun, Aug 2, 2020 at 12:36 AM Christian Stewart <christian at paral.in> wrote:
>
> 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 015a7f1054..3349641371 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -501,6 +501,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/nvidia-tegra23/Config.in"
>         source "package/nvme/Config.in"
>         source "package/ofono/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
> +       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
> +NVIDIA_MODPROBE_LICENSE_FILES = COPYING
> +
> +NVIDIA_MODPROBE_DEPENDENCIES = host-pkgconf
> +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
> +
> +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
> +
> +define NVIDIA_MODPROBE_INSTALL_TARGET_CMDS
> +       $(INSTALL) -m 0755 $(@D)/bin/nvidia-modprobe \
> +               $(TARGET_DIR)/usr/bin/nvidia-modprobe
> +endef

Why do you prefer to call the compiler explicitly instead of using the Makefile?
I tested this package with the following change, and it seems to work fine:
define NVIDIA_MODPROBE_BUILD_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)
endef

define NVIDIA_MODPROBE_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) PREFIX=$(TARGET_DIR)
$(MAKE) -C $(@D) install
endef

Maybe I miss something?
> +
> +$(eval $(generic-package))
> --
> 2.27.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Asaf.



More information about the buildroot mailing list