diff mbox series

[v1,2/6] package/linux4tegra: new package

Message ID 20200801213658.33869-2-christian@paral.in
State Superseded
Headers show
Series [v1,1/6] package/nvidia-modprobe: new package | expand

Commit Message

Christian Stewart Aug. 1, 2020, 9:36 p.m. UTC
NVIDIA Linux4Tegra utilities and binaries.

https://developer.nvidia.com/embedded/linux-tegra-archive

Signed-off-by: Christian Stewart <christian@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

Comments

Asaf Kahlon Aug. 8, 2020, 7:19 a.m. UTC | #1
Hello,

On Sun, Aug 2, 2020 at 12:37 AM Christian Stewart <christian@paral.in> wrote:
>
> NVIDIA Linux4Tegra utilities and binaries.
>
> https://developer.nvidia.com/embedded/linux-tegra-archive
>
> Signed-off-by: Christian Stewart <christian@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@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@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@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Asaf.
Christian Stewart Aug. 8, 2020, 11:58 a.m. UTC | #2
Hi Asaf,

On Sat, Aug 8, 2020 at 12:19 AM Asaf Kahlon <asafka7@gmail.com> wrote:
> > +++ 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...

This seems like a lot, but I have it now for the V2:

sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 bootloader/LICENSE
sha256 496f3bc5456694cce764d28a93565bb0d0967dbd95256759e4168a9587406949
 bootloader/LICENSE.adsp
sha256 q4885fa44934935d6a178c84a16aec49dae1bd4f41f14bbbd781bafcf704885f
 bootloader/LICENSE.bpmp
sha256 fd4513e2857a0d91c521dfbb924733563b55d5a2d42d4fb688d2506ed34df0c4
 bootloader/LICENSE.bpmp_t194
sha256 205a391eb9cfc69854cc0c3082de204d30124607cedecbdd3f47420b5f37f302
 bootloader/LICENSE.camera-rtcpu
sha256 3cc8cfbf77eb7f086d9b6f68de92251ebbcf13fd7a20fec2749cab30348bf9b1
 bootloader/LICENSE.cboot
sha256 3cc8cfbf77eb7f086d9b6f68de92251ebbcf13fd7a20fec2749cab30348bf9b1
 bootloader/LICENSE.cboot_t194
sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 bootloader/LICENSE.chkbdinfo
sha256 7bf7d9fae6472452d585ec38dd684daa86dc83638984d1cb14ee35239a868543
 bootloader/LICENSE.mce_c10_prod_cr
sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 bootloader/LICENSE.mkbctpart
sha256 9b0ccf575cfd9febc97b8f9967216f06341db2d44abc69df92c3127cc1a2608f
 bootloader/LICENSE.mkbootimg
sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 bootloader/LICENSE.mkgpt
sha256 cddaa9d5583a7705cd4734a6af4b421bca9016ba6af854c51efbfcbe19a4a893
 bootloader/LICENSE.nv_smd_generator
sha256 7b699cea50c65de6679ea0617e8276cf24a523d6068e2502e637fadf9bc49713
 bootloader/LICENSE.spe.bin
sha256 7b699cea50c65de6679ea0617e8276cf24a523d6068e2502e637fadf9bc49713
 bootloader/LICENSE.spe_t194.bin
sha256 0ef77b4d7ffb0195540e394863dd969594ba8e21cb4b810822b4d42c1ab8ef72
 bootloader/LICENSE.tos-mon-only.img.arm-trusted-firmware
sha256 0ef77b4d7ffb0195540e394863dd969594ba8e21cb4b810822b4d42c1ab8ef72
 bootloader/LICENSE.tos-trusty.img.arm-trusted-firmware
sha256 5a316570e2f1d43b09e51432e613c408b240d0ea0ce30134a7de16c25b832130
 bootloader/LICENSE.tos-trusty.img.trusty
sha256 0ef77b4d7ffb0195540e394863dd969594ba8e21cb4b810822b4d42c1ab8ef72
 bootloader/LICENSE.tos-trusty_t194.img.arm-trusted-firmware
sha256 5a316570e2f1d43b09e51432e613c408b240d0ea0ce30134a7de16c25b832130
 bootloader/LICENSE.tos-trusty_t194.img.trusty
sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 nv_tegra/LICENSE
sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 nv_tegra/LICENSE
sha256 a85e1af5d521f0d68aa08806292076bb9bda8a31a496f17063fafab121053e4d
 nv_tegra/LICENSE.brcm_patchram_plus
sha256 88e408dec7796e0440b0bf5131f88f0d97bc4014fc389562ec0d5cc7ed1c45ad
 nv_tegra/LICENSE.l4t-usb-device-mode-filesystem.img
sha256 1467d3bd35f6ad87ffb24c0e665c2d028dda6e943dff66b347f0051370dcf88d
 nv_tegra/LICENSE.libnvargus
sha256 7ea9279fe435e009307da026ea72a1f47ecbdeef3a6a7f6bb04a2dec7bbdfcd5
 nv_tegra/LICENSE.libnvcam_imageencoder
sha256 c19b803d92378a0acc9c7dc02e018022f821b8284a5d918e2628e6d1d9376245
 nv_tegra/LICENSE.libnveventlib
sha256 1f1bf0c752f072a447b1013fc9d76268ddf098c37ddc63988d60e4973cbee2f4
 nv_tegra/LICENSE.libnvscf
sha256 c19b803d92378a0acc9c7dc02e018022f821b8284a5d918e2628e6d1d9376245
 nv_tegra/LICENSE.libnvtracebuf
sha256 b4e0f72b067cd11afa0875d20144423a80b7293e4309cca43190cf8c1d4ba200
 nv_tegra/LICENSE.libtegrav4l2
sha256 8610954adbca6c6b85d8b1ae5613b44b0014e437d32fcad6683bb27541411686
 nv_tegra/LICENSE.minigbm
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30
 nv_tegra/LICENSE.nvbootctrl
sha256 fa776c507a543cc43d9d66407cfe5d685f35207fd9631e7fd77ee4f42ef92be6
 nv_tegra/LICENSE.nvdla
sha256 8b6a8553e4a1668a6267b9789bd69ffe105bffd8f2af59e2fc74a5910bb159ab
 nv_tegra/LICENSE.weston
sha256 a34730970264d619f352598bf30295ad505a60fc3a493add8aa851645ce3ea47
 nv_tegra/LICENSE.weston-data
sha256 88e408dec7796e0440b0bf5131f88f0d97bc4014fc389562ec0d5cc7ed1c45ad
 nv_tegra/nvidia_configs/opt/nvidia/l4t-usb-device-mode/LICENSE.filesystem.img
sha256 a85e1af5d521f0d68aa08806292076bb9bda8a31a496f17063fafab121053e4d
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.brcm_patchram_plus
sha256 89786bfd7060f6a60feae03257da6f3206b0f777352cf750c67b3b560dd087a5
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.cypress_wifibt
sha256 1467d3bd35f6ad87ffb24c0e665c2d028dda6e943dff66b347f0051370dcf88d
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvargus
sha256 7ea9279fe435e009307da026ea72a1f47ecbdeef3a6a7f6bb04a2dec7bbdfcd5
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvcam_imageencoder
sha256 c19b803d92378a0acc9c7dc02e018022f821b8284a5d918e2628e6d1d9376245
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnveventlib
sha256 c19b803d92378a0acc9c7dc02e018022f821b8284a5d918e2628e6d1d9376245
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvtracebuf
sha256 dee27dbeddf4f7d093df765624022e72fb28c818d60fa3fd9d1dd77b392e4d31
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvv4l2
sha256 dee27dbeddf4f7d093df765624022e72fb28c818d60fa3fd9d1dd77b392e4d31
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libnvv4lconvert
sha256 b4e0f72b067cd11afa0875d20144423a80b7293e4309cca43190cf8c1d4ba200
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libtegrav4l2
sha256 fbef9c34b63148c0e670e6ac07705b25bebcc1f963b48bf7447ee61cfaadcc1e
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.libvulkan1
sha256 8610954adbca6c6b85d8b1ae5613b44b0014e437d32fcad6683bb27541411686
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.minigbm
sha256 fa776c507a543cc43d9d66407cfe5d685f35207fd9631e7fd77ee4f42ef92be6
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.nvdla
sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.realtek_8822ce_wifibt
sha256 f3f3ecff94537e7d5944fdbae7c6bd02d5eddca8fe1c29d8699ff2e54d26cebc
 nv_tegra/nvidia_drivers/usr/share/doc/nvidia-tegra/LICENSE.tegra_sensors
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30
 nv_tegra/nvidia_tools/usr/share/doc/nvidia-tegra/LICENSE.nvbootctrl
sha256 5f28c11f8b1b3f97b9d42c74b85371ebf4127f241b799279bcecd69f7ee542dc
 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

> 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.

The idea is that you need to access the flash.sh script to flash the
target. The flash script depends on other directories inside the
linux4tegra dir. By creating the symlink you can understand the path
to the build/linux4tegra-$(VERSION) directory without running
Buildroot.

Best regards,
Christian
diff mbox series

Patch

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@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@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
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
+
+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))