[Buildroot] [PATCH v1 2/6] package/linux4tegra: new package

Asaf Kahlon asafka7 at gmail.com
Sat Aug 8 07:19:41 UTC 2020


Hello,

On Sun, Aug 2, 2020 at 12:37 AM Christian Stewart <christian at paral.in> wrote:
>
> NVIDIA Linux4Tegra utilities and binaries.
>
> https://developer.nvidia.com/embedded/linux-tegra-archive
>
> Signed-off-by: Christian Stewart <christian at paral.in>
> ---
>  package/Config.in                             |   1 +
>  ...for-flashing-Buildroot-produced-disk.patch |  58 +++++++++
>  package/linux4tegra/Config.in                 |   6 +
>  package/linux4tegra/linux4tegra.hash          |   2 +
>  package/linux4tegra/linux4tegra.mk            | 114 ++++++++++++++++++
>  5 files changed, 181 insertions(+)
>  create mode 100644 package/linux4tegra/0001-Adjust-flash.sh-for-flashing-Buildroot-produced-disk.patch
>  create mode 100644 package/linux4tegra/Config.in
>  create mode 100644 package/linux4tegra/linux4tegra.hash
>  create mode 100644 package/linux4tegra/linux4tegra.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 3349641371..0d34824128 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -481,6 +481,7 @@ endmenu
>         source "package/libuio/Config.in"
>         source "package/linux-backports/Config.in"
>         source "package/linux-serial-test/Config.in"
> +       source "package/linux4tegra/Config.in"
>         source "package/linuxconsoletools/Config.in"
>         source "package/lirc-tools/Config.in"
>         source "package/lm-sensors/Config.in"
> diff --git a/package/linux4tegra/0001-Adjust-flash.sh-for-flashing-Buildroot-produced-disk.patch b/package/linux4tegra/0001-Adjust-flash.sh-for-flashing-Buildroot-produced-disk.patch
> new file mode 100644
> index 0000000000..4ace27bddc
> --- /dev/null
> +++ b/package/linux4tegra/0001-Adjust-flash.sh-for-flashing-Buildroot-produced-disk.patch
> @@ -0,0 +1,58 @@
> +From fbd0d35995a23351d4b50ed0b814442a6873ded2 Mon Sep 17 00:00:00 2001
> +From: Christian Stewart <christian at paral.in>
> +Date: Fri, 17 Jul 2020 13:58:43 -0700
> +Subject: [PATCH] Adjust flash.sh for flashing Buildroot-produced disk image
> +
> +Signed-off-by: Christian Stewart <christian at paral.in>
> +---
> + flash.sh | 19 ++++++++++---------
> + 1 file changed, 10 insertions(+), 9 deletions(-)
> +
> +diff --git a/flash.sh b/flash.sh
> +index 38c0cbb..c27b41b 100755
> +--- a/flash.sh
> ++++ b/flash.sh
> +@@ -1339,9 +1339,10 @@ elif [ "${target_rootdev}" == "internal" ] || \
> +               usage allunknown 1;
> +       fi
> +
> +-      cmdline+="root=PARTUUID=${rootfsuuid} rw rootwait rootfstype=ext4 "
> ++      # cmdline+="root=PARTUUID=${rootfsuuid} rw rootwait rootfstype=ext4 "
> ++      cmdline+="root=/dev/${target_rootdev} rw rootwait"
> + else
> +-      cmdline+="root=/dev/${target_rootdev} rw rootwait rootfstype=ext4 "
> ++      cmdline+="root=/dev/${target_rootdev} rw rootwait"
> + fi;
> +
> + if [ "${CMDLINE_ADD}" != "" ]; then
> +@@ -1512,11 +1513,7 @@ if [ "${write_image_name}" != "" ]; then
> +       fi
> + fi
> +
> +-if [ "${INITRD_IN_BOOTIMG}" = "yes" ]; then
> +-      ramdisk=initrd;
> +-else
> +-      ramdisk="/dev/null"
> +-fi
> ++ramdisk="/dev/null"
> + echo -n "Making Boot image... ";
> + MKBOOTARG+="--kernel ${kernel_image} ";
> + MKBOOTARG+="--ramdisk ${ramdisk} ";
> +@@ -1977,8 +1974,12 @@ if [ "${reuse_systemimg}" = "true" ] || [ "${skip_systemimg}" = "true" ]; then
> + elif [ "${rootdev_type}" = "internal" ]; then
> +       APP_TAG+="-e s/APPFILE/${localsysfile}/ ";
> +       if [ "${target_partname}" = "" -o "${target_partname}" = "APP" ]; then
> +-              build_fsimg "$localsysfile" "$fillpat" \
> +-                  "$rootfssize" "$rootfs_type" "$rootfs_dir" "$cmdline";
> ++    echo "Skipping image build and setting target_partfile to INITRD."
> ++    # target_partfile=${INITRD}
> ++    # cp ${INITRD} ./system.img
> ++    ln -fs ${INITRD} ./system.img
> ++              #build_fsimg "$localsysfile" "$fillpat" \
> ++              #    "$rootfssize" "$rootfs_type" "$rootfs_dir" "$cmdline";
> +       fi;
> + elif [ "${rootdev_type}" = "network" -o "${rootdev_type}" = "external" ]; then
> +       APP_TAG+="-e s/APPFILE/${localsysfile}/ ";
> +--
> +2.27.0
> +
> diff --git a/package/linux4tegra/Config.in b/package/linux4tegra/Config.in
> new file mode 100644
> index 0000000000..06d449e21e
> --- /dev/null
> +++ b/package/linux4tegra/Config.in
> @@ -0,0 +1,6 @@
> +config BR2_PACKAGE_LINUX4TEGRA
> +       bool "linux4tegra"
> +       help
> +         NVIDIA Linux4Tegra utilities and binaries.
> +
> +         https://developer.nvidia.com/embedded/linux-tegra-archive
> diff --git a/package/linux4tegra/linux4tegra.hash b/package/linux4tegra/linux4tegra.hash
> new file mode 100644
> index 0000000000..e73577a160
> --- /dev/null
> +++ b/package/linux4tegra/linux4tegra.hash
> @@ -0,0 +1,2 @@
> +# locally computed
> +sha256 9a2d13b1f4b67fef97a428d54724b23e84e14636eedfa22f338c2d1ea62558e2  Tegra186_Linux_R32.4.3_aarch64.tbz2
You should add the hash for license files too...

> diff --git a/package/linux4tegra/linux4tegra.mk b/package/linux4tegra/linux4tegra.mk
> new file mode 100644
> index 0000000000..74cb19723e
> --- /dev/null
> +++ b/package/linux4tegra/linux4tegra.mk
> @@ -0,0 +1,114 @@
> +################################################################################
> +#
> +# linux4tegra
> +#
> +################################################################################
> +
> +LINUX4TEGRA_VERSION = 32.4.3
> +LINUX4TEGRA_SITE = https://developer.nvidia.com/embedded/L4T/r32_Release_v4.3/t186ref_release_aarch64
> +LINUX4TEGRA_SOURCE = Tegra186_Linux_R$(LINUX4TEGRA_VERSION)_aarch64.tbz2
> +
> +LINUX4TEGRA_LICENSE = NVIDIA Software License, GPL-2.0, LGPL, Apache-2.0, MIT
> +LINUX4TEGRA_LICENSE_FILES = \
> +       bootloader/LICENSE \
> +       bootloader/LICENSE.adsp \
> +       bootloader/LICENSE.bpmp \
> +       bootloader/LICENSE.bpmp_t194 \
> +       bootloader/LICENSE.camera-rtcpu \
> +       bootloader/LICENSE.cboot \
> +       bootloader/LICENSE.cboot_t194 \
> +       bootloader/LICENSE.chkbdinfo \
> +       bootloader/LICENSE.mce_c10_prod_cr \
> +       bootloader/LICENSE.mkbctpart \
> +       bootloader/LICENSE.mkbootimg \
> +       bootloader/LICENSE.mkgpt \
> +       bootloader/LICENSE.nv_smd_generator \
> +       bootloader/LICENSE.spe.bin \
> +       bootloader/LICENSE.spe_t194.bin \
> +       bootloader/LICENSE.tos-mon-only.img.arm-trusted-firmware \
> +       bootloader/LICENSE.tos-trusty.img.arm-trusted-firmware \
> +       bootloader/LICENSE.tos-trusty.img.trusty \
> +       bootloader/LICENSE.tos-trusty_t194.img.arm-trusted-firmware \
> +       bootloader/LICENSE.tos-trusty_t194.img.trusty \
> +       nv_tegra/LICENSE \
> +       nv_tegra/LICENSE \
> +       nv_tegra/LICENSE.brcm_patchram_plus \
> +       nv_tegra/LICENSE.l4t-usb-device-mode-filesystem.img \
> +       nv_tegra/LICENSE.libnvargus \
> +       nv_tegra/LICENSE.libnvcam_imageencoder \
> +       nv_tegra/LICENSE.libnveventlib \
> +       nv_tegra/LICENSE.libnvscf \
> +       nv_tegra/LICENSE.libnvtracebuf \
> +       nv_tegra/LICENSE.libtegrav4l2 \
> +       nv_tegra/LICENSE.minigbm \
> +       nv_tegra/LICENSE.nvbootctrl \
> +       nv_tegra/LICENSE.nvdla \
> +       nv_tegra/LICENSE.weston \
> +       nv_tegra/LICENSE.weston-data \
> +       nv_tegra/nvidia_configs/opt/nvidia/l4t-usb-device-mode/LICENSE.filesystem.img \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.brcm_patchram_plus \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.cypress_wifibt \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvargus \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvcam_imageencoder \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnveventlib \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvtracebuf \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvv4l2 \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvv4lconvert \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libtegrav4l2 \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libvulkan1 \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.minigbm \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.nvdla \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.realtek_8822ce_wifibt \
> +       nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.tegra_sensors \
> +       nv_tegra/nvidia_tools/usr/share/doc/nvidia-tegra/LICENSE.nvbootctrl \
> +       nv_tegra/nvidia_tools/usr/share/doc/nvidia-tegra/LICENSE.tipc_test
> +
> +LINUX4TEGRA_INSTALL_IMAGES = YES
> +
> +define LINUX4TEGRA_EXTRACT_NVIDIA_DRIVERS
> +       @mkdir -p $(@D)/nv_tegra/nvidia_drivers
> +       $(call suitable-extractor,nvidia_drivers.tbz2) \
> +               $(@D)/nv_tegra/nvidia_drivers.tbz2 | \
> +               $(TAR) -C $(@D)/nv_tegra/nvidia_drivers $(TAR_OPTIONS) -
> +endef
> +
> +LINUX4TEGRA_POST_EXTRACT_HOOKS += LINUX4TEGRA_EXTRACT_NVIDIA_DRIVERS
> +
> +define LINUX4TEGRA_EXTRACT_NVIDIA_CONFIGS
> +       @mkdir -p $(@D)/nv_tegra/nvidia_configs
> +       $(call suitable-extractor,config.tbz2) \
> +               $(@D)/nv_tegra/config.tbz2 | \
> +               $(TAR) -C $(@D)/nv_tegra/nvidia_configs $(TAR_OPTIONS) -
> +endef
> +
> +LINUX4TEGRA_POST_EXTRACT_HOOKS += LINUX4TEGRA_EXTRACT_NVIDIA_CONFIGS
> +
> +define LINUX4TEGRA_EXTRACT_NVIDIA_TOOLS
> +       @mkdir -p $(@D)/nv_tegra/nvidia_tools
> +       $(call suitable-extractor,nv_tools.tbz2) \
> +               $(@D)/nv_tegra/nv_tools.tbz2 | \
> +               $(TAR) -C $(@D)/nv_tegra/nvidia_tools $(TAR_OPTIONS) -
> +endef
> +
> +LINUX4TEGRA_POST_EXTRACT_HOOKS += LINUX4TEGRA_EXTRACT_NVIDIA_TOOLS
> +
> +# symlink linux4tegra to the target dir.
> +define LINUX4TEGRA_INSTALL_IMAGES_CMDS
> +       ln -fs $(@D) $(BINARIES_DIR)/linux4tegra
> +endef
I'm not sure I understand what is the purpose of that symlink on the images dir.
Who's going to use or reference that link?
Maybe a comment with a little description of this link would help.

> +
> +LINUX4TEGRA_RSYNC = \
> +       rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
> +               --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \
> +               --keep-dirlinks --exclude=ld.so.conf.d
> +
> +define LINUX4TEGRA_INSTALL_TARGET_CMDS
> +       # install nvidia_drivers
> +       $(LINUX4TEGRA_RSYNC) $(@D)/nv_tegra/nvidia_drivers/ $(TARGET_DIR)/
> +       # install nvidia_configs
> +       $(LINUX4TEGRA_RSYNC) $(@D)/nv_tegra/nvidia_configs/ $(TARGET_DIR)/
> +       # install nvidia_tools
> +       $(LINUX4TEGRA_RSYNC) $(@D)/nv_tegra/nvidia_tools/ $(TARGET_DIR)/
> +endef
> +
> +$(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