From 766db8729f572284aa884c0b533bc10878d7d03f Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Wed, 6 Aug 2025 18:33:13 -0700 Subject: [PATCH 01/27] initrdFlash: Instruct device to create a USB serial port and tee output there The initrd flash script doesn't report progress back to the flashing station (host PC). When a carrier board doesn't have a serial port, this is unfortunate because the user doesn't have any way of knowing whether the flashing is finished, failed, or succeeded. Fortunately, there's a USB port we can expose an ACM gadget through and pipe the script's progress through. In order to create the USB device, we need to ensure the USB driver stack is loaded. We inherit from boot.initrd.availableKernelModules because there are carrier board-specific type-c modules that might be required. After setting up the gadget, we connect the input/output to /dev/ttyGS0, the serial port we set up. We tee output to /dev/console and /dev/ttyGS0, so if someone does monitor the serial port, they still see the flashing progress there. This does change behavior for those users if the flashing script fails: the busybox shell that is launched will only accept input from /dev/ttyGS0. --- overlay-with-config.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/overlay-with-config.nix b/overlay-with-config.nix index de54a557..8559af9f 100644 --- a/overlay-with-config.nix +++ b/overlay-with-config.nix @@ -86,7 +86,7 @@ final: prev: ( rootModules = modules; kernel = config.system.modulesTree; firmware = config.hardware.firmware; - allowMissing = false; + allowMissing = true; }; manufacturer = "NixOS"; product = "serial"; From d41fdeff54a232ce0afe792ebd42e2827f3e78a0 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Fri, 26 Sep 2025 10:15:17 -0700 Subject: [PATCH 02/27] Uprev tegra-eeprom-tool --- pkgs/tegra-eeprom-tool/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tegra-eeprom-tool/default.nix b/pkgs/tegra-eeprom-tool/default.nix index 3b78525c..3ff40945 100644 --- a/pkgs/tegra-eeprom-tool/default.nix +++ b/pkgs/tegra-eeprom-tool/default.nix @@ -7,8 +7,8 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "OE4T"; repo = pname; - rev = "283a701d25283a4e5584f5fe072bcb2d7d2ae1b1"; - sha256 = "sha256-YMHIruwF9YKjYJY52DLJ8eovFZYyrUt1jb5GbTcrC+A="; + rev = "v2.1.0"; + sha256 = "sha256-oPc1IUyje4m9KDmvkyJbrImf5o/g+4eEkD6+e5Cq6iA="; }; nativeBuildInputs = [ cmake pkg-config ]; From d854b3b054f1e2ed6905c2b1acb84212da7e3b3b Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:03:27 -0700 Subject: [PATCH 03/27] kernels: Add noble kernel derivations --- .../r38/0001-usb-host-Export-xhci_irq.patch | 29 +++++ pkgs/kernels/r38/Makefile.diff | 18 +++ pkgs/kernels/r38/default.nix | 115 ++++++++++++++++++ pkgs/kernels/r38/devicetree.nix | 53 ++++++++ pkgs/kernels/r38/oot-modules.nix | 93 ++++++++++++++ 5 files changed, 308 insertions(+) create mode 100644 pkgs/kernels/r38/0001-usb-host-Export-xhci_irq.patch create mode 100644 pkgs/kernels/r38/Makefile.diff create mode 100644 pkgs/kernels/r38/default.nix create mode 100644 pkgs/kernels/r38/devicetree.nix create mode 100644 pkgs/kernels/r38/oot-modules.nix diff --git a/pkgs/kernels/r38/0001-usb-host-Export-xhci_irq.patch b/pkgs/kernels/r38/0001-usb-host-Export-xhci_irq.patch new file mode 100644 index 00000000..a7abda04 --- /dev/null +++ b/pkgs/kernels/r38/0001-usb-host-Export-xhci_irq.patch @@ -0,0 +1,29 @@ +From 173bf15c5274580a344dae38a29edee51dd449ce Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Tue, 26 Aug 2025 10:31:32 -0700 +Subject: [PATCH] usb: host: Export xhci_irq + +This symbol is used by xhci-tegra, which can be built in a separate +module from xhci. + +Fixes: fd7de45afba5 ("NVIDIA: SAUCE: xhci: tegra: enable firmware log") +Signed-off-by: Elliot Berman +--- + drivers/usb/host/xhci-ring.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c +index 7badf91645909..04186add014e4 100644 +--- a/drivers/usb/host/xhci-ring.c ++++ b/drivers/usb/host/xhci-ring.c +@@ -3254,6 +3254,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) + + return ret; + } ++EXPORT_SYMBOL_GPL(xhci_irq); + + irqreturn_t xhci_msi_irq(int irq, void *hcd) + { +-- +2.50.1 + diff --git a/pkgs/kernels/r38/Makefile.diff b/pkgs/kernels/r38/Makefile.diff new file mode 100644 index 00000000..ee4eeb1f --- /dev/null +++ b/pkgs/kernels/r38/Makefile.diff @@ -0,0 +1,18 @@ +diff --git a/source/Makefile b/source/Makefile +index 24ee6c5..0780577 100644 +--- a/source/Makefile ++++ b/source/Makefile +@@ -124,12 +124,7 @@ define display-cmd + KERNELRELEASE="" \ + SYSSRCNVOOT=$(MAKEFILE_DIR)/nvidia-oot \ + SYSSRC=$(KERNEL_HEADERS) \ +- SYSOUT=$(KERNEL_OUTPUT) \ +- CC=$(CROSS_COMPILE)gcc \ +- LD=$(CROSS_COMPILE)ld.bfd \ +- AR=$(CROSS_COMPILE)ar \ +- CXX=$(CROSS_COMPILE)g++ \ +- OBJCOPY=$(CROSS_COMPILE)objcopy ++ SYSOUT=$(KERNEL_OUTPUT) + endef + + diff --git a/pkgs/kernels/r38/default.nix b/pkgs/kernels/r38/default.nix new file mode 100644 index 00000000..c6c05e28 --- /dev/null +++ b/pkgs/kernels/r38/default.nix @@ -0,0 +1,115 @@ +{ lib +, realtime ? false +, kernelPatches ? [ ] +, structuredExtraConfig ? { } +, argsOverride ? { } +, buildLinux +, gitRepos +, ... +}@args: +buildLinux (args // { + # See Makefile in kernel source root for VERSION/PATCHLEVEL/SUBLEVEL. + version = "6.8.12"; + extraMeta.branch = "6.8"; + + defconfig = "defconfig"; + + # https://github.com/NixOS/nixpkgs/pull/366004 + # introduced a breaking change that if a module is declared but it is not being used it will fail + # if you try to suppress each of he errors e.g. + # REISERFS_FS_SECURITY = lib.mkForce unset; within structuredExtraConfig + # that list runs to a long 100+ modules so we go back to the previous default and ignore them + ignoreConfigErrors = true; + + # disabling the dependency on the common-config would seem appropriate as we define our own defconfig + # however, it seems that some of the settings for e.g. fw loading are only made available there. + # TODO: a future task could be to set this, disable ignoreConfigErrors and add the needed modules to the + # structuredExtraConfig below. + # enableCommonConfig = false; + + # Using applyPatches here since it's not obvious how to append an extra + # postPatch. This is not very efficient. + src = gitRepos."kernel/kernel-noble"; + autoModules = false; + features = { }; # TODO: Why is this needed in nixpkgs master (but not NixOS 22.05)? + + kernelPatches = [ + { + name = "usb: host: Export xhci_irq"; + patch = ./0001-usb-host-Export-xhci_irq.patch; + } + ] ++ kernelPatches; + + structuredExtraConfig = with lib.kernel; { + # Override the default CMA_SIZE_MBYTES=32M setting in common-config.nix with the default from tegra_defconfig + # Otherwise, nvidia's driver craps out + CMA_SIZE_MBYTES = lib.mkForce (freeform "64"); + + ### So nat.service and firewall work ### + NF_TABLES = module; # This one should probably be in common-config.nix + # this NFT_NAT is not actually being set. when build with enableCommonConfig = false; + # and not ignoreConfigErrors = true; it will fail with error about unused option + # unused means that it wanted to set it as a module, but make oldconfig didn't ask it about that option, + # so it didn't get a chance to set it. + NFT_NAT = module; + NFT_MASQ = module; + NFT_REJECT = module; + NFT_COMPAT = module; + NFT_LOG = module; + NFT_COUNTER = module; + + # search for "ip46tables" in nixpkgs and find all the -m options. + # Enable the corresponding Kconfigs + # TODO: nixpkgs should turn these on themselves. + NETFILTER_XT_MATCH_PKTTYPE = module; + NETFILTER_XT_MATCH_COMMENT = module; + NETFILTER_XT_MATCH_CONNTRACK = module; + NETFILTER_XT_MATCH_LIMIT = module; + NETFILTER_XT_MATCH_MARK = module; + NETFILTER_XT_MATCH_MULTIPORT = module; + + IP_NF_MATCH_RPFILTER = module; + + # IPv6 is enabled by default and without some of these `firewall.service` will explode. + IP6_NF_MATCH_AH = module; + IP6_NF_MATCH_EUI64 = module; + IP6_NF_MATCH_FRAG = module; + IP6_NF_MATCH_OPTS = module; + IP6_NF_MATCH_HL = module; + IP6_NF_MATCH_IPV6HEADER = module; + IP6_NF_MATCH_MH = module; + IP6_NF_MATCH_RPFILTER = module; + IP6_NF_MATCH_RT = module; + IP6_NF_MATCH_SRH = module; + + # Needed since mdadm stuff is currently unconditionally included in the initrd + # This will hopefully get changed, see: https://github.com/NixOS/nixpkgs/pull/183314 + MD_LINEAR = module; + MD_RAID0 = module; + MD_RAID1 = module; + MD_RAID10 = module; + MD_RAID456 = module; + + # Needed for booting from USB + USB_UAS = module; + + FW_LOADER_COMPRESS_XZ = yes; + FW_LOADER_COMPRESS_ZSTD = yes; + + # Restore default LSM from security/Kconfig. Undoes Nvidia downstream changes. + LSM = freeform "landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf"; + } // lib.optionalAttrs realtime { + PREEMPT_VOLUNTARY = lib.mkForce no; # Disable the one set in common-config.nix + # These are the options enabled/disabled by source/generic_rt_build.sh (this file comes after source/source_sync.sh) + PREEMPT_RT = yes; + DEBUG_PREEMPT = no; + KVM = no; + EMBEDDED = yes; + NAMESPACES = yes; + CPU_IDLE_TEGRA18X = no; + CPU_FREQ_GOV_INTERACTIVE = no; + CPU_FREQ_TIMES = no; + FAIR_GROUP_SCHED = no; + } // structuredExtraConfig; + +} // argsOverride) diff --git a/pkgs/kernels/r38/devicetree.nix b/pkgs/kernels/r38/devicetree.nix new file mode 100644 index 00000000..facfbf2d --- /dev/null +++ b/pkgs/kernels/r38/devicetree.nix @@ -0,0 +1,53 @@ +{ bspSrc +, gitRepos +, kernel +, l4tMajorMinorPatchVersion +, lib +, runCommand +, stdenv +, buildPackages +, ... +}: +let + l4t-devicetree-sources = runCommand "l4t-devicetree-sources" { } + (lib.strings.concatStrings + ([ "mkdir -p $out ; cp ${bspSrc}/source/Makefile $out/Makefile ;" ] ++ + lib.lists.forEach + [ "hardware/nvidia/t264/nv-public" "hardware/nvidia/t23x/nv-public" "hardware/nvidia/tegra/nv-public" "kernel-devicetree" ] + ( + project: + '' + mkdir -p "$out/${project}" + cp --no-preserve=all -vr "${lib.attrsets.attrByPath [project] 0 gitRepos}"/. "$out/${project}" + '' + ))); +in +stdenv.mkDerivation (finalAttrs: { + pname = "l4t-devicetree"; + version = "${l4tMajorMinorPatchVersion}"; + src = l4t-devicetree-sources; + + inherit kernel; + + nativeBuildInputs = finalAttrs.kernel.moduleBuildDependencies; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + # See bspSrc/source/Makefile + makeFlags = [ + "KERNEL_HEADERS=${finalAttrs.kernel.dev}/lib/modules/${finalAttrs.kernel.modDirVersion}/source" + "KERNEL_OUTPUT=${finalAttrs.kernel.dev}/lib/modules/${finalAttrs.kernel.modDirVersion}/build" + ]; + + buildFlags = "dtbs"; + + installPhase = '' + runHook preInstall + + mkdir -p "$out"/ + # See kernel-devicetree/generic-dts/Makefile + # The dtbs are installed to kernel-devicetree/generic-dts/dtbs + install -Dm644 kernel-devicetree/generic-dts/dtbs/* "$out/" + + runHook postInstall + ''; +}) diff --git a/pkgs/kernels/r38/oot-modules.nix b/pkgs/kernels/r38/oot-modules.nix new file mode 100644 index 00000000..4dfdfd20 --- /dev/null +++ b/pkgs/kernels/r38/oot-modules.nix @@ -0,0 +1,93 @@ +{ applyPatches +, bspSrc +, buildPackages +, gitRepos +, kernel +, l4tMajorMinorPatchVersion +, lib +, runCommand +, stdenv +, ... +}: +let + patchedBsp = applyPatches { + name = "patchedBsp"; + src = bspSrc; + patches = [ + ./Makefile.diff + ]; + }; + + mkCopyProjectCommand = name: project: '' + mkdir -p "$out/${name}" + cp --no-preserve=all -vr "${project}"/. "$out/${name}" + ''; + + l4t-oot-projects = { + inherit (gitRepos) hwpm nvidia-oot nvgpu nvdisplay unifiedgpudisp; + nvethernetrm = applyPatches { + name = "nvethernetrm"; + src = gitRepos.nvethernetrm; + # Some directories in the git repo are RO. + # This works for L4T b/c they use different output directory + postPatch = '' + chmod -R u+w osi + ''; + }; + }; + + l4t-oot-modules-sources = runCommand "l4t-oot-sources" { } + ( + # Copy the Makefile + '' + mkdir -p "$out" + cp "${patchedBsp}/source/Makefile" "$out/Makefile" + cp "${patchedBsp}/source/kernel_src_build_env.sh" "$out/kernel_src_build_env.sh" + '' + # copy the projects + + lib.strings.concatMapAttrsStringSep "\n" mkCopyProjectCommand l4t-oot-projects + # See bspSrc/source/source_sync.sh symlink at end of file + + '' + ln -vsrf "$out/nvethernetrm" "$out/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm" + '' + ); +in +stdenv.mkDerivation (finalAttrs: { + pname = "l4t-oot-modules"; + version = "${l4tMajorMinorPatchVersion}"; + src = l4t-oot-modules-sources; + + inherit kernel; + + nativeBuildInputs = finalAttrs.kernel.moduleBuildDependencies; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + # See bspSrc/source/Makefile + makeFlags = finalAttrs.kernel.makeFlags ++ [ + "KERNEL_HEADERS=${finalAttrs.kernel.dev}/lib/modules/${finalAttrs.kernel.modDirVersion}/source" + "KERNEL_OUTPUT=${finalAttrs.kernel.dev}/lib/modules/${finalAttrs.kernel.modDirVersion}/build" + "INSTALL_MOD_PATH=$(out)" + # Maybe TODO: get these from kernel_src_build_env.sh directly + "kernel_name=noble" + "system_type=l4t" + ]; + + postInstall = '' + mkdir -p $dev + cat **/Module.symvers > $dev/Module.symvers + + mkdir -p $dev/include/nvidia + install -m 0644 out/nvidia-conftest/nvidia/conftest.h $dev/include/nvidia/ + ''; + + outputs = [ + "out" + "dev" + ]; + + # # GCC 14.2 seems confused about DRM_MODESET_LOCK_ALL_BEGIN/DRM_MODESET_LOCK_ALL_END in nvdisplay/kernel-open/nvidia-drm/nvidia-drm-drv.c:1344 + # extraMakeFlags = [ "KCFLAGS=-Wno-error=unused-label" ]; + + buildFlags = [ "modules" ]; + installTargets = [ "modules_install" ]; +}) From 8ce48cceddac43e8fc775fe7f9f5b72202c89e1c Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 16:49:48 -0700 Subject: [PATCH 04/27] debs-update changes for r38 --- sourceinfo/debs-update.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sourceinfo/debs-update.py b/sourceinfo/debs-update.py index 8cc92c95..7eee3f43 100755 --- a/sourceinfo/debs-update.py +++ b/sourceinfo/debs-update.py @@ -13,7 +13,6 @@ BASE_URL = "https://repo.download.nvidia.com/jetson" -REPOS = ["t234", "common"] def fetch_debs(url): @@ -53,11 +52,18 @@ def fetch_debs(url): def main(): version = ".".join(sys.argv[1].removeprefix("r").split(sep=".", maxsplit=2)[:2]) + majorVersion = version.split(".")[0] + if majorVersion == "38": + repos = ["common", "som"] + elif majorVersion == "35" or majorVersion == "36": + repos = ["common", "t234"] + else: + raise Exception("Unsupported version") data = { repo: fetch_debs( f"{BASE_URL}/{repo}/dists/r{version}/main/binary-arm64/Packages.gz" ) - for repo in REPOS + for repo in repos } print(json.dumps(data, sort_keys=True, indent=2, separators=(",", ": "))) From 2d57e309866c7f9c1ed199863fb1cda3ff7ae1bd Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Fri, 26 Sep 2025 13:15:54 -0700 Subject: [PATCH 05/27] unpackedDebs: map over debs attributes In preparation for JetPack 7, use concatMapAttrsStringSep instead of hard-code dereferencing "common" and "t234". JetPack 7 uses different names for the repos. --- mk-overlay.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mk-overlay.nix b/mk-overlay.nix index 67b65dbd..bfecef25 100644 --- a/mk-overlay.nix +++ b/mk-overlay.nix @@ -15,7 +15,7 @@ let callPackageWith callPackagesWith composeManyExtensions - concatStringsSep + concatMapAttrsStringSep extends filter makeScope @@ -68,15 +68,13 @@ makeScope final.newScope (self: { # Here for convenience, to see what is in upstream Jetpack unpackedDebs = final.runCommand "unpackedDebs-${l4tMajorMinorPatchVersion}" { nativeBuildInputs = [ final.buildPackages.dpkg ]; } '' mkdir -p $out - ${concatStringsSep "\n" (mapAttrsToList (n: p: "echo Unpacking ${n}; dpkg -x ${p.src} $out/${n}") self.debs.common)} - ${concatStringsSep "\n" (mapAttrsToList (n: p: "echo Unpacking ${n}; dpkg -x ${p.src} $out/${n}") self.debs.t234)} + ${concatMapAttrsStringSep "\n" (repo: debs: (concatMapAttrsStringSep "\n" (n: p: "echo Unpacking ${n}; dpkg -x ${p.src} $out/${n}") debs)) self.debs} ''; # Also just for convenience, unpackedDebsFilenames = final.runCommand "unpackedDebsFilenames-${l4tMajorMinorPatchVersion}" { nativeBuildInputs = [ final.buildPackages.dpkg ]; } '' mkdir -p $out - ${concatStringsSep "\n" (mapAttrsToList (n: p: "echo Extracting file list from ${n}; dpkg --fsys-tarfile ${p.src} | tar --list > $out/${n}") self.debs.common)} - ${concatStringsSep "\n" (mapAttrsToList (n: p: "echo Extracting file list from ${n}; dpkg --fsys-tarfile ${p.src} | tar --list > $out/${n}") self.debs.t234)} + ${concatMapAttrsStringSep "\n" (repo: debs: (concatMapAttrsStringSep "\n" (n: p: "echo Extracting file list from ${n}; dpkg --fsys-tarfile ${p.src} | tar --list > $out/${n}") debs)) self.debs} ''; unpackedGitRepos = final.runCommand "unpackedGitRepos-${l4tMajorMinorPatchVersion}" { } ( From 9088128234032e2d6455a59091f855203506163e Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:04:31 -0700 Subject: [PATCH 06/27] jetpack7: Add initial overlay for JetPack 7.0 --- flake.nix | 2 +- mk-overlay.nix | 36 +- overlay.nix | 16 +- pkgs/r38-bsp.patch | 27 + sourceinfo/r38.2-debs.json | 1503 ++++++++++++++++++++++++++++++ sourceinfo/r38.2.1-gitrepos.json | 576 ++++++++++++ 6 files changed, 2142 insertions(+), 18 deletions(-) create mode 100644 pkgs/r38-bsp.patch create mode 100644 sourceinfo/r38.2-debs.json create mode 100644 sourceinfo/r38.2.1-gitrepos.json diff --git a/flake.nix b/flake.nix index 7c173fd7..7cd6eff7 100644 --- a/flake.nix +++ b/flake.nix @@ -147,7 +147,7 @@ overlays = [ self.overlays.default ]; }); in - pkgs.nvidia-jetpack // { inherit (pkgs) nvidia-jetpack5 nvidia-jetpack6; } + pkgs.nvidia-jetpack // { inherit (pkgs) nvidia-jetpack5 nvidia-jetpack6 nvidia-jetpack7; } ); }; } diff --git a/mk-overlay.nix b/mk-overlay.nix index bfecef25..9616c71e 100644 --- a/mk-overlay.nix +++ b/mk-overlay.nix @@ -7,6 +7,7 @@ , cudaMajorMinorPatchVersion , cudaDriverMajorMinorVersion , bspHash +, bspPatches ? [ ] }: final: _: let @@ -48,22 +49,25 @@ makeScope final.newScope (self: { callPackages = callPackagesWith (final // self); - bspSrc = final.runCommand "l4t-unpacked" - { - # https://developer.nvidia.com/embedded/jetson-linux-archive - # https://repo.download.nvidia.com/jetson/ - src = final.fetchurl { - url = "https://developer.download.nvidia.com/embedded/L4T/r${versions.major l4tMajorMinorPatchVersion}_Release_v${versions.minor l4tMajorMinorPatchVersion}.${versions.patch l4tMajorMinorPatchVersion}/release/Jetson_Linux_R${l4tMajorMinorPatchVersion}_aarch64.tbz2"; - hash = bspHash; - }; - # We use a more recent version of bzip2 here because we hit this bug - # extracting nvidia's archives: - # https://bugs.launchpad.net/ubuntu/+source/bzip2/+bug/1834494 - nativeBuildInputs = [ final.buildPackages.bzip2_1_1 ]; - } '' - bzip2 -d -c $src | tar xf - - mv Linux_for_Tegra $out - ''; + bspSrc = final.applyPatches { + src = final.runCommand "l4t-unpacked" + { + # https://developer.nvidia.com/embedded/jetson-linux-archive + # https://repo.download.nvidia.com/jetson/ + src = final.fetchurl { + url = "https://developer.download.nvidia.com/embedded/L4T/r${versions.major l4tMajorMinorPatchVersion}_Release_v${versions.minor l4tMajorMinorPatchVersion}.${versions.patch l4tMajorMinorPatchVersion}/release/Jetson_Linux_R${l4tMajorMinorPatchVersion}_aarch64.tbz2"; + hash = bspHash; + }; + # We use a more recent version of bzip2 here because we hit this bug + # extracting nvidia's archives: + # https://bugs.launchpad.net/ubuntu/+source/bzip2/+bug/1834494 + nativeBuildInputs = [ final.buildPackages.bzip2_1_1 ]; + } '' + bzip2 -d -c $src | tar xf - + mv Linux_for_Tegra $out + ''; + patches = bspPatches; + }; # Here for convenience, to see what is in upstream Jetpack unpackedDebs = final.runCommand "unpackedDebs-${l4tMajorMinorPatchVersion}" { nativeBuildInputs = [ final.buildPackages.dpkg ]; } '' diff --git a/overlay.nix b/overlay.nix index 6063fc3d..bac523a0 100644 --- a/overlay.nix +++ b/overlay.nix @@ -47,7 +47,7 @@ in l4tMajorMinorPatchVersion = "36.4.4"; cudaMajorMinorPatchVersion = "12.6.10"; - # nix build .#legacyPacakges.l4t-cuda.src; unpack the deb; find libnvidia-ptxjijtcompiler.so + # nix build .#legacyPacakges.nvidia-l4t-3d-core.src; unpack the deb; find libnvidia-ptxjitcompiler.so # and use that. cudaDriverMajorMinorVersion = "540.4.0"; @@ -56,6 +56,20 @@ in final prev; + nvidia-jetpack7 = import ./mk-overlay.nix + { + jetpackMajorMinorPatchVersion = "7.0"; + l4tMajorMinorPatchVersion = "38.2.1"; + cudaMajorMinorPatchVersion = "12.6.10"; #TODO + + cudaDriverMajorMinorVersion = "580.00"; + + bspHash = "sha256-raHtaLeODpgHxw24e+ViturGqpXVOL9jtun4owCDcEs="; + bspPatches = [ ./pkgs/r38-bsp.patch ]; + } + final + prev; + # Due to the interplay between JetPack releases and supported CUDA versions, the choice of CUDA version drives the # version of nvidia-jetpack made the default to avoid the need to maintain tedious overlays and ensures the two stay # in sync by default. diff --git a/pkgs/r38-bsp.patch b/pkgs/r38-bsp.patch new file mode 100644 index 00000000..2ddcc104 --- /dev/null +++ b/pkgs/r38-bsp.patch @@ -0,0 +1,27 @@ +diff --git a/bootloader/LICENSE.bl31_t264.fip.rst b/bootloader/LICENSE.bl31_t264.fip.rst +index 9ba773d..3a1f4e8 120000 +--- a/bootloader/LICENSE.bl31_t264.fip.rst ++++ b/bootloader/LICENSE.bl31_t264.fip.rst +@@ -1 +1 @@ +-Linux_for_Tegra/bootloader/LICENSE.bl31_t264.bin.rst +\ No newline at end of file ++LICENSE.bl31_t264.bin.rst +\ No newline at end of file +diff --git a/bootloader/LICENSE.hafnium_t264.fip.rst b/bootloader/LICENSE.hafnium_t264.fip.rst +index 00bf565..a49abfe 120000 +--- a/bootloader/LICENSE.hafnium_t264.fip.rst ++++ b/bootloader/LICENSE.hafnium_t264.fip.rst +@@ -1 +1 @@ +-Linux_for_Tegra/bootloader/LICENSE.hafnium_t264.bin.rst +\ No newline at end of file ++LICENSE.hafnium_t264.bin.rst +\ No newline at end of file +diff --git a/bootloader/LICENSE.t264_spmc.dtb.rst b/bootloader/LICENSE.t264_spmc.dtb.rst +index 00bf565..a49abfe 120000 +--- a/bootloader/LICENSE.t264_spmc.dtb.rst ++++ b/bootloader/LICENSE.t264_spmc.dtb.rst +@@ -1 +1 @@ +-Linux_for_Tegra/bootloader/LICENSE.hafnium_t264.bin.rst +\ No newline at end of file ++LICENSE.hafnium_t264.bin.rst +\ No newline at end of file diff --git a/sourceinfo/r38.2-debs.json b/sourceinfo/r38.2-debs.json new file mode 100644 index 00000000..be6e35b6 --- /dev/null +++ b/sourceinfo/r38.2-debs.json @@ -0,0 +1,1503 @@ +{ + "common": { + "collectx-bringup": { + "filename": "pool/main/c/collectx-bringup/collectx-bringup_1.20.3-1_arm64.deb", + "sha256": "2df8028528c6b3e0369284f1efa0b527e0c10a49bd2be70efee34fb0c3271507", + "version": "1.20.3-1" + }, + "cuda-cccl-13-0": { + "filename": "pool/main/c/cuda-cccl/cuda-cccl-13-0_13.0.50-1_arm64.deb", + "sha256": "4ddff5a943bbce2d1793d28c3cde63fd2b011c9515cc5b008f8955005c2965b4", + "source": "cuda-cccl", + "version": "13.0.50-1" + }, + "cuda-command-line-tools-13-0": { + "filename": "pool/main/c/cuda-command-line-tools-13-0/cuda-command-line-tools-13-0_13.0.0-1_arm64.deb", + "sha256": "d2ffddde14bf7257a6f47737a26e95e37600861301b12bdfee4d2e96125f3acf", + "version": "13.0.0-1" + }, + "cuda-compat-13-0": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/cuda-compat-13-0_580.65.06-0ubuntu1_arm64.deb", + "sha256": "a5573f4bb22dad6446c871fea34a1e1c500936257c634386346871c51f9db195", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "cuda-compiler-13-0": { + "filename": "pool/main/c/cuda-compiler-13-0/cuda-compiler-13-0_13.0.0-1_arm64.deb", + "sha256": "1826bdb86b09efd8afb89dc3d25f51d749ef7aa49f7bedb124ae8307d60f21d8", + "version": "13.0.0-1" + }, + "cuda-crt-13-0": { + "filename": "pool/main/c/cuda-crt/cuda-crt-13-0_13.0.48-1_arm64.deb", + "sha256": "ae228663c817bd92a5fcc2bcb1c0854741ec1a6582bfd597fc4e202e77bfc3cc", + "source": "cuda-crt", + "version": "13.0.48-1" + }, + "cuda-ctadvisor-13-0": { + "filename": "pool/main/c/cuda-ctadvisor/cuda-ctadvisor-13-0_13.0.39-1_arm64.deb", + "sha256": "5a263f376075b3de23940d43bbf091f15638aecf38093e394f57f5da23583990", + "source": "cuda-ctadvisor", + "version": "13.0.39-1" + }, + "cuda-cudart-13-0": { + "filename": "pool/main/c/cuda-cudart/cuda-cudart-13-0_13.0.48-1_arm64.deb", + "sha256": "399365014352921445857edf107863a41bb7c327d56b9b2f15b4a4858c6ad70e", + "source": "cuda-cudart", + "version": "13.0.48-1" + }, + "cuda-cudart-dev-13-0": { + "filename": "pool/main/c/cuda-cudart/cuda-cudart-dev-13-0_13.0.48-1_arm64.deb", + "sha256": "a250e6f687a78638edbd722846dadd720e6925fad19570c8fea3be14a94c7d70", + "source": "cuda-cudart", + "version": "13.0.48-1" + }, + "cuda-culibos-13-0": { + "filename": "pool/main/c/cuda-culibos/cuda-culibos-13-0_13.0.39-1_arm64.deb", + "sha256": "eda4a8a749a2da91572c4baf57dfa73281e438bb2eb58f90f23379c400f89c06", + "source": "cuda-culibos", + "version": "13.0.39-1" + }, + "cuda-culibos-dev-13-0": { + "filename": "pool/main/c/cuda-culibos/cuda-culibos-dev-13-0_13.0.39-1_arm64.deb", + "sha256": "d96dea261c1e30b0e43019e321487f8f2d27480f331953d9890e02d80a5fb9aa", + "source": "cuda-culibos", + "version": "13.0.39-1" + }, + "cuda-cuobjdump-13-0": { + "filename": "pool/main/c/cuda-cuobjdump/cuda-cuobjdump-13-0_13.0.39-1_arm64.deb", + "sha256": "0b4154bca9071ee4d1c26be5f0e38fa717477c4b557f7680262b4d6d79a077a2", + "source": "cuda-cuobjdump", + "version": "13.0.39-1" + }, + "cuda-cupti-13-0": { + "filename": "pool/main/c/cuda-cupti/cuda-cupti-13-0_13.0.48-1_arm64.deb", + "sha256": "a390c229852ea31c61771f82f29963e6d4580d74c865a74ba3fecf53d3959886", + "source": "cuda-cupti", + "version": "13.0.48-1" + }, + "cuda-cupti-dev-13-0": { + "filename": "pool/main/c/cuda-cupti/cuda-cupti-dev-13-0_13.0.48-1_arm64.deb", + "sha256": "af8ad5f0c08a5505b7ffc7a81621524b4519b8c81da75180e1f464b68236e75c", + "source": "cuda-cupti", + "version": "13.0.48-1" + }, + "cuda-cuxxfilt-13-0": { + "filename": "pool/main/c/cuda-cuxxfilt/cuda-cuxxfilt-13-0_13.0.39-1_arm64.deb", + "sha256": "bc652397c7e20680d74fed7d13be7e21b2cf4bc9bf936aa035607cf6e1d381d9", + "source": "cuda-cuxxfilt", + "version": "13.0.39-1" + }, + "cuda-documentation-13-0": { + "filename": "pool/main/c/cuda-documentation/cuda-documentation-13-0_13.0.39-1_arm64.deb", + "sha256": "441cf608c241ba69c1bfd3927312eecede005c8eca7d4186af0ef13e7965305a", + "source": "cuda-documentation", + "version": "13.0.39-1" + }, + "cuda-driver-dev-13-0": { + "filename": "pool/main/c/cuda-cudart/cuda-driver-dev-13-0_13.0.48-1_arm64.deb", + "sha256": "73a305ac2aa16d53cda27feee38f05941ca573332995687105f519190f4350d2", + "source": "cuda-cudart", + "version": "13.0.48-1" + }, + "cuda-gdb-13-0": { + "filename": "pool/main/c/cuda-gdb/cuda-gdb-13-0_13.0.39-1_arm64.deb", + "sha256": "5cf033b19a843c8480e2d3665925156f51cd8743cf2c86255cc0218bc06e6973", + "source": "cuda-gdb", + "version": "13.0.39-1" + }, + "cuda-gdb-src-13-0": { + "filename": "pool/main/c/cuda-gdb/cuda-gdb-src-13-0_13.0.39-1_arm64.deb", + "sha256": "415d23894d49a524fadfb394d5b2a126312fcc2e73adc55fb7b80013dea442a7", + "source": "cuda-gdb", + "version": "13.0.39-1" + }, + "cuda-minimal-build-13-0": { + "filename": "pool/main/c/cuda-minimal-build-13-0/cuda-minimal-build-13-0_13.0.0-1_arm64.deb", + "sha256": "88d90553bf4af4c9dfc4a95da512a9df570279497ea6ecedfe4378fa4181a869", + "version": "13.0.0-1" + }, + "cuda-nsight-compute-13-0": { + "filename": "pool/main/c/cuda-nsight-compute-13-0/cuda-nsight-compute-13-0_13.0.0-1_arm64.deb", + "sha256": "b8b9b6fd84eef2f5e8585bb56622dc0b5e4c1399489ddeed1653e8410fa825ad", + "version": "13.0.0-1" + }, + "cuda-nsight-systems-13-0": { + "filename": "pool/main/c/cuda-nsight-systems-13-0/cuda-nsight-systems-13-0_13.0.0-1_arm64.deb", + "sha256": "73cbdb4fd36f7c543d2fee88851929ac12224ccab0f8bd9b2dfc197d69d3d637", + "version": "13.0.0-1" + }, + "cuda-nvcc-13-0": { + "filename": "pool/main/c/cuda-nvcc/cuda-nvcc-13-0_13.0.48-1_arm64.deb", + "sha256": "c320d58169ba86a3adbbd48955efa9d2a62c08009f2bbeca8721317533bc70cc", + "source": "cuda-nvcc", + "version": "13.0.48-1" + }, + "cuda-nvdisasm-13-0": { + "filename": "pool/main/c/cuda-nvdisasm/cuda-nvdisasm-13-0_13.0.39-1_arm64.deb", + "sha256": "2cf59525037339f1fa7b2143a15d9d7afb353690ad09ca526c83f86dde52435c", + "source": "cuda-nvdisasm", + "version": "13.0.39-1" + }, + "cuda-nvml-dev-13-0": { + "filename": "pool/main/c/cuda-nvml-dev/cuda-nvml-dev-13-0_13.0.39-1_arm64.deb", + "sha256": "b99fb5614d36031a6ed7f64912c68d21212794ab7aea4a6c1e084e000b9ad512", + "source": "cuda-nvml-dev", + "version": "13.0.39-1" + }, + "cuda-nvprune-13-0": { + "filename": "pool/main/c/cuda-nvprune/cuda-nvprune-13-0_13.0.39-1_arm64.deb", + "sha256": "1b478656640abed0ffecef36c0dc157f8cbedca1bcd102bf3da7ce8ea7d67c6a", + "source": "cuda-nvprune", + "version": "13.0.39-1" + }, + "cuda-nvrtc-13-0": { + "filename": "pool/main/c/cuda-nvrtc/cuda-nvrtc-13-0_13.0.48-1_arm64.deb", + "sha256": "7620bb17b14e57596775d9fd0284a4df618283f0c6772c77de4abfbac2091480", + "source": "cuda-nvrtc", + "version": "13.0.48-1" + }, + "cuda-nvrtc-dev-13-0": { + "filename": "pool/main/c/cuda-nvrtc/cuda-nvrtc-dev-13-0_13.0.48-1_arm64.deb", + "sha256": "f7cafa202fe87b32d3192cf3f203b5aa03a62095b9acaf75135ef7f5270f7bbc", + "source": "cuda-nvrtc", + "version": "13.0.48-1" + }, + "cuda-nvtx-13-0": { + "filename": "pool/main/c/cuda-nvtx/cuda-nvtx-13-0_13.0.39-1_arm64.deb", + "sha256": "b24f88e7f8e7caeb6ab11aa9bbd38a09efbd7ccb6278b1e721ded49e8285651d", + "source": "cuda-nvtx", + "version": "13.0.39-1" + }, + "cuda-profiler-api-13-0": { + "filename": "pool/main/c/cuda-profiler-api/cuda-profiler-api-13-0_13.0.39-1_arm64.deb", + "sha256": "2cd1cc94faa6ae1dd68914470dc8a4abc4c78717088cb8737c946959195b99c4", + "source": "cuda-profiler-api", + "version": "13.0.39-1" + }, + "cuda-sandbox-dev-13-0": { + "filename": "pool/main/c/cuda-sandbox-dev/cuda-sandbox-dev-13-0_13.0.39-1_arm64.deb", + "sha256": "6dd3ffa42100b0c33dbe4129d99c97f3824756e3bd209413879d105e4adf67d9", + "source": "cuda-sandbox-dev", + "version": "13.0.39-1" + }, + "cuda-sanitizer-13-0": { + "filename": "pool/main/c/cuda-sanitizer-api/cuda-sanitizer-13-0_13.0.48-1_arm64.deb", + "sha256": "5385dc3d3177e5eb8caf62939eb60de8e0606e453be7369e438e8997ced4cbd0", + "source": "cuda-sanitizer-api", + "version": "13.0.48-1" + }, + "cuda-toolkit-13-0-config-common": { + "filename": "pool/main/c/cuda-cudart/cuda-toolkit-13-0-config-common_13.0.48-1_all.deb", + "sha256": "abffad16a936a95f453bd744077b9fe6120d9f8d081f1b659a24531856c081d9", + "source": "cuda-cudart", + "version": "13.0.48-1" + }, + "cuda-toolkit-13-config-common": { + "filename": "pool/main/c/cuda-cudart/cuda-toolkit-13-config-common_13.0.48-1_all.deb", + "sha256": "623ec73c66adc97e385bb8149d4c64eddfc5643fa7df11b0dc11812c94d7ddf3", + "source": "cuda-cudart", + "version": "13.0.48-1" + }, + "cuda-toolkit-config-common": { + "filename": "pool/main/c/cuda-cudart/cuda-toolkit-config-common_13.0.48-1_all.deb", + "sha256": "dfb7289c1712ce9dc538ecd7f3d37fbc0f0303763a626ea0a611a2b173caa868", + "source": "cuda-cudart", + "version": "13.0.48-1" + }, + "cuda-visual-tools-13-0": { + "filename": "pool/main/c/cuda-visual-tools-13-0/cuda-visual-tools-13-0_13.0.0-1_arm64.deb", + "sha256": "064012a365d9aad8a8759a58df5c4c8e8ac4accdfcc5ac21ef7c83c306ac44a7", + "version": "13.0.0-1" + }, + "cudnn": { + "filename": "pool/main/c/cudnn/cudnn_9.12.0-1_arm64.deb", + "sha256": "986175c6f771ea40905283da396c524b40cbb629a2056e3b71504b5fd5895d65", + "version": "9.12.0-1" + }, + "cudnn-jit": { + "filename": "pool/main/c/cudnn-jit/cudnn-jit_9.12.0-1_arm64.deb", + "sha256": "922a83f5f607cfb1c4f24ce257e05b41a0bdc39423e553369c7eb8ef198ea9c0", + "version": "9.12.0-1" + }, + "cudnn9": { + "filename": "pool/main/c/cudnn9/cudnn9_9.12.0-1_arm64.deb", + "sha256": "7609f9116caca261ba6f1a79198adbca85cfed3fbffa2d6c9a0dd0f91418fbf3", + "version": "9.12.0-1" + }, + "cudnn9-cuda-12": { + "filename": "pool/main/c/cudnn/cudnn9-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "760127a78da84a355ac280f206331749d59df3a7611f2cdf9bd58a8f25763fad", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-cuda-12-9": { + "filename": "pool/main/c/cudnn/cudnn9-cuda-12-9_9.12.0.46-1_arm64.deb", + "sha256": "e2361d1d3f57103cd643582591af131f71b9d9654b90d66c2ac8596e75e59220", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-cuda-13": { + "filename": "pool/main/c/cudnn/cudnn9-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "aa56914943de08e4d9075cca5d73a6daa87b8526133df8d3dee7cde401d8e8f5", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-cuda-13-0": { + "filename": "pool/main/c/cudnn/cudnn9-cuda-13-0_9.12.0.46-1_arm64.deb", + "sha256": "e7edf3d73e2de7c4b681a0e40203cbf2715440c288d5caa5dde52347a97ba070", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-jit": { + "filename": "pool/main/c/cudnn9-jit/cudnn9-jit_9.12.0-1_arm64.deb", + "sha256": "7bf1bc36ab2bb3ed6b30ef19a61af0fd3ed218006faace97caa447ca819d776a", + "version": "9.12.0-1" + }, + "cudnn9-jit-cuda-12": { + "filename": "pool/main/c/cudnn/cudnn9-jit-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "c431473fc00c3854fe5b9cc899bdec51fd54893786bccaf80c2496ef68c768c3", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-jit-cuda-12-9": { + "filename": "pool/main/c/cudnn/cudnn9-jit-cuda-12-9_9.12.0.46-1_arm64.deb", + "sha256": "181224b9e4f483530f01eb93f0d11fd44efb86602ef497eeee5c82f3377e4c29", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-jit-cuda-13": { + "filename": "pool/main/c/cudnn/cudnn9-jit-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "30c41aa0f50ff009a8d39fde015ce20a27851a016cdbf426f7cde0937f86e221", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "cudnn9-jit-cuda-13-0": { + "filename": "pool/main/c/cudnn/cudnn9-jit-cuda-13-0_9.12.0.46-1_arm64.deb", + "sha256": "0db381546765e856e93de5e6203a780919ee26ef094db822a1b0ab3d1b4be60a", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "deepstream-8.0": { + "filename": "pool/main/d/deepstream-8.0/deepstream-8.0_8.0.0-1_arm64.deb", + "sha256": "1eb5ad4550d43416a561a318f53c5c2a4a166f828b9dcc8e50c321d6e6055c31", + "version": "8.0.0-1" + }, + "dh-dkms": { + "filename": "pool/main/d/dkms/dh-dkms_3.2.1-1ubuntu2_all.deb", + "sha256": "419ba23750b537a0b1ee5c0f01854039a602209640ab8f51a572a3770faa35c3", + "source": "dkms", + "version": "1:3.2.1-1ubuntu2" + }, + "dkms": { + "filename": "pool/main/d/dkms/dkms_3.2.1-1ubuntu2_all.deb", + "sha256": "47af16cb67f6f7ef1c2086f28744364296267020536d601fa0cd8acdbd534965", + "version": "1:3.2.1-1ubuntu2" + }, + "dkms-noautoinstall-test-dkms": { + "filename": "pool/main/d/dkms/dkms-noautoinstall-test-dkms_3.2.1-1ubuntu2_all.deb", + "sha256": "1ed7542b5abc20c995339b6ec4548bcad4ac74c2fc8a6e788bfca943ba7a21f8", + "source": "dkms", + "version": "1:3.2.1-1ubuntu2" + }, + "dkms-replace-test-dkms": { + "filename": "pool/main/d/dkms/dkms-replace-test-dkms_3.2.1-1ubuntu2_all.deb", + "sha256": "687758b23e61fd7ac27f2789e257f970cd45beeb6c0d35ef9f7913e369cf34d2", + "source": "dkms", + "version": "1:3.2.1-1ubuntu2" + }, + "dkms-test-dkms": { + "filename": "pool/main/d/dkms/dkms-test-dkms_3.2.1-1ubuntu2_all.deb", + "sha256": "62eb58ec3b066c324d3b1d3034db0c2dab557b7dbd2446f069c140a59ea2e0cf", + "source": "dkms", + "version": "1:3.2.1-1ubuntu2" + }, + "gds-tools-13-0": { + "filename": "pool/main/libc/libcufile/gds-tools-13-0_1.15.0.42-1_arm64.deb", + "sha256": "b230f9527a575955d9384cf524c6a092e801e65223bb29c221e31508589e4529", + "source": "libcufile", + "version": "1.15.0.42-1" + }, + "holoscan": { + "filename": "pool/main/h/holoscan/holoscan_3.6.1_arm64.deb", + "sha256": "76ba0e4962d56ea4b3cb9b316eaabd2d4af14b889764af06415399fff89c42c0", + "version": "3.6.1" + }, + "libcublas-13-0": { + "filename": "pool/main/libc/libcublas/libcublas-13-0_13.0.0.19-1_arm64.deb", + "sha256": "99811d486c94dd7872da2d08bf75ff15692a83aba20d9acd7b664b48994281f4", + "source": "libcublas", + "version": "13.0.0.19-1" + }, + "libcublas-dev-13-0": { + "filename": "pool/main/libc/libcublas/libcublas-dev-13-0_13.0.0.19-1_arm64.deb", + "sha256": "eca54fc2cba92e7bef84df0d4ed98b3b2c5d99d3a9c8f28a2895b68de520a0b9", + "source": "libcublas", + "version": "13.0.0.19-1" + }, + "libcudnn9-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "4a7c94a408a10e6efeb8cf09cccdf7dcfa3748ad8caa50efddc02b894a6eb82d", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-cuda-13": { + "filename": "pool/main/c/cudnn/libcudnn9-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "04a793a6e206b153578851f25d7dcb923a17d19e166fb1acb4e4b2f47e7a6516", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-dev-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-dev-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "04c9b574d5acefb07be0aebde2b8e2c4f35e7091145aef4c75ad7844f803e136", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-dev-cuda-13": { + "filename": "pool/main/c/cudnn/libcudnn9-dev-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "854b889fee8135209acdb076c5feffd8170e9d6c330e5f6d3c19005d7a555917", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-headers-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-headers-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "b2da75e5fbd28e4dc4b053ecbe25fd0631f2d0e35a4b58c3a075dbe210e79dcd", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-headers-cuda-13": { + "filename": "pool/main/c/cudnn/libcudnn9-headers-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "4f8f12616437d16629769ca899524dfa3057d40c6044c2e8b44078d37be7e467", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-jit-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-jit-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "39fbc09af7d666aa782b5970e8986eda947ea7ea79aa5ef738c4ba215eb5f499", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-jit-cuda-13": { + "filename": "pool/main/c/cudnn/libcudnn9-jit-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "3a492fc7b4f184f83a18efa5e75dcf754c2cc2b37e650c46707dfaafd13475f4", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-jit-dev-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-jit-dev-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "095f49c5d644e95e9b351d4110d9a8e140cbd865c93c8a742ef9df716e60bb77", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-jit-dev-cuda-13": { + "filename": "pool/main/c/cudnn/libcudnn9-jit-dev-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "3443e972ce00d80e62c544ec1ce9c9e2a39be41a3f1fb69f53506f1a5bb42f48", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-samples": { + "filename": "pool/main/c/cudnn-samples/libcudnn9-samples_9.12.0.46-1_all.deb", + "sha256": "674152f1fa5ca91cacbb0c74ffaec9550bf6d46e45cd92266e8e35193eefc97b", + "source": "cudnn-samples", + "version": "9.12.0.46-1" + }, + "libcudnn9-static-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-static-cuda-12_9.12.0.46-1_arm64.deb", + "sha256": "19000c45537a872ca82d7c3e0ad1e171b2ecc426c01b93980d86ebfde50beabf", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcudnn9-static-cuda-13": { + "filename": "pool/main/c/cudnn/libcudnn9-static-cuda-13_9.12.0.46-1_arm64.deb", + "sha256": "f928d0f40c641c251e6f0397d007fa39d82653da04b65efef9df0a5c45b5f945", + "source": "cudnn", + "version": "9.12.0.46-1" + }, + "libcufft-13-0": { + "filename": "pool/main/libc/libcufft/libcufft-13-0_12.0.0.15-1_arm64.deb", + "sha256": "f1d38860f267da646ee59edfe3e6b80757e852b658dfe00b9f843817e82af87c", + "source": "libcufft", + "version": "12.0.0.15-1" + }, + "libcufft-dev-13-0": { + "filename": "pool/main/libc/libcufft/libcufft-dev-13-0_12.0.0.15-1_arm64.deb", + "sha256": "b702149fdfb8951ea08a4d998366ed365e1950c59526a9c1bb067eb2534f2246", + "source": "libcufft", + "version": "12.0.0.15-1" + }, + "libcufile-13-0": { + "filename": "pool/main/libc/libcufile/libcufile-13-0_1.15.0.42-1_arm64.deb", + "sha256": "24a8e9388124a45408a9b5b4ab0368bf8c869c71777bcf7c2d9b1717294b0eda", + "source": "libcufile", + "version": "1.15.0.42-1" + }, + "libcufile-dev-13-0": { + "filename": "pool/main/libc/libcufile/libcufile-dev-13-0_1.15.0.42-1_arm64.deb", + "sha256": "951f1f8198300a2cfefd9f94ab7c684edd8500c4474ec29dc3af7b37e33d2d30", + "source": "libcufile", + "version": "1.15.0.42-1" + }, + "libcurand-13-0": { + "filename": "pool/main/libc/libcurand/libcurand-13-0_10.4.0.35-1_arm64.deb", + "sha256": "e4f37d08dda851cefa5693adfdecec3c1a7879e47342755ce8d8c2a1fcea066b", + "source": "libcurand", + "version": "10.4.0.35-1" + }, + "libcurand-dev-13-0": { + "filename": "pool/main/libc/libcurand/libcurand-dev-13-0_10.4.0.35-1_arm64.deb", + "sha256": "5a1d55c3ffc7e516bb801dcd2614419146e2551adcbed670f2bda379dd7747f9", + "source": "libcurand", + "version": "10.4.0.35-1" + }, + "libcusolver-13-0": { + "filename": "pool/main/libc/libcusolver/libcusolver-13-0_12.0.3.29-1_arm64.deb", + "sha256": "4b641739ec5f47a54a7833a89aa15575a8a73260847d07ab751686e494c4f1bc", + "source": "libcusolver", + "version": "12.0.3.29-1" + }, + "libcusolver-dev-13-0": { + "filename": "pool/main/libc/libcusolver/libcusolver-dev-13-0_12.0.3.29-1_arm64.deb", + "sha256": "bcffd6bcd6919e08606e0a21cdd5d5805dab693d2988f77270af40c856b729af", + "source": "libcusolver", + "version": "12.0.3.29-1" + }, + "libcusparse-13-0": { + "filename": "pool/main/libc/libcusparse/libcusparse-13-0_12.6.2.49-1_arm64.deb", + "sha256": "a9c53a7adf395a2887f238d719eac8493437258249d9a1e5f759d407aeee32ab", + "source": "libcusparse", + "version": "12.6.2.49-1" + }, + "libcusparse-dev-13-0": { + "filename": "pool/main/libc/libcusparse/libcusparse-dev-13-0_12.6.2.49-1_arm64.deb", + "sha256": "2c40668993b893c15ce86c3035fd88e110d1eb42f9e14da2c40d390de158db72", + "source": "libcusparse", + "version": "12.6.2.49-1" + }, + "libnpp-13-0": { + "filename": "pool/main/libn/libnpp/libnpp-13-0_13.0.0.50-1_arm64.deb", + "sha256": "9fa1c60a853e410d145cb2e1ca8141bd4efaf26ecda8c5631f30f175195b7102", + "source": "libnpp", + "version": "13.0.0.50-1" + }, + "libnpp-dev-13-0": { + "filename": "pool/main/libn/libnpp/libnpp-dev-13-0_13.0.0.50-1_arm64.deb", + "sha256": "85b88ce06a101224ebe7be293f38df25e7daf507e962bbb098e1a68e212501f7", + "source": "libnpp", + "version": "13.0.0.50-1" + }, + "libnvfatbin-13-0": { + "filename": "pool/main/libn/libnvfatbin/libnvfatbin-13-0_13.0.39-1_arm64.deb", + "sha256": "c694bfda1561ed2b57dcfdc8e46b17c2c468b718009f06909ec766d6327524a4", + "source": "libnvfatbin", + "version": "13.0.39-1" + }, + "libnvfatbin-dev-13-0": { + "filename": "pool/main/libn/libnvfatbin/libnvfatbin-dev-13-0_13.0.39-1_arm64.deb", + "sha256": "8668ea1aef3c33d6b2c44f580c1eab21b3c18490af758877d2dad3ed2f6d36dd", + "source": "libnvfatbin", + "version": "13.0.39-1" + }, + "libnvidia-cfg1-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-cfg1-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "263638f5fed02d6d0ec36f32259e1df2834f031a64df2daae797e027f4a9ea3a", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-common-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-common-580_580.65.06-0ubuntu1_all.deb", + "sha256": "7fb396d2ec18719477c696804ae2701be274f440703284b0fc3c726cf27a7b37", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-compute-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-compute-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "5952081c907b3e43b800cfa48d63b6a7dcebb1a45d9a9d076a316f98e071b38f", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-container-tools": { + "filename": "pool/main/libn/libnvidia-container/libnvidia-container-tools_1.18.0~rc.4-1_arm64.deb", + "sha256": "9b7dbdf6e1db2545f9abbc2f69c7da7ee5b26bf1656683d0f4dc64b31ec6175c", + "source": "libnvidia-container", + "version": "1.18.0~rc.4-1" + }, + "libnvidia-container1": { + "filename": "pool/main/libn/libnvidia-container/libnvidia-container1_1.18.0~rc.4-1_arm64.deb", + "sha256": "438be485912ecd19bba083920ca6f351a07fefa66df98c5c2ab3b4db548bd105", + "source": "libnvidia-container", + "version": "1.18.0~rc.4-1" + }, + "libnvidia-decode-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-decode-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "133a352555a28ece5d54b51e9bd929857b76e3a9c275a59bccedb6feb5a8b07f", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-egl-gbm1": { + "filename": "pool/main/n/nvidia-egl-gbm/libnvidia-egl-gbm1_1.1.2.1-1ubuntu1_arm64.deb", + "sha256": "68e50607c35a9842bbccec9d89f9098a307a4773e9aed72533d9134ccbc78589", + "source": "nvidia-egl-gbm", + "version": "1.1.2.1-1ubuntu1" + }, + "libnvidia-egl-wayland-dev": { + "filename": "pool/main/e/egl-wayland/libnvidia-egl-wayland-dev_1.1.19-1ubuntu1_arm64.deb", + "sha256": "1b85a5230d619dc618ce455832c39fd75adb834bbae4a72c2fb4a00bf3e22d87", + "source": "egl-wayland", + "version": "1:1.1.19-1ubuntu1" + }, + "libnvidia-egl-wayland1": { + "filename": "pool/main/e/egl-wayland/libnvidia-egl-wayland1_1.1.19-1ubuntu1_arm64.deb", + "sha256": "743fcee318fa7ad219bbfa717ba209fbf05426b5b8c370423fa6b044ff33449c", + "source": "egl-wayland", + "version": "1:1.1.19-1ubuntu1" + }, + "libnvidia-egl-xcb1": { + "filename": "pool/main/e/egl-x11/libnvidia-egl-xcb1_1.0.2-1ubuntu1_arm64.deb", + "sha256": "11d780691cb1d2acb37418deb16de5e5760be0f3b2b9b82dfebdcc86c1bc94c6", + "source": "egl-x11", + "version": "1.0.2-1ubuntu1" + }, + "libnvidia-egl-xlib1": { + "filename": "pool/main/e/egl-x11/libnvidia-egl-xlib1_1.0.2-1ubuntu1_arm64.deb", + "sha256": "c2e474f2f55e990ee67e913c52b06550d6f87d2914d21839bdda0eaf21e1c561", + "source": "egl-x11", + "version": "1.0.2-1ubuntu1" + }, + "libnvidia-encode-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-encode-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "6f062fa03109709be7bc45d0f89b6d1dc5dbe74f6c681ddaa2ed65378bd1045c", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-extra-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-extra-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "e3500bd02d810eee1e5bc2b9500cfcc844e6f0c829c36bc667207ef82dcf7913", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-fbc1-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-fbc1-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "c9dd5bfeb124615e1229b8cf700e3b5c37d92b4dda4fdd53d8d09fce40a00c6d", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-gl-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-gl-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "aafecb92dad95ec8d8a4f61019e3fce452220be47af656911b8499f1d588270f", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-gpucomp-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/libnvidia-gpucomp-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "c08200fc2f12233728c1c3453aa951b157bccaf5862c2a98fefa1f7b3840ca78", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "libnvidia-nscq": { + "filename": "pool/main/libn/libnvidia-nscq/libnvidia-nscq_580.65.06-1_arm64.deb", + "sha256": "7eb7a4d46ce1dd1aa1604b9b9499a7b283deb296fbb3d2cf36c5016c625f5c55", + "version": "580.65.06-1" + }, + "libnvinfer-bin": { + "filename": "pool/main/t/tensorrt/libnvinfer-bin_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "87757a408983513ba8c9c7a22fbe04f10673bade62872b87553efa15217bd4e4", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "40b2b769b6f5c77684d5feec2ca01e87cbb3d0e1ff8b41c679e264f7d98b65e8", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-dispatch-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-dispatch-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "7d7a89a6873dbcb7640e39d0f1819f39d5854e6a81a56d3763efc98a43eff80b", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-dispatch10": { + "filename": "pool/main/t/tensorrt/libnvinfer-dispatch10_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "da615f77ffd29b14652dc62658089b29cc9cde4560af9991d54f12d45a64b0cd", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-headers-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-headers-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "61baa587776b5a074fc4bc794836b32c3fb4d0573ce7610389fc65f58ac0336b", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-headers-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-headers-plugin-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "8e66fb552c748f7c890cf69eb7596d4a42ab48f916dfbc2036987a79aab43cd5", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-headers-python-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-headers-python-plugin-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "8432649d2a53a4857c6c4363507a234952da8d21135150673c6e9b1178bf42f1", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-lean-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-lean-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "a84eea17806bef0de03c222a8a3952d6aec2e05e162ae5cc9cdeda5b28982997", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-lean10": { + "filename": "pool/main/t/tensorrt/libnvinfer-lean10_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "85a6ecce9b42d5dac0a9a8c1df2e03e90410b98c6cc99d16aa90ed8fef657ea1", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-plugin-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "23a3e2f949ddbc266c5945b257f7be276171b6f19ec3d67d76857e890d36f42d", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-plugin10": { + "filename": "pool/main/t/tensorrt/libnvinfer-plugin10_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "0af6f955b17da27fc94284cdd39a67b6702452bc8bc8587f9f6a63be58ca1f71", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-samples": { + "filename": "pool/main/t/tensorrt/libnvinfer-samples_10.13.3.9-1+cuda13.0_all.deb", + "sha256": "3a0acf115e34987c0f2e3534374696ac0c4ef05e6a02314a3eafc4397ec9675c", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-vc-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-vc-plugin-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "c39aa8d25d8be49e9cd17bc96f2dc45efa2bc8c8606cec0f33cc2ddede402944", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer-vc-plugin10": { + "filename": "pool/main/t/tensorrt/libnvinfer-vc-plugin10_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "732f161bbebe8b2d1567f2f3cb8e26de38ef469ab08bbfdad2edffa460696e19", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvinfer10": { + "filename": "pool/main/t/tensorrt/libnvinfer10_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "c153dd67175d12661437d5bc9b573344467bc716c03133bc77ed1befa820eac6", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvjitlink-13-0": { + "filename": "pool/main/libn/libnvjitlink/libnvjitlink-13-0_13.0.39-1_arm64.deb", + "sha256": "18046afb2e56ae3392038bcca6263a8ac69465a40b5a9cda370a06c8be6848c5", + "source": "libnvjitlink", + "version": "13.0.39-1" + }, + "libnvjitlink-dev-13-0": { + "filename": "pool/main/libn/libnvjitlink/libnvjitlink-dev-13-0_13.0.39-1_arm64.deb", + "sha256": "b78393abda0f21f28ec766e10d7b6181fd6d49e5bd27fcecf813d14a14fafe51", + "source": "libnvjitlink", + "version": "13.0.39-1" + }, + "libnvjpeg-13-0": { + "filename": "pool/main/libn/libnvjpeg/libnvjpeg-13-0_13.0.0.40-1_arm64.deb", + "sha256": "9593cf07998c99c0ba427caa1ab9e81362c9b177b8c86b199b587d1c54be11a7", + "source": "libnvjpeg", + "version": "13.0.0.40-1" + }, + "libnvjpeg-dev-13-0": { + "filename": "pool/main/libn/libnvjpeg/libnvjpeg-dev-13-0_13.0.0.40-1_arm64.deb", + "sha256": "83cbae36bee26be15919091cde0c6141d16b2401c9b6df48f9c648c52ed20da8", + "source": "libnvjpeg", + "version": "13.0.0.40-1" + }, + "libnvonnxparsers-dev": { + "filename": "pool/main/t/tensorrt/libnvonnxparsers-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "c6345331c14119f0bd236b74c82dc967fdd6f9a55f489f626423b3d9268cdb55", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvonnxparsers10": { + "filename": "pool/main/t/tensorrt/libnvonnxparsers10_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "64c34bd51d057c048baa7c055ab676e20bb30100f3d63d3eb0ef3032d6686d4f", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "libnvptxcompiler-13-0": { + "filename": "pool/main/libn/libnvptxcompiler/libnvptxcompiler-13-0_13.0.48-1_arm64.deb", + "sha256": "8a31a84e7699229ba5d73803f4dac838fb4fa23fa3abbb3fd20d4285761d62b1", + "source": "libnvptxcompiler", + "version": "13.0.48-1" + }, + "libnvvm-13-0": { + "filename": "pool/main/libn/libnvvm/libnvvm-13-0_13.0.48-1_arm64.deb", + "sha256": "ee1ebce1ffe6a0f15bd86576f6d2acf10032484f9469eada6ff5e6c9050b6ec6", + "source": "libnvvm", + "version": "13.0.48-1" + }, + "libnvvpi4": { + "filename": "pool/main/libn/libnvvpi4/libnvvpi4_4.0.0~er5_arm64.deb", + "sha256": "0d5cd45f6eb8527ceb70f0b98fe4480014898da63493f6fcae177c7b6af22027", + "version": "4.0.0~er5" + }, + "libopencv": { + "filename": "pool/main/libo/libopencv/libopencv_4.8.0-1-g52c7569_arm64.deb", + "sha256": "dae2d23ec708aa6f8001f2ca9c918b005fe9df57afb7c2fa0040285bd164ce92", + "version": "4.8.0-1-g52c7569" + }, + "libopencv-dev": { + "filename": "pool/main/libo/libopencv-dev/libopencv-dev_4.8.0-1-g52c7569_arm64.deb", + "sha256": "a8bd9805f71d587e160dac819d63998b7ce5083f401b581223deea10080cc1b3", + "version": "4.8.0-1-g52c7569" + }, + "libopencv-python": { + "filename": "pool/main/libo/libopencv-python/libopencv-python_4.8.0-1-g52c7569_arm64.deb", + "sha256": "a59ef8e8e57e85cac2f40cc004b26ada231a2d304c04140ad1d65e00fd64f0b1", + "version": "4.8.0-1-g52c7569" + }, + "libopencv-samples": { + "filename": "pool/main/libo/libopencv-samples/libopencv-samples_4.8.0-1-g52c7569_arm64.deb", + "sha256": "12acbf67c63d8f0e4fcacbda088f99cc680d0a1d6a8aa0bb46e533d3e64085a8", + "version": "4.8.0-1-g52c7569" + }, + "libxnvctrl-dev": { + "filename": "pool/main/n/nvidia-settings/libxnvctrl-dev_580.65.06-0ubuntu1_arm64.deb", + "sha256": "dc8da77b10edde2ef8d8363777a332a1e60bb5edf527be3ce023d4674cd8823e", + "source": "nvidia-settings", + "version": "580.65.06-0ubuntu1" + }, + "libxnvctrl0": { + "filename": "pool/main/n/nvidia-settings/libxnvctrl0_580.65.06-0ubuntu1_arm64.deb", + "sha256": "2dcd04c8dc9e2344bc06e7167b4036bf794a0bca5e19b2db1e88104b671e81c8", + "source": "nvidia-settings", + "version": "580.65.06-0ubuntu1" + }, + "mft": { + "filename": "pool/main/m/mft/mft_4.32.0.6004-1_arm64.deb", + "sha256": "8c235e111a207a557c52ef337ddb0eb1a16cc01b515333f931fcdc09d55f5c6d", + "version": "4.32.0.6004-1" + }, + "mft-autocomplete": { + "filename": "pool/main/m/mft-autocomplete/mft-autocomplete_4.32.0.6004-1_arm64.deb", + "sha256": "7132c85525a9cf6c989f75ee8dd7bb143418803f90b5774c92c86a84b75e1d63", + "version": "4.32.0.6004-1" + }, + "mft-oem": { + "filename": "pool/main/m/mft-oem/mft-oem_4.32.0.6004-1_arm64.deb", + "sha256": "0fe43b01966ec0a94e4ea44fd5453f091c9c88c89d73cb120066a5bbdef0a412", + "version": "4.32.0.6004-1" + }, + "nsight-compute-2025.3.0": { + "filename": "pool/main/n/nsight-compute/nsight-compute-2025.3.0_2025.3.0.19-1_arm64.deb", + "sha256": "a0c01e2cf8ade071b5b12f42cdc6c04f326048f8c52e37239d8e1375edad8efe", + "source": "nsight-compute", + "version": "2025.3.0.19-1" + }, + "nsight-systems-2025.3.2": { + "filename": "pool/main/n/nsight-systems-2025.3.2/nsight-systems-2025.3.2_2025.3.2.367-253236224375v0_arm64.deb", + "sha256": "83153c329df60aaf9379ed0eaf675b775c62bfb2f66b1e09941aeb9d90ccf000", + "version": "2025.3.2.367-253236224375v0" + }, + "nsight-systems-2025.5.1": { + "filename": "pool/main/n/nsight-systems-2025.5.1/nsight-systems-2025.5.1_2025.5.1.121-255136380782v0_arm64.deb", + "sha256": "ddc6acec32074696b8e974749ad9fa59837d2d19bedb8c4eaae0a2f6461c90aa", + "version": "2025.5.1.121-255136380782v0" + }, + "nvidia-compute-utils-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-compute-utils-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "9204f543b96eb68064c933d4d34ad76de0885884f4f75be2d7dd72b62fa16c2c", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-container": { + "filename": "pool/main/n/nvidia-container/nvidia-container_7.0-b128_arm64.deb", + "sha256": "1bb4ceee02ec3cdc5d105f9a807e97e003ece0ce1fc73fd0b9fe7c35605c238d", + "version": "7.0-b128" + }, + "nvidia-container-toolkit": { + "filename": "pool/main/n/nvidia-container-toolkit/nvidia-container-toolkit_1.18.0~rc.4-1_arm64.deb", + "sha256": "3e19e9c52b74dc0bb6686e7e7bc2f3ad1f0cb656a7d6c2f24345432032d4a066", + "version": "1.18.0~rc.4-1" + }, + "nvidia-container-toolkit-base": { + "filename": "pool/main/n/nvidia-container-toolkit/nvidia-container-toolkit-base_1.18.0~rc.4-1_arm64.deb", + "sha256": "2f873271a5cadb54eb2aa026bd9cb1c7ccb8c4e8966356df77225944586051ba", + "source": "nvidia-container-toolkit", + "version": "1.18.0~rc.4-1" + }, + "nvidia-cuda": { + "filename": "pool/main/n/nvidia-cuda/nvidia-cuda_7.0-b128_arm64.deb", + "sha256": "bebf9b3273636b166470803d5866348a267fdf8255403a3fcac186391c5eb023", + "version": "7.0-b128" + }, + "nvidia-cuda-dev": { + "filename": "pool/main/n/nvidia-cuda-dev/nvidia-cuda-dev_7.0-b128_arm64.deb", + "sha256": "ff14b95d959e3f1d61ca3a3aeea79446427f885f7f29be3987fcae658c3037bc", + "version": "7.0-b128" + }, + "nvidia-cudnn": { + "filename": "pool/main/n/nvidia-cudnn/nvidia-cudnn_7.0-b128_arm64.deb", + "sha256": "86ab4c35cf9f4511c1efd78d9cadb0e91e075ede72518bf2d1d634810c185583", + "version": "7.0-b128" + }, + "nvidia-cudnn-dev": { + "filename": "pool/main/n/nvidia-cudnn-dev/nvidia-cudnn-dev_7.0-b128_arm64.deb", + "sha256": "cf2efbad7f3040498f33b1ea5d798e20908f82dbf1ffa8dfc9c14c581f78ff7b", + "version": "7.0-b128" + }, + "nvidia-cupva": { + "filename": "pool/main/n/nvidia-cupva/nvidia-cupva_7.0-b128_arm64.deb", + "sha256": "183da2c838afb959e420648ffce36f5a56708425b998b1e81816e95839e20c35", + "version": "7.0-b128" + }, + "nvidia-dkms-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-dkms-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "472d9f60e1d0fdd808b8c322aa2d308e9ee3a2df8aec455f47135e42fc381db0", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-dkms-580-open": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-dkms-580-open_580.65.06-0ubuntu1_arm64.deb", + "sha256": "ebcaa72537060a41e6294d36213e9c3d6bcb576a82fc9e480fa5f89cf81fbd70", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-driver-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-driver-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "4410e1c1ae08986934edd6850bc83ce22dfe8e0a5adb658f4566b60e92a16d73", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-driver-580-open": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-driver-580-open_580.65.06-0ubuntu1_arm64.deb", + "sha256": "dc45131810422a8ff046bf576f65542a6306412bd72833ea205605de579d8570", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-driver-assistant": { + "filename": "pool/main/d/driver-assistant/nvidia-driver-assistant_0.22.65.06-1_all.deb", + "sha256": "d42b1608e2a039e7f51275b0ab0aa6c7c92ee2e9b1b83b28cec94b3f9bb69444", + "source": "driver-assistant", + "version": "0.22.65.06-1" + }, + "nvidia-fabricmanager": { + "filename": "pool/main/f/fabricmanager/nvidia-fabricmanager_580.65.06-1_arm64.deb", + "sha256": "0a094ee89cc61608e513389893e885213ad9dbbfbc0fa5ac82c3c954ca864b7f", + "source": "fabricmanager", + "version": "580.65.06-1" + }, + "nvidia-fabricmanager-dev": { + "filename": "pool/main/f/fabricmanager/nvidia-fabricmanager-dev_580.65.06-1_arm64.deb", + "sha256": "e28433fde175b61ef6d304bda19ccdae504d1596630a5db104599f60ca353738", + "source": "fabricmanager", + "version": "580.65.06-1" + }, + "nvidia-firmware-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-firmware-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "d17ded5f2788a043909654822c088c6355c89684c4d40aaf02bda2518f5afe5b", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-fs": { + "filename": "pool/main/n/nvidia-fs/nvidia-fs_2.26.6-1_arm64.deb", + "sha256": "0bbe0197a6e30a9baaec11cf767ab82dca5fc91e6d80d5b08279473808dacf4a", + "version": "2.26.6-1" + }, + "nvidia-fs-dkms": { + "filename": "pool/main/n/nvidia-fs/nvidia-fs-dkms_2.26.6-1_arm64.deb", + "sha256": "dea5db992d6fa1909bc991d1d3325126efdb1eb8dc98dd3d7eb182fe45c74a02", + "source": "nvidia-fs", + "version": "2.26.6-1" + }, + "nvidia-headless-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-headless-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "6d40b19de87675416ee73cda6fcadddafd5779c723cb9736f5c6d5b2accd5a0d", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-headless-580-open": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-headless-580-open_580.65.06-0ubuntu1_arm64.deb", + "sha256": "e902a1d830edec4602bfa35ee648d6604ae1352996bd32d000785a9eaf3a3341", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-headless-no-dkms-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-headless-no-dkms-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "78c3cc1771cfc4ef70d34db539591f69a55f5473aca41e6ddd2799f33ba78dc5", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-headless-no-dkms-580-open": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-headless-no-dkms-580-open_580.65.06-0ubuntu1_arm64.deb", + "sha256": "a622403958e9af0400e84c327424c6af5b9bb05449b9580af4149af476d7eead", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-imex": { + "filename": "pool/main/i/imex/nvidia-imex_580.65.06-1_arm64.deb", + "sha256": "cc41b8d4e388514417b797b6fb46877caa8ca4eccfcd3dd42ea9a8aff131de62", + "source": "imex", + "version": "580.65.06-1" + }, + "nvidia-jetpack": { + "filename": "pool/main/n/nvidia-jetpack/nvidia-jetpack_7.0-b128_arm64.deb", + "sha256": "67ed85326719d34f12d297372bb452d4d57e58457d2f9cb0d61bf49e9bd44fef", + "version": "7.0-b128" + }, + "nvidia-jetpack-dev": { + "filename": "pool/main/n/nvidia-jetpack-dev/nvidia-jetpack-dev_7.0-b128_arm64.deb", + "sha256": "0ae13d3e16bec5f078eda9938cb82785ae679358466155ec32b1f3ba2e3aad75", + "version": "7.0-b128" + }, + "nvidia-jetpack-runtime": { + "filename": "pool/main/n/nvidia-jetpack-runtime/nvidia-jetpack-runtime_7.0-b128_arm64.deb", + "sha256": "222833e733ec68f2f7635205e29cf2dc7397ac54fe60eb0e91fa9510ba5a15e5", + "version": "7.0-b128" + }, + "nvidia-kernel-common-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-kernel-common-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "8b0c95fed7aa0b399b625f973e9d352993edac147a9aa81b2bdf32d9feea8bb4", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-kernel-source-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-kernel-source-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "cd8a224408f78c207cbc2ab05c960565bb6e15137774e0bd72a527ce45ab98a7", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-kernel-source-580-open": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-kernel-source-580-open_580.65.06-0ubuntu1_arm64.deb", + "sha256": "cc13d415450b5c281372770ae1b7c018fb281ff5836e1efb878ca143a34bcef9", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-l4t-cudadebuggingsupport": { + "filename": "pool/main/n/nvidia-l4t-cudadebuggingsupport/nvidia-l4t-cudadebuggingsupport_13.0-36205356.0_arm64.deb", + "sha256": "ae49369a5406d8b0defea4a3e7f6169ccd3f8923b9d04969085e59dccfe6865e", + "version": "13.0-36205356.0" + }, + "nvidia-l4t-gstreamer": { + "filename": "pool/main/n/nvidia-l4t-gstreamer/nvidia-l4t-gstreamer_38.2.2-20250925153837_arm64.deb", + "sha256": "eee75f47c0dea0f731876b7810a7d9a1aa993ad29df82816a0d272690026b86a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-jetson-multimedia-api": { + "filename": "pool/main/n/nvidia-l4t-jetson-multimedia-api/nvidia-l4t-jetson-multimedia-api_38.2.2-20250925153837_arm64.deb", + "sha256": "0f1aec63f5805c585334bab874430de78fd7371f21bba74b2a4c4c600fe1fea7", + "version": "38.2.2-20250925153837" + }, + "nvidia-modprobe": { + "filename": "pool/main/n/nvidia-modprobe/nvidia-modprobe_580.65.06-0ubuntu1_arm64.deb", + "sha256": "a8df8acf844f6704244c2ed2e1243c341c70f9cfd4a367d16946c465ca38f5ec", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-nsight-systems": { + "filename": "pool/main/n/nvidia-nsight-systems/nvidia-nsight-systems_7.0-b128_arm64.deb", + "sha256": "f2d61d637598dec776e14a9ce38189a69ec8378ae28a0227b6e475c60a0bc178", + "version": "7.0-b128" + }, + "nvidia-opencv": { + "filename": "pool/main/n/nvidia-opencv/nvidia-opencv_7.0-b128_arm64.deb", + "sha256": "14d35d9a9cd556b9f3598a0684a6744fa0e0a689d92d3ebd72ec1eb8c6af1778", + "version": "7.0-b128" + }, + "nvidia-opencv-dev": { + "filename": "pool/main/n/nvidia-opencv-dev/nvidia-opencv-dev_7.0-b128_arm64.deb", + "sha256": "99798bcef293be51cdbaab600ac3bebd31c95dde685f4558692ef0f0da169573", + "version": "7.0-b128" + }, + "nvidia-persistenced": { + "filename": "pool/main/n/nvidia-persistenced/nvidia-persistenced_580.65.06-0ubuntu1_arm64.deb", + "sha256": "8002561b30c0a03b2b120051113dbd6cfb86970919842b282d46aa0d00721c40", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-settings": { + "filename": "pool/main/n/nvidia-settings/nvidia-settings_580.65.06-0ubuntu1_arm64.deb", + "sha256": "facb4bf2d5d0704a8cf5d63062c53f13ac88f869c81228a032c188651811279c", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-tensorrt": { + "filename": "pool/main/n/nvidia-tensorrt/nvidia-tensorrt_7.0-b128_arm64.deb", + "sha256": "49175bb1adc603e5b7a5d4d18d3c6e0b1bea2f7ba5684cdb12421947e1c00212", + "version": "7.0-b128" + }, + "nvidia-tensorrt-dev": { + "filename": "pool/main/n/nvidia-tensorrt-dev/nvidia-tensorrt-dev_7.0-b128_arm64.deb", + "sha256": "30922b1d59f72fd68e70b37a7c47f13daf5aabf02f5bfc8db657e54f05e2f191", + "version": "7.0-b128" + }, + "nvidia-utils-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/nvidia-utils-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "19fd077148280acae9f08cb10ecca9bdf980e72c39cefd93f2e53237ef0e2073", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + }, + "nvidia-vpi": { + "filename": "pool/main/n/nvidia-vpi/nvidia-vpi_7.0-b128_arm64.deb", + "sha256": "1bd4a4c995a4335b52a43021db8d04110f8a56e184601803efa29f4d0328c5c8", + "version": "7.0-b128" + }, + "nvidia-vpi-dev": { + "filename": "pool/main/n/nvidia-vpi-dev/nvidia-vpi-dev_7.0-b128_arm64.deb", + "sha256": "44d6be81db17a74b227903f667dbe4a53c9e31b3f5b5fa0dde864eb183e70279", + "version": "7.0-b128" + }, + "nvidia-xconfig": { + "filename": "pool/main/n/nvidia-xconfig/nvidia-xconfig_580.65.06-0ubuntu1_arm64.deb", + "sha256": "6cfbf784e0c63727a503579b087846a2bbdbd3b1751f43a6bd1181c426395fa2", + "version": "580.65.06-0ubuntu1" + }, + "nvlink5": { + "filename": "pool/main/n/nvlink5/nvlink5_580.65.06-1_arm64.deb", + "sha256": "ceb0deb145b7e263b2215b37ad01f7d0e3114f846e8f96ecb55e3cb870765abd", + "version": "580.65.06-1" + }, + "nvlink5-580": { + "filename": "pool/main/n/nvlink5-580/nvlink5-580_580.65.06-1_arm64.deb", + "sha256": "b0bb0860e4ad2ba179cb01e812635fdba31284c72fbc2b39e479cfc17c2200fb", + "version": "580.65.06-1" + }, + "nvlsm": { + "filename": "pool/main/n/nvlsm/nvlsm_2025.06.5-1_arm64.deb", + "sha256": "0ee54e34b6db0ca57f94f1fcf3a64fd7b8ccee4aa82a2a1dd021caa18cab242e", + "version": "2025.06.5-1" + }, + "opencv-licenses": { + "filename": "pool/main/o/opencv-licenses/opencv-licenses_4.8.0-1-g52c7569_arm64.deb", + "sha256": "1a65748fa0cd431949681abb941ece580686d47969b3be003cb81b89db6e4699", + "version": "4.8.0-1-g52c7569" + }, + "opencv-samples-data": { + "filename": "pool/main/o/opencv-samples-data/opencv-samples-data_4.8.0-1-g52c7569_arm64.deb", + "sha256": "5c713005a4391f7e8a91c8fef34aedda470de100e24064e39328d7711f70365e", + "version": "4.8.0-1-g52c7569" + }, + "pva-allow-2": { + "filename": "pool/main/p/pva-allow-2/pva-allow-2_2.0.5_all.deb", + "sha256": "d699f86e2bf7d11b0d2d855dad40421022191885ead7b9ca18a4a8a5cf196655", + "version": "2.0.5" + }, + "pva-sdk-2.7-l4t": { + "filename": "pool/main/p/pva-sdk-2.7-l4t/pva-sdk-2.7-l4t_2.7.1_arm64.deb", + "sha256": "3ecd91a5600b227a570a1490f5705d8665a8d0d8cac4ab1062b1e06da3349e21", + "version": "2.7.1" + }, + "python3-libnvinfer": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "9da52f8b3ae64d836c6bb08e9755410170882cffd9290565ef6a90fff2ce7be0", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "python3-libnvinfer-dev": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "ef3b8bca0fc28cadbe9a0a947bc11e1666db39e1dcaf058c1b324ffb86783e98", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "python3-libnvinfer-dispatch": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer-dispatch_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "65e9408be32665e7ceac893348be508948b24c2e05082174ce33df1949409669", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "python3-libnvinfer-lean": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer-lean_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "074a8b9f7b9195febd31ec58aa7531dfcbffad2853bcaa56f7544931a9f5072b", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "python3.12-vpi4": { + "filename": "pool/main/p/python3.12-vpi4/python3.12-vpi4_4.0.0~er5_arm64.deb", + "sha256": "6036c68b70dce6a12c9ae15ee335fd88ebd909852b7446d4e56a654739e8d26e", + "version": "4.0.0~er5" + }, + "tensorrt": { + "filename": "pool/main/t/tensorrt/tensorrt_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "0f60fcc0d997a221833d977074746d25109063a147cd2e73c49959245dc894db", + "version": "10.13.3.9-1+cuda13.0" + }, + "tensorrt-dev": { + "filename": "pool/main/t/tensorrt/tensorrt-dev_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "21b86950fbba790e22726af8b28f42d18e9d4149af73cd8ddfe4aa988d70bdf2", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "tensorrt-libs": { + "filename": "pool/main/t/tensorrt/tensorrt-libs_10.13.3.9-1+cuda13.0_arm64.deb", + "sha256": "ad7a08b0a7c905caf7d6b9f22bfcab7628a0f9251292859a55bac974d3930931", + "source": "tensorrt", + "version": "10.13.3.9-1+cuda13.0" + }, + "vpi4-dev": { + "filename": "pool/main/v/vpi4-dev/vpi4-dev_4.0.0~er5_arm64.deb", + "sha256": "83707b1bff8b321fcadd9c1cac115b0a68a44d623dd1f088ef9b0c33d2a6548c", + "version": "4.0.0~er5" + }, + "vpi4-python-src": { + "filename": "pool/main/v/vpi4-python-src/vpi4-python-src_4.0.0~er5_arm64.deb", + "sha256": "cdde10d4e86ef4fa0024dc271e92ce2f6d6195d42e8e4973037c44b963aa3d8b", + "version": "4.0.0~er5" + }, + "vpi4-samples": { + "filename": "pool/main/v/vpi4-samples/vpi4-samples_4.0.0~er5_arm64.deb", + "sha256": "ae24d37cc5b9f09c98486128193bb34e687d43f7d217bea221bebc23a99ae0f8", + "version": "4.0.0~er5" + }, + "xserver-xorg-video-nvidia-580": { + "filename": "pool/main/n/nvidia-graphics-drivers-580/xserver-xorg-video-nvidia-580_580.65.06-0ubuntu1_arm64.deb", + "sha256": "3861fe4a504efdec2b2339411590ca8e35eed4d316de0b860a9e8c2156b4decc", + "source": "nvidia-graphics-drivers-580", + "version": "580.65.06-0ubuntu1" + } + }, + "som": { + "jetson-gpio-common": { + "filename": "pool/main/j/jetson-gpio/jetson-gpio-common_2.1.10-0ubuntu1_arm64.deb", + "sha256": "4119b5bca2d62419f32814a3e2c8406e25530f51f615683277106d7c6fe0ccae", + "source": "jetson-gpio", + "version": "2.1.10-0ubuntu1" + }, + "nvidia-igx-bootloader": { + "filename": "pool/main/n/nvidia-igx-bootloader/nvidia-igx-bootloader_38.2.2-20250925153837_arm64.deb", + "sha256": "066e0588ab32eddfa7e4e4fae8e827f81d443320487e46d31a45b9e51f7d800c", + "version": "38.2.2-20250925153837" + }, + "nvidia-igx-oobe": { + "filename": "pool/main/n/nvidia-igx-oobe/nvidia-igx-oobe_38.2.2-20250925153837_arm64.deb", + "sha256": "df86aeab0b9837adb3a7f492f73df0db217f93c831d9dc707d190f0696da5126", + "version": "38.2.2-20250925153837" + }, + "nvidia-igx-systemd-reboot-hooks": { + "filename": "pool/main/n/nvidia-igx-systemd-reboot-hooks/nvidia-igx-systemd-reboot-hooks_38.2.2-20250925153837_arm64.deb", + "sha256": "df6e91d4a5cce38e567bcfd059f205e88bce7f8acab7d855021c340960b21a64", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-3d-core": { + "filename": "pool/main/n/nvidia-l4t-3d-core/nvidia-l4t-3d-core_38.2.2-20250925153837_arm64.deb", + "sha256": "f045a59be314da86667f52db04a399d5a35ef2b84e6bc1fbf8a593721deecdb9", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-adaruntime": { + "filename": "pool/main/n/nvidia-l4t-adaruntime/nvidia-l4t-adaruntime_38.2.2-20250925153837_arm64.deb", + "sha256": "2fe5226d70a5503c0105ca1e40272372b6afa8a3c7c5e0514d4a5aacdfe14fda", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-apt-source": { + "filename": "pool/main/n/nvidia-l4t-apt-source/nvidia-l4t-apt-source_38.2.2-20250925153837_arm64.deb", + "sha256": "73314ddc1a0289086315e3df4e6cbb3a1173af28007dc0c02eae22ad76881a2a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-bootloader": { + "filename": "pool/main/n/nvidia-l4t-bootloader/nvidia-l4t-bootloader_38.2.2-20250925153837_arm64.deb", + "sha256": "bfa26420bdcbcff279bdd9a5fceeb483e5bba515cd316f1e5250abbc42ca6551", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-bootloader-utils": { + "filename": "pool/main/n/nvidia-l4t-bootloader-utils/nvidia-l4t-bootloader-utils_38.2.2-20250925153837_arm64.deb", + "sha256": "528ebf916d412891aab444869748cf87af96d53553c88690b3c13fb1ea02b26a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-bsp-nvgpu": { + "filename": "pool/main/n/nvidia-l4t-bsp-nvgpu/nvidia-l4t-bsp-nvgpu_38.2.2-20250925153837_arm64.deb", + "sha256": "9774290443c8b99e2126f249ecab6d402b6d4e8a2024eacd8f01ac15d0b56060", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-bsp-openrm": { + "filename": "pool/main/n/nvidia-l4t-bsp-openrm/nvidia-l4t-bsp-openrm_38.2.2-20250925153837_arm64.deb", + "sha256": "bc8d0a69baa20770f77355fccfa56e8a05e192b8b0ae00769e0998cad5d0e8fb", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-camera": { + "filename": "pool/main/n/nvidia-l4t-camera/nvidia-l4t-camera_38.2.2-20250925153837_arm64.deb", + "sha256": "151ce46814f4e84c98bdc503aee5af4951773c363ae4a30989ed3329c1af9912", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-configs": { + "filename": "pool/main/n/nvidia-l4t-configs/nvidia-l4t-configs_38.2.2-20250925153837_arm64.deb", + "sha256": "90104b8f35c2dc1e82d2169a243f9662dc9744520f23e5c2fafd40c3430b03e5", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-core": { + "filename": "pool/main/n/nvidia-l4t-core/nvidia-l4t-core_38.2.2-20250925153837_arm64.deb", + "sha256": "6b48bb8c41d5de2114fd7d7f4bfa997ac4404c76e3bbbe958ab324d4417c42b7", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-cuda": { + "filename": "pool/main/n/nvidia-l4t-cuda/nvidia-l4t-cuda_38.2.2-20250925153837_arm64.deb", + "sha256": "30cd1f634ab75a781ce75ede7639db176ab5f6b67380874d207ef7f0cae50ced", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-cuda-utils": { + "filename": "pool/main/n/nvidia-l4t-cuda-utils/nvidia-l4t-cuda-utils_38.2.2-20250925153837_arm64.deb", + "sha256": "3cf61b88b7c5cf1ae4688836205ae1d0b583fd1f9ed41cdd7ae1207b6859d120", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-dgpu-tools": { + "filename": "pool/main/n/nvidia-l4t-dgpu-tools/nvidia-l4t-dgpu-tools_38.2.2-20250925153837_arm64.deb", + "sha256": "35c15e61dc88e655b9f542d42909d2b9fb0acc9a535d1f9a3616e1ee9ee79fbb", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-display-kernel": { + "filename": "pool/main/n/nvidia-l4t-display-kernel/nvidia-l4t-display-kernel_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "c10bd0109a15fe7dc09885191b8c40e7fde695f7c72eaab08af04ef8083b0e2c", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-extlinux": { + "filename": "pool/main/n/nvidia-l4t-extlinux/nvidia-l4t-extlinux_38.2.2-20250925153837_arm64.deb", + "sha256": "19779238f21b6d4ce120d3fed47ca69e63729ab926eccc4c0f8e92c0ad081603", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-factory-service": { + "filename": "pool/main/n/nvidia-l4t-factory-service/nvidia-l4t-factory-service_38.2.2-20250925153837_arm64.deb", + "sha256": "2a94ae3dd5fa0dedb77a0cc516abd1ac2552d01cbdc4a1de25af953dea018160", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-firmware": { + "filename": "pool/main/n/nvidia-l4t-firmware/nvidia-l4t-firmware_38.2.2-20250925153837_arm64.deb", + "sha256": "c2287eaeaf2768934db38faa92aab3088c403800c74516e15bd3983e806d378a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-firmware-nvgpu": { + "filename": "pool/main/n/nvidia-l4t-firmware-nvgpu/nvidia-l4t-firmware-nvgpu_38.2.2-20250925153837_arm64.deb", + "sha256": "8b00e26aa741e267ac2080dc706c71e51697c10d8b2f84f5d58ae1294abad4d9", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-firmware-openrm": { + "filename": "pool/main/n/nvidia-l4t-firmware-openrm/nvidia-l4t-firmware-openrm_38.2.2-20250925153837_arm64.deb", + "sha256": "496b059e523805679c76597aa53b10e8fc79ce1936861adb60253ea859a80926", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-firstboot": { + "filename": "pool/main/n/nvidia-l4t-firstboot/nvidia-l4t-firstboot_38.2.2-20250925153837_arm64.deb", + "sha256": "eca922e256d2351d5b54edd9575bc140533a1a65f328577af2988ae6fd63534d", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-gbm": { + "filename": "pool/main/n/nvidia-l4t-gbm/nvidia-l4t-gbm_38.2.2-20250925153837_arm64.deb", + "sha256": "1b3847c47658d0759800f1747dbf8bc09b8ac0aaf2051f468c5693b41a1c56b1", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-graphics-demos": { + "filename": "pool/main/n/nvidia-l4t-graphics-demos/nvidia-l4t-graphics-demos_38.2.2-20250925153837_arm64.deb", + "sha256": "fc950d056f07127cd800c9a191b9e45df437464277bdb2b132b23f25c8ccff70", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-init": { + "filename": "pool/main/n/nvidia-l4t-init/nvidia-l4t-init_38.2.2-20250925153837_arm64.deb", + "sha256": "316e3e400d8c5c20be0b7d64f752b408e5a9507463a13f7f536587048c113473", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-init-nvgpu": { + "filename": "pool/main/n/nvidia-l4t-init-nvgpu/nvidia-l4t-init-nvgpu_38.2.2-20250925153837_arm64.deb", + "sha256": "96320eda9c47afd547d1f79ff294e62c6d3e0a1a671ce6c315da9934769b289b", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-init-openrm": { + "filename": "pool/main/n/nvidia-l4t-init-openrm/nvidia-l4t-init-openrm_38.2.2-20250925153837_arm64.deb", + "sha256": "ffc44f61a6ee52e3e543e695a9dc0e9976d27326e642dec411cdf89515299935", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-initrd": { + "filename": "pool/main/n/nvidia-l4t-initrd/nvidia-l4t-initrd_38.2.2-20250925153837_arm64.deb", + "sha256": "05bda6121b0a8ee7bd2c50d15c0e27b5a609876ef7c7527c00b0c4117b6a3027", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-jetson-io": { + "filename": "pool/main/n/nvidia-l4t-jetson-io/nvidia-l4t-jetson-io_38.2.2-20250925153837_arm64.deb", + "sha256": "aa0188edff48477c04881a2cdaa351209ba0464dc61b7030e1e14fb1b27e1424", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-jetsonpower-gui-tools": { + "filename": "pool/main/n/nvidia-l4t-jetsonpower-gui-tools/nvidia-l4t-jetsonpower-gui-tools_38.2.2-20250925153837_arm64.deb", + "sha256": "2f45cdeedaa6f244d9ad44718f4b0d0fd8560abca9458d536a69d5188c0669f3", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-kernel": { + "filename": "pool/main/n/nvidia-l4t-kernel/nvidia-l4t-kernel_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "149872ceae7ad73ff43774e42e2de9830142849a7b36c184f7cf4f3b682ffe1d", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-dtbs": { + "filename": "pool/main/n/nvidia-l4t-kernel-dtbs/nvidia-l4t-kernel-dtbs_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "64838021fb553481e83305a16ab81d52925cb5d30ae965bf4b6c790e55ff539e", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-headers": { + "filename": "pool/main/n/nvidia-l4t-kernel-headers/nvidia-l4t-kernel-headers_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "7f5c34ce8ddd09e4f61c4f705f00a277708b965827c2a25a7dc6df6ea6b0e9cd", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-module-configs": { + "filename": "pool/main/n/nvidia-l4t-kernel-module-configs/nvidia-l4t-kernel-module-configs_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "8c81ab6d7e2c46b985dfda3a8a20b3dcc82b5c12f238e63d6ae0eb51695ec362", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-nvgpu": { + "filename": "pool/main/n/nvidia-l4t-kernel-nvgpu/nvidia-l4t-kernel-nvgpu_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "c431c80f1edb71a1a127aace362d0aeafaa17104e6576b8f4018e70870d58629", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-oot-headers": { + "filename": "pool/main/n/nvidia-l4t-kernel-oot-headers/nvidia-l4t-kernel-oot-headers_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "aa2384d97913272ec023582de4c351c73282fcbc799592e489523110ad861b96", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-oot-modules": { + "filename": "pool/main/n/nvidia-l4t-kernel-oot-modules/nvidia-l4t-kernel-oot-modules_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "b0797538e5a3175a61cfa8360b1f462a68ff4d603cbcbb2aa7d6767375b21fd6", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-openrm": { + "filename": "pool/main/n/nvidia-l4t-kernel-openrm/nvidia-l4t-kernel-openrm_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "90564b4f6d4f4f5f7de98b997011124002fa8fd51a9edb1611644f8c5b790cd8", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-kernel-partitions": { + "filename": "pool/main/n/nvidia-l4t-kernel-partitions/nvidia-l4t-kernel-partitions_6.8.12-tegra-38.2.2-20250925153837_arm64.deb", + "sha256": "0183f5cdbf7759fd75221886a45ac30f51c348b785a328342c17e3bdf0deb693", + "version": "6.8.12-tegra-38.2.2-20250925153837" + }, + "nvidia-l4t-libvulkan": { + "filename": "pool/main/n/nvidia-l4t-libvulkan/nvidia-l4t-libvulkan_38.2.2-20250925153837_arm64.deb", + "sha256": "4e66cb2c6c498565c522ec6719b8d04c52693f5c7645eae58d1ad42dfe81dd1f", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-multimedia": { + "filename": "pool/main/n/nvidia-l4t-multimedia/nvidia-l4t-multimedia_38.2.2-20250925153837_arm64.deb", + "sha256": "5eae48eb66eb18833011a2c26adaafbead0116e795a7d103258958ff552e0287", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-multimedia-nvgpu": { + "filename": "pool/main/n/nvidia-l4t-multimedia-nvgpu/nvidia-l4t-multimedia-nvgpu_38.2.2-20250925153837_arm64.deb", + "sha256": "504e430e561a9abc33b3682dfb87750e6bfe06dff984ee3018a48bdc2cb6210b", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-multimedia-openrm": { + "filename": "pool/main/n/nvidia-l4t-multimedia-openrm/nvidia-l4t-multimedia-openrm_38.2.2-20250925153837_arm64.deb", + "sha256": "b29d917acc6355d4c5c9ea7590e86df19a7305b6c5929e8dd72959aab50398d6", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-multimedia-utils": { + "filename": "pool/main/n/nvidia-l4t-multimedia-utils/nvidia-l4t-multimedia-utils_38.2.2-20250925153837_arm64.deb", + "sha256": "4968389a42b2a9b099d6cc9708d230c80a479fcd9823cd505e9d562eb0fb04ba", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-nvfancontrol": { + "filename": "pool/main/n/nvidia-l4t-nvfancontrol/nvidia-l4t-nvfancontrol_38.2.2-20250925153837_arm64.deb", + "sha256": "51bb29f15de7d63893701c9acf1a25684609c73ee13d03899e371115882e63bd", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-nvml": { + "filename": "pool/main/n/nvidia-l4t-nvml/nvidia-l4t-nvml_38.2.2-20250925153837_arm64.deb", + "sha256": "37844227dd015c493bc5421eff41af784a8b6bca0f49727da4d9c8c2e6803ccf", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-nvpmodel": { + "filename": "pool/main/n/nvidia-l4t-nvpmodel/nvidia-l4t-nvpmodel_38.2.2-20250925153837_arm64.deb", + "sha256": "f7725fea4ef278d71dda4451c91bf39c15fe7528407e1041da3d19f548b0fa56", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-nvpmodel-gui-tools": { + "filename": "pool/main/n/nvidia-l4t-nvpmodel-gui-tools/nvidia-l4t-nvpmodel-gui-tools_38.2.2-20250925153837_arm64.deb", + "sha256": "25ba051272b177899b919953de7844a4af61b25515b30955897e5885f66e81b9", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-nvsci": { + "filename": "pool/main/n/nvidia-l4t-nvsci/nvidia-l4t-nvsci_38.2.2-20250925153837_arm64.deb", + "sha256": "4e5abe555e6f42c6e37c55460f4466faade4214bf245bef59a832c9fadd95813", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-oobe": { + "filename": "pool/main/n/nvidia-l4t-oobe/nvidia-l4t-oobe_38.2.2-20250925153837_arm64.deb", + "sha256": "8516e72ccb77465b1f95ba53e4d61a27fed55df0f745c96bbf2460a57e4a2fc7", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-openwfd": { + "filename": "pool/main/n/nvidia-l4t-openwfd/nvidia-l4t-openwfd_38.2.2-20250925153837_arm64.deb", + "sha256": "1b166120b22a5e79583008293bb5a5bb78f05390aa78cbc4ddabc9f910105111", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-optee": { + "filename": "pool/main/n/nvidia-l4t-optee/nvidia-l4t-optee_38.2.2-20250925153837_arm64.deb", + "sha256": "8e8d59e9af11549cc4d4b7f874ab96007e522d8ee30a23072019e882a4a27512", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-pva": { + "filename": "pool/main/n/nvidia-l4t-pva/nvidia-l4t-pva_38.2.2-20250925153837_arm64.deb", + "sha256": "b6e0af6508ebe11262c36a668b8481832c2d73f09ece29b6dbdb9488fc37934d", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-tools": { + "filename": "pool/main/n/nvidia-l4t-tools/nvidia-l4t-tools_38.2.2-20250925153837_arm64.deb", + "sha256": "cf5410a8d81e9de4fd280370c384a3b2c0e5f8dcfc6f43328ebb5986d93f359d", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-usb-service": { + "filename": "pool/main/n/nvidia-l4t-usb-service/nvidia-l4t-usb-service_38.2.2-20250925153837_arm64.deb", + "sha256": "92c59988bd3ac7dfeece58e490abc69aa9bb5585e49aaea95793563cb831f0f7", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-video-codec-openrm": { + "filename": "pool/main/n/nvidia-l4t-video-codec-openrm/nvidia-l4t-video-codec-openrm_38.2.2-20250925153837_arm64.deb", + "sha256": "131948da87c437783b1f6e69b9d44bc236bc8a2e4cb34bfb4950b4883844a474", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-vulkan-sc-dev": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-dev/nvidia-l4t-vulkan-sc-dev_38.2.2-20250925153837_arm64.deb", + "sha256": "d6492b026ac805d1308f596227b59e06fe82dd9779d333f98bc1710dbefe0d69", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-vulkan-sc-nvgpu": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-nvgpu/nvidia-l4t-vulkan-sc-nvgpu_38.2.2-20250925153837_arm64.deb", + "sha256": "5b41bb12a966b0230f57b086edbd9ad80193fa4cfe2c20ea77cdbf011be5030a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-vulkan-sc-openrm": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-openrm/nvidia-l4t-vulkan-sc-openrm_38.2.2-20250925153837_arm64.deb", + "sha256": "6a7446ab7f954d2c86b338fc60dafdb73957239c935b69f7ac35e6f968cee27b", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-vulkan-sc-samples": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-samples/nvidia-l4t-vulkan-sc-samples_38.2.2-20250925153837_arm64.deb", + "sha256": "06c134b66b402801497c861e44f06af883ded03ce330695465fdcaa523860264", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-vulkan-sc-sdk": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-sdk/nvidia-l4t-vulkan-sc-sdk_38.2.2-20250925153837_arm64.deb", + "sha256": "8e07ac55509960e1ef4a5244c3ee6f45bd4759c63b844b1341faa44bbe64bcf0", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-wayland": { + "filename": "pool/main/n/nvidia-l4t-wayland/nvidia-l4t-wayland_38.2.2-20250925153837_arm64.deb", + "sha256": "3cbbc9b8493a001b43471975f6eae8c24f0e4815ee6ddfd4efd0c28f8bc0e100", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-weston": { + "filename": "pool/main/n/nvidia-l4t-weston/nvidia-l4t-weston_38.2.2-20250925153837_arm64.deb", + "sha256": "f657c86dbe4b0238aa4ee6f4d3352b404cbb621d978fafc1468b6c5f0974e99a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-wpasupplicant": { + "filename": "pool/main/n/nvidia-l4t-wpasupplicant/nvidia-l4t-wpasupplicant_38.2.2-20250925153837_arm64.deb", + "sha256": "c75b4b77782656c635325dca9275048e70a0d60d808665842902f76dcb7e8a20", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-x11": { + "filename": "pool/main/n/nvidia-l4t-x11/nvidia-l4t-x11_38.2.2-20250925153837_arm64.deb", + "sha256": "b09d30588df7d5344fa349511276a3851183355b589d3512316e1ea525227a4a", + "version": "38.2.2-20250925153837" + }, + "nvidia-l4t-xwayland": { + "filename": "pool/main/n/nvidia-l4t-xwayland/nvidia-l4t-xwayland_38.2.2-20250925153837_arm64.deb", + "sha256": "950ff3c2196eb3d00d8c66d585398554ea5123b07e3c14f747bed423cc514c02", + "version": "38.2.2-20250925153837" + }, + "python3-jetson-gpio": { + "filename": "pool/main/j/jetson-gpio/python3-jetson-gpio_2.1.10-0ubuntu1_arm64.deb", + "sha256": "734751efca5f52607f11564f070be37d14930064cca151d97ce8c1b7beb16170", + "source": "jetson-gpio", + "version": "2.1.10-0ubuntu1" + } + } +} diff --git a/sourceinfo/r38.2.1-gitrepos.json b/sourceinfo/r38.2.1-gitrepos.json new file mode 100644 index 00000000..5590bbd9 --- /dev/null +++ b/sourceinfo/r38.2.1-gitrepos.json @@ -0,0 +1,576 @@ +{ + "dtc-src/1.4.5": { + "date": "2025-09-19T10:10:00-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-5VvGrdT5BjwkSL25PsTe0ARKYyrLwczhfro0Rx5Z0vY=", + "leaveDotGit": false, + "path": "/nix/store/wq8n74a2750zzbxjk3jqwdk31a9rq7dl-1.4.5", + "rev": "b71c05658d76e99a5441a21f5380cc3d87fff67b", + "rootDir": "", + "sha256": "1xnjb4g4fd5sgvhwrhfb59ill16hvv23xfdx90j3q1prsjnwcnz5", + "url": "https://nv-tegra.nvidia.com/3rdparty/dtc-src/1.4.5.git" + }, + "hardware/nvidia/t23x/nv-public": { + "date": "2025-05-23T11:56:42-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-eWLwH4WSAUWTzEV0m8nTpXyKpvmUkQEruG7vdhTBhrQ=", + "leaveDotGit": false, + "path": "/nix/store/h9pf4dvfr9nfmn2j1wj2x223x63k3m13-t23x-public-dts", + "rev": "f1c9521e5d3ad13bb3a573de09bcc71eec352e95", + "rootDir": "", + "sha256": "1d46q4a7dvvfp0mh34clz6k8lz55sg4rnx25rj9la0cjhlgz0qkr", + "url": "https://nv-tegra.nvidia.com/device/hardware/nvidia/t23x-public-dts.git" + }, + "hardware/nvidia/t264/nv-public": { + "date": "2025-08-08T03:57:53-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-AU+quf0xxLKvAx50BlKAZ8Tj/kFQEt4Ft7OwOoBGzpE=", + "leaveDotGit": false, + "path": "/nix/store/qhmn3mzg0js0gbipqh32v69szfg6f8mw-t264-public-dts", + "rev": "33278109a5314ed27d0e69dbc6eccffecccd54fb", + "rootDir": "", + "sha256": "14ff8s03mc5knw2xw4jh87zf7i37h190cx0y0fpv5i1iznwslkq1", + "url": "https://nv-tegra.nvidia.com/device/hardware/nvidia/t264-public-dts.git" + }, + "hardware/nvidia/tegra/nv-public": { + "date": "2024-07-16T02:20:15-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-s8ZEiEdC5xhTzvBaV9QEBoMkuz0Gg5SteWqbcW4irt0=", + "leaveDotGit": false, + "path": "/nix/store/i0pbhvdjk7x73blksy8ag8n6lzm82019-tegra-public-dts", + "rev": "2101ccc1b1ef8267e63286332aed34891943c7c7", + "rootDir": "", + "sha256": "1pdf49p736vag6nr90q67nxj90q60ka5fnphrr9iirs28y449imk", + "url": "https://nv-tegra.nvidia.com/device/hardware/nvidia/tegra-public-dts.git" + }, + "hwpm": { + "date": "2025-05-26T12:42:11-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-4ZFsH8iF9duEJ6QpIpec1mHCUeJF4fFV5vyoK2Qab3M=", + "leaveDotGit": false, + "path": "/nix/store/58r3830z8icby63sp38f3gswpfs9zbf8-linux-hwpm", + "rev": "927a33af1caac3deb42b7406dcd31eee5296b761", + "rootDir": "", + "sha256": "0wvg39j2pa7wwraz3qa5w98w4qfnkjbj4ad44y2dpxc5r0gnr4g1", + "url": "https://nv-tegra.nvidia.com/linux-hwpm.git" + }, + "kernel-devicetree": { + "date": "2025-05-06T17:55:11-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-hqmWT43GnkwcQ5pUam6KTo5thxH5XUBSATPfIf+LEs0=", + "leaveDotGit": false, + "path": "/nix/store/vwwp9naw6mwrx7hhg1l46245rha89siw-kernel-devicetree", + "rev": "da22d336b5aa156616babe039dc2132e433304a5", + "rootDir": "", + "sha256": "1k8jigzj3prk05940pgr263nv3jfi9p6lm4s8cf4r7n6im7rdac6", + "url": "https://nv-tegra.nvidia.com/linux/kernel-devicetree.git" + }, + "kernel/kernel-noble": { + "date": "2025-09-10T11:31:55-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-1CQrzBbjlFrAfSK7pKvb8EH/AyA3zs1uzeReYTZrKAs=", + "leaveDotGit": false, + "path": "/nix/store/xawgpf7l99wnv28iqs7yqs35rdgqsss9-linux-noble", + "rev": "2a4430812eecde8f7bf7a72b882db29dff8c66bf", + "rootDir": "", + "sha256": "02r8dcv62pp4rmpcvkip401zyhghvfms9fr2gp05m5732v62n96l", + "url": "https://nv-tegra.nvidia.com/3rdparty/canonical/linux-noble.git" + }, + "nvdisplay": { + "date": "2025-09-19T10:10:04-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-3gSqIFXtOuo9FwJAaRLMOMj0Ejf63r+xEBLQd3j/xGU=", + "leaveDotGit": false, + "path": "/nix/store/mfldvxvh7mp7c382klmidffgp9y6bb78-nv-kernel-display-driver", + "rev": "d6333983830005298d4e6b53c1a51dc2e69fc1ba", + "rootDir": "", + "sha256": "0rf4zxw7gl0j22qvzpps6w9g9j1qrh96jh022wyylfpdalhal16y", + "url": "https://nv-tegra.nvidia.com/tegra/kernel-src/nv-kernel-display-driver.git" + }, + "nvethernetrm": { + "date": "2025-07-14T16:57:35-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-EG6IpIEfSy34d49xzV8C6hiXxxLrXzhKmN/3WvQF+OA=", + "leaveDotGit": false, + "path": "/nix/store/v2017yyjbbyqiphxpba3k5byx2ghyf4a-nvethernetrm", + "rev": "b704cd863afe8c0aa9c53f1d60c9be1931ca3672", + "rootDir": "", + "sha256": "1q7q0ps5mxyzk153hpzb2b3rf67a09gwswcgfzw2sjqzh6j8hvhh", + "url": "https://nv-tegra.nvidia.com/kernel/nvethernetrm.git" + }, + "nvgpu": { + "date": "2025-09-19T10:09:55-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-e2hdPLlM5H00NiYzreM/JZ0r8/UtMUpjWIuS3llwPCw=", + "leaveDotGit": false, + "path": "/nix/store/fgjwkwdxah6a41jvj989lgvj9n7sdrp1-linux-nvgpu", + "rev": "3705257bb29b3ca0efde0391ef04fa03ea8f6afd", + "rootDir": "", + "sha256": "0b1wf1cxx4lbb1illc9dyprjp7957zisscr66qs7vr2cp4y5ss3v", + "url": "https://nv-tegra.nvidia.com/tegra/kernel-src/linux-nvgpu.git" + }, + "nvidia-oot": { + "date": "2025-09-05T08:26:18-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-gysUPH6W1LjJGA3vxIQCvMLr97OBqLVkBYXOFfSPzq8=", + "leaveDotGit": false, + "path": "/nix/store/plsfbzpxs387rjlc0x80isndkdpaz3ix-linux-nv-oot", + "rev": "de95a4c5bbe08cb5a75ae77f769d3ba5a1087198", + "rootDir": "", + "sha256": "1byfizs1bkl50mjbba41ngvyphmw0a2c9vqd334vim4ngqy18aw3", + "url": "https://nv-tegra.nvidia.com/linux-nv-oot.git" + }, + "tegra/ada-src/adaruntime": { + "date": "2025-09-19T10:09:38-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-gIzIbKe81qK1OZpl7Z/1WJLGK9rmlGqS78IsS3tsKBI=", + "leaveDotGit": false, + "path": "/nix/store/6zx4d08al55d814arhhl40n069n7kx07-adaruntime", + "rev": "6ee604e5ae8b45700257a6b155d3e0552af2a26c", + "rootDir": "", + "sha256": "04i8dixlnb62xy96m576v8mwd4jqyngysrcs76ss5mmwlxnci340", + "url": "https://nv-tegra.nvidia.com/tegra/ada-src/adaruntime.git" + }, + "tegra/argus-cam-libav/argus_cam_libavencoder": { + "date": "2025-09-19T10:09:40-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-K3X1d56VKvlfPJQy44nVs/wXpCFVImBMJQqsysfP5Y8=", + "leaveDotGit": false, + "path": "/nix/store/ygpv3bbgj7wll97zn41fsl3f7vlhfpxf-argus_cam_libavencoder", + "rev": "4f53b57161dd007fa2a7d4fb81dc38c97a846151", + "rootDir": "", + "sha256": "13z5rz3wmb0a4m6608jm46j1gz5ksn4y6cll7igzjalmkrvzax9b", + "url": "https://nv-tegra.nvidia.com/tegra/argus-cam-libav/argus_cam_libavencoder.git" + }, + "tegra/cuda-src/nvsample_cudaprocess": { + "date": "2025-09-19T10:10:01-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-DaC7/jG0ptJdeHpHIRF6iZSHsktGeGVr/rv3/Wu+39g=", + "leaveDotGit": false, + "path": "/nix/store/9xya7vy8j3hai5waid5l0z6pxx09ds9z-nvsample_cudaprocess", + "rev": "7193df6903e99029959b2d867a76c2e99dfa1270", + "rootDir": "", + "sha256": "1n6zprmzvxxvzrmnay269fr8g549g88j2ivsg1fx59ml67zbp80d", + "url": "https://nv-tegra.nvidia.com/tegra/cuda-src/nvsample_cudaprocess.git" + }, + "tegra/gfx-src/nv-xconfig": { + "date": "2025-09-19T10:09:40-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-/rM0gMpQe1SIkegePlPx6yAGKIjNutsyGZNTpRtWMDc=", + "leaveDotGit": false, + "path": "/nix/store/kmrpziy07lv6vg2wd0f3shy8w717br6i-nv-xconfig", + "rev": "86b65e68249c87412738e9e1a1e5a53b72b9c5e2", + "rootDir": "", + "sha256": "0drhaqdsalwk34rdpfndi0l0c87by59kw7p8j6458yshra039czy", + "url": "https://nv-tegra.nvidia.com/tegra/gfx-src/nv-xconfig.git" + }, + "tegra/gst-src/gst-egl": { + "date": "2025-09-19T10:09:42-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-3mpZ/RPcEi3YkTEafIP5qxtAFSzqy6wZj9XNog1DJZY=", + "leaveDotGit": false, + "path": "/nix/store/fs5pyz51q2lyzgca8j5ksvs4z61hpk16-gst-egl", + "rev": "3069e4b80c2ff05f32faa75b192aaee78e726ac8", + "rootDir": "", + "sha256": "15i58c6s5kfmiwcsrjza5hal06xbz61pq6iij7c2s4nw2gymjsny", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-egl.git" + }, + "tegra/gst-src/gst-jpeg": { + "date": "2025-09-19T10:09:41-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-HNf5o0aIY54m88ZfYcMNd6+w4ekJMfIREfGJ2y1xcQo=", + "leaveDotGit": false, + "path": "/nix/store/pb43j17s3kj8c2vg5ki7w5zd98n893yn-gst-jpeg", + "rev": "d8fad2045b5088d125a78a85d9926f7b7e9737f2", + "rootDir": "", + "sha256": "02kif4nxp2gi248z4c89x7hv1bvp1p1n2py6yck9wqw88sizkmqw", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-jpeg.git" + }, + "tegra/gst-src/gst-nvarguscamera": { + "date": "2025-09-19T10:09:58-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-L3i4f3dkNBI3CT12Th4SekWOjH8LNSKUQPtZMmfpr7o=", + "leaveDotGit": false, + "path": "/nix/store/mknbdlf47skamxkc5ilakhma0qrhnvb5-gst-nvarguscamera", + "rev": "d8adec09c0d0187e68ae650d7bc9135d4913b562", + "rootDir": "", + "sha256": "1fmgx5kk4ngv82a24d8bgy68wibs28g4wxix14vi4d34fxzvhy1g", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvarguscamera.git" + }, + "tegra/gst-src/gst-nvcompositor": { + "date": "2025-09-19T10:10:06-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-VilfR3Ok/BYvbjr0OYkfPiqx4myIC0bUC/udZaVR984=", + "leaveDotGit": false, + "path": "/nix/store/6kszf5zy53xcd1q9299jzh377jcc7c3p-gst-nvcompositor", + "rev": "9456ee592464fe737a5a401451d227a311c0667d", + "rootDir": "", + "sha256": "1kppa6jnb7gv1ga4c2w8dkib2aiy3y4kkx1sdqpidz54fd3myaan", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvcompositor.git" + }, + "tegra/gst-src/gst-nvipcpipeline": { + "date": "2025-09-19T10:09:05-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-uoUE/KQVh0sp0nTKTij/5Rl1AQlMyWmCM0jtufeHLRY=", + "leaveDotGit": false, + "path": "/nix/store/jbglqk13zc1i4wapzp324gcnrafb7l8k-gst-nvipcpipeline", + "rev": "4099d70dbe4db06b815f32bf24980980849dbb14", + "rootDir": "", + "sha256": "05idhzvvkva86f16kjac140pa6g5zwl4xjkls8llp1qmlky091ds", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvipcpipeline.git" + }, + "tegra/gst-src/gst-nvtee": { + "date": "2025-09-19T10:09:06-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-IAkr6Z3X28Sme9gYSijx8Gb95ZmWxJN7/1vP5tlKZng=", + "leaveDotGit": false, + "path": "/nix/store/hc91gp4rj1ymqdd4hqfhm0vklyw0195r-gst-nvtee", + "rev": "47de8825b4db6caaa18ad7257787451cfb16eda0", + "rootDir": "", + "sha256": "0y369bcydksvzxxr7i4nk7jzsrphy4l4l66qgfkc9nypkpljn290", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvtee.git" + }, + "tegra/gst-src/gst-nvunixfd": { + "date": "2025-09-19T10:10:47-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-p6/+f0tq1YfrzYw850NJBHtmmttEvUhkdNF/TSXoAns=", + "leaveDotGit": false, + "path": "/nix/store/z10cfydl5mr5w0kiirmsz9s0xkagyxk0-gst-nvunixfd", + "rev": "1b33fc2e5ceba4821b743d1e2744bb1ccc2197c0", + "rootDir": "", + "sha256": "0yq2x0jlszyifij4iga4vfd6cyq4951yfg4crpmqgmba9dzzxbx7", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvunixfd.git" + }, + "tegra/gst-src/gst-nvv4l2camera": { + "date": "2025-09-19T10:10:06-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-4eXn/+UTl7WlV3KsJP7g3cZn7xQA+EIjbultVjxilk8=", + "leaveDotGit": false, + "path": "/nix/store/laiw941gphnl62bsz79qdpgg71n3ddpk-gst-nvv4l2camera", + "rev": "aa4859da4c571ec31ffa8a7fb5e47424e1a8835b", + "rootDir": "", + "sha256": "0kwnc8y5cvg9dqil5y002kpnginxw3z29b3jayjvb5qkwpzygrg1", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvv4l2camera.git" + }, + "tegra/gst-src/gst-nvvidconv": { + "date": "2025-09-19T10:10:42-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-VkVkvXyOTfvLdN3wjUfl0sWfApl89lGj/VoGcdAAhaE=", + "leaveDotGit": false, + "path": "/nix/store/pi2mj15l824nny7c6fmh934f3va41cyq-gst-nvvidconv", + "rev": "434bd5f56c39901df17a8d0659be4b463cceeb9b", + "rootDir": "", + "sha256": "18c5038721jsznim3xkwk419zifjwm3qvw6xfk5znkcfgjyn8ian", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvvidconv.git" + }, + "tegra/gst-src/gst-nvvideo4linux2": { + "date": "2025-09-19T10:09:24-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-us1aS7t8fJ4z7l8Bajd2Kb90V1v0OOqHk8d4i8Zy4Mg=", + "leaveDotGit": false, + "path": "/nix/store/83k4ckynf7332b5688fnbxszwcpcxzsc-gst-nvvideo4linux2", + "rev": "373bf1a53af1147116727215931ab1aa489c9071", + "rootDir": "", + "sha256": "1j70fb38ny67jf3ylf7lbdbp9gr9fqvnl0azxqrrwz3wpd5mmkds", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvvideo4linux2.git" + }, + "tegra/gst-src/libgstnvcustomhelper": { + "date": "2025-09-19T10:09:25-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-A2pYMVKBLc5TElWbZy8vKYHvqrQXtOx683HBwaklunQ=", + "leaveDotGit": false, + "path": "/nix/store/2mrzaa7awp5yl92f10i4v3pjiq0fx95d-libgstnvcustomhelper", + "rev": "5b4e14b24329388fd2e1026707ef61c3837a6b7b", + "rootDir": "", + "sha256": "0x5s4nlw3hbiydxfrd0pnjmfz0995wpng6sm299wwbc1a8qmhsh3", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/libgstnvcustomhelper.git" + }, + "tegra/gst-src/libgstnvdrmvideosink": { + "date": "2025-09-19T10:09:25-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-5UtAkC6VCEwJRYGlfXpJsOxO8FsxR3ZOR8AnkeBGG9M=", + "leaveDotGit": false, + "path": "/nix/store/m2xm9vdmjnrb0zkw3w4hsz8vawnk7rds-libgstnvdrmvideosink", + "rev": "4dae5492fbafbd47f4d7ad8300efa95230de6ce9", + "rootDir": "", + "sha256": "1lqv8vh929y08x77ciribgq4xv5h95x7v9c18l4lq24m5s840jz5", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/libgstnvdrmvideosink.git" + }, + "tegra/gst-src/libgstnvvideosinks": { + "date": "2025-09-19T10:10:48-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-ggfvX2grvnAs/A790h1OS3ac4SFQbYVnKuQi7R9tKgU=", + "leaveDotGit": false, + "path": "/nix/store/cgdp49k8p88rprlsx0magqscv26ckxfp-libgstnvvideosinks", + "rev": "524a5450ee9904ff91858932662208ad490d2f10", + "rootDir": "", + "sha256": "019adlgys8p459kqavah47hrqxjb9qfx5z8fzhn71gibd1gyy1w2", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/libgstnvvideosinks.git" + }, + "tegra/gst-src/nvgstapps": { + "date": "2025-09-19T10:10:44-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-SIfaarIaE9IkJtgSzu6K0mV7v2PjhEEHY3JP9Klga1g=", + "leaveDotGit": false, + "path": "/nix/store/g3clq6cdkqs2mr7zngk533qyq4m7j2m4-nvgstapps", + "rev": "bfee9b105e2e89382594748cbc6aa63c5fa05e7c", + "rootDir": "", + "sha256": "0n3bc2lz8kvjcc3l3173cfzpnrfjibpcw4nq4qjd44qsn9mdm1s8", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/nvgstapps.git" + }, + "tegra/gst-src/opencv_gst_samples": { + "date": "2025-09-19T10:09:59-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-hMtG2wBfoCOkMBzXVkdG0xHdGQ56Cg9RSIt21h71pA0=", + "leaveDotGit": false, + "path": "/nix/store/jhm84wcs9k2cabgjmkwswk094szjbgsd-opencv_gst_samples", + "rev": "1cc0c590dd60a8ca844209050a825b6c924ca050", + "rootDir": "", + "sha256": "03d4ylgdcxlb918hy2ks1qcxs4fk8r3mdmqw62j2782z03dldjw4", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/opencv_gst_samples.git" + }, + "tegra/hafnium-src/hafnium": { + "date": "2025-09-19T10:10:46-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-4GxV/gFSLnoGJpqIga9tG3aHS1cVvPPiMX9GvN4ZlUY=", + "leaveDotGit": false, + "path": "/nix/store/l9lxgx9ch06b31p4qh3c9nl44miy0fmh-hafnium", + "rev": "d5928923bc3cb64cebe3ec0ee4511f7e85caac42", + "rootDir": "", + "sha256": "0ilm37gbqikz67ig7g0max5qfxhvdnpq324s4q37lbjj07z5av70", + "url": "https://nv-tegra.nvidia.com/tegra/hafnium-src/hafnium.git" + }, + "tegra/nv-sci-src/nvsci_headers": { + "date": "2025-09-19T10:10:08-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-IWccUGj79vVYpXgyxysntrOycO7W1oS+zZ41wVQdTS4=", + "leaveDotGit": false, + "path": "/nix/store/w1dgy3ps6ps2dkygdqphqn2si247jn9r-nvsci_headers", + "rev": "c4b0ffbec7f1b44834719fdf8220a7574ef2c86d", + "rootDir": "", + "sha256": "0bjd3mac2dcyrnz89mnnxrqb5cxn4wmwfckqlmcgbxpvd181qrr1", + "url": "https://nv-tegra.nvidia.com/tegra/nv-sci-src/nvsci_headers.git" + }, + "tegra/nv-sci-src/nvsci_samples": { + "date": "2025-09-19T10:10:49-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-ZeA//mE7kwb4UA1H6BHuz3avNfYLYacCmUsU63sVd4w=", + "leaveDotGit": false, + "path": "/nix/store/6hncdzb0145msjg1cixbhx25p63d9jq2-nvsci_samples", + "rev": "a3f1b7ea3396b05883518ef262da7d5e77d803f9", + "rootDir": "", + "sha256": "133p2mxyn52bk41afq8byqssyxngxq8yhiqda3w0d4rvc7z3zq35", + "url": "https://nv-tegra.nvidia.com/tegra/nv-sci-src/nvsci_samples.git" + }, + "tegra/openwfd-src/openwfd_headers": { + "date": "2025-09-19T10:09:57-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-arsKTev4OvzkPGdMdfe7nst0+DDs362lJJ9Nenz5+Uc=", + "leaveDotGit": false, + "path": "/nix/store/6avxknn2ywahvvnqvjwjsn7lpbw0pjkd-openwfd_headers", + "rev": "a075470ae4cfc5a4708e863c9c5119be81192a68", + "rootDir": "", + "sha256": "0izrz5y7lkcz4jjsvpzc63w79jwypgvpak377kjgqfpqxd6hmfva", + "url": "https://nv-tegra.nvidia.com/tegra/openwfd-src/openwfd_headers.git" + }, + "tegra/optee-src/atf": { + "date": "2025-09-19T10:09:22-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-PeCitlK29FUVDxyUPMVBKRYMP/9MEOG5Nt1IwMXX2lQ=", + "leaveDotGit": false, + "path": "/nix/store/lfradg34nz4lzzx65nh6g6l6d2x3nmh5-atf", + "rev": "2b69e3103dc7913d9286259e086bbfc8f194bae1", + "rootDir": "", + "sha256": "0m6ssz2w0j6x6swy242czwzhq5i9872kr50w1wambx5naava5q1x", + "url": "https://nv-tegra.nvidia.com/tegra/optee-src/atf.git" + }, + "tegra/optee-src/atf_t264": { + "date": "2025-09-19T10:09:12-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-6+3QLCLCowqAvU3H34y6vR467pzxYU6FyUFO1FF59fI=", + "leaveDotGit": false, + "path": "/nix/store/brga43g3bg2j2q6amxgh9d8n695nblaz-atf_t264", + "rev": "a5b0e0a94b01e222ddb9a18e95fbc5f46ad0ab29", + "rootDir": "", + "sha256": "1wpmg58x8kj1r62lwqgikkp3l7mxpa6dzisdpn00m8y248nd1vgb", + "url": "https://nv-tegra.nvidia.com/tegra/optee-src/atf_t264.git" + }, + "tegra/optee-src/nv-optee": { + "date": "2025-09-19T10:09:49-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-/UiDUREP0oGMN3xZtuvWBz064DS8+wpzyyw5vc08IGg=", + "leaveDotGit": false, + "path": "/nix/store/12r8f0k6l580iy64kkmfmslnas5r331s-nv-optee", + "rev": "064a5169e80afcc89258f82be2a07a7d54e737fc", + "rootDir": "", + "sha256": "0s107k6vsf9crdrhmyxw6kh3lg87svmvcnbw6y683lhg258q6j7x", + "url": "https://nv-tegra.nvidia.com/tegra/optee-src/nv-optee.git" + }, + "tegra/v4l2-src/libv4l2_nvargus": { + "date": "2025-09-19T10:09:51-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-gTrQgdI5lOynCKMgCvF6uue9gd7PG9xpqm7VCFlp7KY=", + "leaveDotGit": false, + "path": "/nix/store/xqd81pbkjhfihj0bjckzirqrrbmldzms-libv4l2_nvargus", + "rev": "d1e58f9cd6b84cb12fdb0229f1d3f42ebaf1c333", + "rootDir": "", + "sha256": "19pcd5chimbfm9lxq6ygvs0vvrxsgbqhl85312kyr51rsa0x0fl1", + "url": "https://nv-tegra.nvidia.com/tegra/v4l2-src/libv4l2_nvargus.git" + }, + "tegra/v4l2-src/v4l2_libs": { + "date": "2025-09-19T10:09:57-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-2qJumtpOnTBRZjgp5yjM8AG6d+UMksSjmq2LKHvA9wI=", + "leaveDotGit": false, + "path": "/nix/store/17klzxnia6240d1cgn1f3s18a07c6z6z-v4l2_libs", + "rev": "74b0ee4b0a453bf6a603d7699e4c15b83217a42f", + "rootDir": "", + "sha256": "00ppq1xji2xdkaiw94hcwmvvl0ghrhlffa9qcr8k17afvad6x8ns", + "url": "https://nv-tegra.nvidia.com/tegra/v4l2-src/v4l2_libs.git" + }, + "tegra/webrtc-app-src/argus-camera-app": { + "date": "2025-09-19T10:10:34-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-gydje+oiPqcnLV+zn4C7U3OLhDqpU1DgS3V3Puhs9Lc=", + "leaveDotGit": false, + "path": "/nix/store/afq69b32gl81rgvmn7vwhwnbqr6is9gh-argus-camera-app", + "rev": "0db98ee507c29c1f5cfb4f4c05edecb06a575ca2", + "rootDir": "", + "sha256": "1dzldkl3wxvm9gh50lx97a28nwskpf09zcsz5lksfgi2x9xn69w3", + "url": "https://nv-tegra.nvidia.com/tegra/webrtc-app-src/argus-camera-app.git" + }, + "unifiedgpudisp": { + "date": "2025-09-19T10:09:32-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "fetchTags": false, + "hash": "sha256-8KB/ZW6xxhnwNbH2AYkJitX/mhWHDIK4YbrhiWulcd0=", + "leaveDotGit": false, + "path": "/nix/store/d5wvwasjpjz1hzcr17zfjijwk0v1409i-nv-unified-gpu-display-driver", + "rev": "943a608e59bc1133f01c8228ad5c03e2a3369dec", + "rootDir": "", + "sha256": "1pbilmmqkqdsc6w843472ndgzmca164h3xmi6pq1kimidrjpz87h", + "url": "https://nv-tegra.nvidia.com/tegra/kernel-src/nv-unified-gpu-display-driver.git" + } +} From e5abb64c13930e05eb3552b6d16ddcae4d8d8973 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:05:03 -0700 Subject: [PATCH 07/27] uefi-firmware: Add r38 derivations The derivation is similar to JetPack 6, but not more minimal UEFI and paths have been tweaked. --- overlay-with-config.nix | 6 + pkgs/uefi-firmware/r35/default.nix | 1 + pkgs/uefi-firmware/r36/default.nix | 1 + .../r38/capsule-authentication.diff | 14 + pkgs/uefi-firmware/r38/default.nix | 255 ++++++++++++++++++ pkgs/uefi-firmware/r38/pyenv.nix | 100 +++++++ .../r38/remove-gcc-prefix-checks.diff | 40 +++ pkgs/uefi-firmware/r38/repeatability.diff | 13 + .../r38/stuart-passthru-compiler-prefix.diff | 18 ++ 9 files changed, 448 insertions(+) create mode 100644 pkgs/uefi-firmware/r38/capsule-authentication.diff create mode 100644 pkgs/uefi-firmware/r38/default.nix create mode 100644 pkgs/uefi-firmware/r38/pyenv.nix create mode 100644 pkgs/uefi-firmware/r38/remove-gcc-prefix-checks.diff create mode 100644 pkgs/uefi-firmware/r38/repeatability.diff create mode 100644 pkgs/uefi-firmware/r38/stuart-passthru-compiler-prefix.diff diff --git a/overlay-with-config.nix b/overlay-with-config.nix index 8559af9f..06d7c779 100644 --- a/overlay-with-config.nix +++ b/overlay-with-config.nix @@ -46,6 +46,12 @@ final: prev: ( errorLevelInfo = cfg.firmware.uefi.errorLevelInfo; edk2NvidiaPatches = cfg.firmware.uefi.edk2NvidiaPatches; edk2UefiPatches = cfg.firmware.uefi.edk2UefiPatches; + socFamily = + if cfg.som == null then null + else if lib.hasPrefix "thor-" cfg.som then "t26x" + else if lib.hasPrefix "orin-" cfg.som then "t23x" + else if lib.hasPrefix "xavier-" cfg.som then "t19x" + else throw "Unknown SoC type"; # A hash of something that represents everything that goes into the # platform firmware so that we can include it in the firmware version. diff --git a/pkgs/uefi-firmware/r35/default.nix b/pkgs/uefi-firmware/r35/default.nix index 4236defc..48e49ced 100644 --- a/pkgs/uefi-firmware/r35/default.nix +++ b/pkgs/uefi-firmware/r35/default.nix @@ -25,6 +25,7 @@ edk2UefiPatches ? [ ] , debugMode ? false , errorLevelInfo ? debugMode +, socFamily ? null # used in r38+, not needed here. , # Enables a bunch more info messages # The root certificate (in PEM format) for authenticating capsule updates. By diff --git a/pkgs/uefi-firmware/r36/default.nix b/pkgs/uefi-firmware/r36/default.nix index e7612b1c..c3493c57 100644 --- a/pkgs/uefi-firmware/r36/default.nix +++ b/pkgs/uefi-firmware/r36/default.nix @@ -24,6 +24,7 @@ edk2UefiPatches ? [ ] , debugMode ? false , errorLevelInfo ? debugMode +, socFamily ? null # used in r38+, not needed here. , # Enables a bunch more info messages # The root certificate (in PEM format) for authenticating capsule updates. By diff --git a/pkgs/uefi-firmware/r38/capsule-authentication.diff b/pkgs/uefi-firmware/r38/capsule-authentication.diff new file mode 100644 index 00000000..0c4ac0f5 --- /dev/null +++ b/pkgs/uefi-firmware/r38/capsule-authentication.diff @@ -0,0 +1,14 @@ +diff --git a/Platform/NVIDIA/NVIDIA.common.dsc.inc b/Platform/NVIDIA/NVIDIA.common.dsc.inc +index 8e8ddbbe..84b8a84b 100644 +--- a/Platform/NVIDIA/NVIDIA.common.dsc.inc ++++ b/Platform/NVIDIA/NVIDIA.common.dsc.inc +@@ -945,6 +945,9 @@ gEfiSecurityPkgTokenSpaceGuid.PcdSingleBootApplicationGuid|{ GUID("cbf481fb-b373 + gNVIDIATokenSpaceGuid.PcdNvLogToScratchRegs|TRUE + !endif + ++ !include PublicCapsuleKey.cer.gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer.inc ++ !include PublicCapsuleKey.cer.gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr.inc ++ + [PcdsDynamicDefault] + # + # Enable emulated variable NV mode in variable driver. diff --git a/pkgs/uefi-firmware/r38/default.nix b/pkgs/uefi-firmware/r38/default.nix new file mode 100644 index 00000000..4b0cc660 --- /dev/null +++ b/pkgs/uefi-firmware/r38/default.nix @@ -0,0 +1,255 @@ +{ lib +, stdenv +, callPackage +, buildPackages +, fetchFromGitHub +, fetchpatch +, runCommand +, acpica-tools +, dtc +, python3 +, unixtools +, libuuid +, which +, nasm +, applyPatches +, nukeReferences +, l4tMajorMinorPatchVersion +, uniqueHash ? "" +, # Optional path to a boot logo that will be converted and cropped into the format required + bootLogo ? null +, # Patches to apply to edk2-nvidia source tree + edk2NvidiaPatches ? [ ] +, # Patches to apply to edk2 source tree + edk2UefiPatches ? [ ] +, debugMode ? false +, socFamily ? "t26x" +, defconfig ? "${socFamily}_general" +, errorLevelInfo ? debugMode +, # Enables a bunch more info messages + + # The root certificate (in PEM format) for authenticating capsule updates. By + # default, EDK2 authenticates using a test keypair commited upstream. + trustedPublicCertPemFile ? null +}: + +let + # TODO: Move this generation out of uefi-firmware.nix, because this .nix + # file is callPackage'd using an aarch64 version of nixpkgs, and we don't + # want to have to recompilie imagemagick + bootLogoVariants = runCommand "uefi-bootlogo" { nativeBuildInputs = [ buildPackages.buildPackages.imagemagick ]; } '' + mkdir -p "$out" + convert "${bootLogo}" -resize 1920x1080 -gravity Center -extent 1920x1080 -format bmp -define bmp:format=bmp3 "$out/logo1080.bmp" + convert "${bootLogo}" -resize 1280x720 -gravity Center -extent 1280x720 -format bmp -define bmp:format=bmp3 "$out/logo720.bmp" + convert "${bootLogo}" -resize 640x480 -gravity Center -extent 640x480 -format bmp -define bmp:format=bmp3 "$out/logo480.bmp" + ''; + + # See: https://github.com/NVIDIA/edk2-edkrepo-manifest/blob/7b298576d93b0fae216aee7a1539268f4ce9c6a9/edk2-nvidia/Platform/NVIDIAPlatformsManifest.xml#L306 + defaultOrigin = { + owner = "NVIDIA"; + rev = "r38.2"; + }; + repos = { + edk2 = { + sha256 = "sha256-qJoQrU9o9HYdT9xwXV4fqQqIpG7zvL1nAzE+6fuwRFk="; + fetchSubmodules = true; + }; + edk2-non-osi.sha256 = "sha256-Dj6Og/sc3MEMU/37rUMu7miHOvFi3Qvfkm+nMSUBUF0="; + edk2-platforms.sha256 = "sha256-PsKxy/tiRl2/qcL/JQNXbUPsnWekAQ+4b+NiccSRGa4="; + edk2-infineon.sha256 = "sha256-47UJfEd4ViTenx5dvy2G75NFSgmcsyIWpN0Lv1QlvA8="; + edk2-redfish-client.sha256 = "sha256-EUWi5z+1sz2zMZM6x/sqE2NvdHRkQwQOcotsUwELsBY="; + edk2-nvidia.sha256 = "sha256-G+WoeWH4OxQlpwUijHSr5fcgQxLbzrGlackIUSxWtFc="; + edk2-nvidia-non-osi.sha256 = "sha256-8y7rNaaXC9ZvNHV/NRmbMVPCgYERqqley2SnMer5T0k="; + }; + + fetchRepo = name: value: fetchFromGitHub (defaultOrigin // { inherit name; repo = name; } // value); + fetchedRepos = builtins.mapAttrs fetchRepo repos; + + patchedRepos = fetchedRepos // { + edk2 = applyPatches { + name = "edk2"; + src = fetchedRepos.edk2; + # see https://github.com/NixOS/nixpkgs/blob/9e7e65f7c5ec6a9cfb4ca7239c78a3d237c160ac/pkgs/by-name/ed/edk2/package.nix#L51-L98 + patches = [ + # pass targetPrefix as an env var + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/edk2/raw/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/0021-Tweak-the-tools_def-to-support-cross-compiling.patch"; + hash = "sha256-E1/fiFNVx0aB1kOej2DJ2DlBIs9tAAcxoedym2Zhjxw="; + }) + # https://github.com/tianocore/edk2/pull/5658 + (fetchpatch { + name = "fix-cross-compilation-antlr-dlg.patch"; + url = "https://github.com/tianocore/edk2/commit/a34ff4a8f69a7b8a52b9b299153a8fac702c7df1.patch"; + hash = "sha256-u+niqwjuLV5tNPykW4xhb7PW2XvUmXhx5uvftG1UIbU="; + }) + + ./remove-gcc-prefix-checks.diff + ]; + }; + + edk2-nvidia = applyPatches { + name = "edk2-nvidia"; + src = fetchedRepos.edk2-nvidia; + patches = edk2NvidiaPatches ++ [ + ./stuart-passthru-compiler-prefix.diff + ./repeatability.diff + ] ++ lib.optionals (trustedPublicCertPemFile != null) [ + ./capsule-authentication.diff + ]; + postPatch = lib.optionalString errorLevelInfo '' + sed -i 's#PcdDebugPrintErrorLevel|.*#PcdDebugPrintErrorLevel|0x8000004F#' Platform/NVIDIA/NVIDIA.common.dsc.inc + '' + lib.optionalString (bootLogo != null) '' + cp ${bootLogoVariants}/logo1080.bmp Silicon/NVIDIA/Drivers/Logo/nvidiagray1080.bmp + cp ${bootLogoVariants}/logo720.bmp Silicon/NVIDIA/Drivers/Logo/nvidiagray720.bmp + cp ${bootLogoVariants}/logo480.bmp Silicon/NVIDIA/Drivers/Logo/nvidiagray480.bmp + ''; + }; + }; + pythonEnv = buildPackages.python312.withPackages (ps: callPackage ./pyenv.nix { inherit ps; inherit (patchedRepos) edk2-nvidia; }); + + buildTarget = if debugMode then "DEBUG" else "RELEASE"; + + targetArch = + if stdenv.hostPlatform.isi686 then + "IA32" + else if stdenv.hostPlatform.isx86_64 then + "X64" + else if stdenv.hostPlatform.isAarch32 then + "ARM" + else if stdenv.hostPlatform.isAarch64 then + "AARCH64" + else if stdenv.hostPlatform.isRiscV64 then + "RISCV64" + else if stdenv.hostPlatform.isLoongArch64 then + "LOONGARCH64" + else + throw "Unsupported architecture"; + + mkStuartDrv = platformBuild: extraArgs: + # TODO: edk2.mkDerivation doesn't have a way to override the edk version used! + # Make it not via passthru ? + stdenv.mkDerivation (finalAttrs: { + pname = "${platformBuild}-edk2-uefi-${buildTarget}"; + version = l4tMajorMinorPatchVersion; + + srcs = builtins.attrValues patchedRepos; + + sourceRoot = "."; + + depsBuildBuild = [ buildPackages.stdenv.cc buildPackages.bash libuuid ]; + nativeBuildInputs = [ + pythonEnv + + # from nixpkgs, for stuart + acpica-tools + dtc + nasm + unixtools.whereis + which + ]; + strictDeps = true; + + # trick taken from https://src.fedoraproject.org/rpms/edk2/blob/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/edk2.spec#_319 + ${"GCC_${targetArch}_PREFIX"} = stdenv.cc.targetPrefix; + # stuart (nvidia extensions) really wants CROSS_COMPILER_PREFIX to look like this + CROSS_COMPILER_PREFIX = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}"; + # Version is ${FIRMWARE_VERSION_BASE}-${GIT_SYNC_REVISION} + FIRMWARE_VERSION_BASE = "${l4tMajorMinorPatchVersion}"; + + # see nixpkgs/pkgs/by-name/ed/edk2/package.nix + hardeningDisable = [ + "format" + "fortify" + ]; + + patches = edk2UefiPatches; + + patchPhase = '' + find . -name \*_ext_dep.yaml -delete + patchShebangs . + ''; + + configurePhase = '' + runHook preConfigure + + unset AR + unset AS + unset CC + unset CXX + unset LD + unset NM + unset OBJCOPY + unset OBJDUMP + unset RANLIB + unset READELF + unset SIZE + unset STRINGS + unset STRIP + + export WORKSPACE=$(pwd) + export GIT_SYNC_REVISION=$(printf "%s-%s" "${uniqueHash}" "$out" | sha256sum | head -c 12) + CFLAGS=$NIX_CFLAGS_COMPILE_FOR_BUILD LDFLAGS=$NIX_LDFLAGS_FOR_BUILD python edk2/BaseTools/Edk2ToolsBuild.py -t GCC5 + # DANGER: If someone else modifies PYTHONPATH, then we lose this + # We're okay when this was written. + export PYTHONPATH=$(pwd)/edk2-nvidia/Silicon/NVIDIA + + ${lib.optionalString (trustedPublicCertPemFile != null) '' + echo Using ${trustedPublicCertPemFile} as public certificate for capsule verification + ${lib.getExe buildPackages.openssl} x509 -outform DER -in ${trustedPublicCertPemFile} -out edk2/PublicCapsuleKey.cer + python3 edk2/BaseTools/Scripts/BinToPcd.py -p gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer -i edk2/PublicCapsuleKey.cer -o edk2/PublicCapsuleKey.cer.gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer.inc + python3 edk2/BaseTools/Scripts/BinToPcd.py -x -p gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr -i edk2/PublicCapsuleKey.cer -o edk2/PublicCapsuleKey.cer.gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr.inc + ''} + + runHook postConfigure + ''; + + buildPhase = '' + stuart_setup -c "edk2-nvidia/Platform/NVIDIA/${platformBuild}/PlatformBuild.py" + stuart_build -c "edk2-nvidia/Platform/NVIDIA/${platformBuild}/PlatformBuild.py" ${extraArgs} --target ${buildTarget} + ''; + + installPhase = '' + runHook preInstall + mv -v Build/*/* $out + mv -v reports/* $out + runHook postInstall + ''; + }); + + jetsonUefi = mkStuartDrv "Tegra" "--init-defconfig edk2-nvidia/Platform/NVIDIA/Tegra/DefConfigs/${defconfig}.defconfig"; + jetsonStandaloneMMOptee = mkStuartDrv "StandaloneMmOptee" ""; + + uefi-firmware = runCommand "uefi-firmware-${l4tMajorMinorPatchVersion}" + { + nativeBuildInputs = [ python3 nukeReferences ]; + passthru = { + # Keep in sync with FIRMWARE_VERSION_BASE and GIT_SYNC_REVISION above + biosVersion = "${l4tMajorMinorPatchVersion}-" + lib.substring 0 12 (builtins.hashString "sha256" "${uniqueHash}-${jetsonUefi}"); + inherit jetsonUefi jetsonStandaloneMMOptee; + } // patchedRepos; + } + ('' + mkdir -p $out + python3 ${patchedRepos.edk2-nvidia}/Silicon/NVIDIA/edk2nv/FormatUefiBinary.py \ + ${jetsonUefi}/FV/UEFI_NS.Fv \ + $out/uefi_jetson.bin + + python3 ${patchedRepos.edk2-nvidia}/Silicon/NVIDIA/edk2nv/FormatUefiBinary.py \ + ${jetsonUefi}/AARCH64/L4TLauncher.efi \ + $out/L4TLauncher.efi + + # Get rid of any string references to source(s) + nuke-refs $out/uefi_jetson.bin + '' + lib.optionalString (socFamily == "t19x" || socFamily == "t23x") '' + python3 ${patchedRepos.edk2-nvidia}/Silicon/NVIDIA/edk2nv/FormatUefiBinary.py \ + ${jetsonStandaloneMMOptee}/FV/UEFI_MM.Fv \ + $out/standalonemm_optee.bin + + nuke-refs $out/standalonemm_optee.bin + ''); +in +{ + inherit uefi-firmware; +} + + diff --git a/pkgs/uefi-firmware/r38/pyenv.nix b/pkgs/uefi-firmware/r38/pyenv.nix new file mode 100644 index 00000000..ba399ac3 --- /dev/null +++ b/pkgs/uefi-firmware/r38/pyenv.nix @@ -0,0 +1,100 @@ +{ fetchFromGitHub +, ps +, ... +}: +with ps; +let + edk2-pytool-library = buildPythonPackage + rec { + pname = "edk2-pytool-library"; + # Bumped from 0.19.3 for edk2-basetools + version = "0.23.2"; + pyproject = true; + + src = fetchPypi { + pname = "edk2_pytool_library"; + inherit version; + hash = "sha256-v33XVI+m2CSOuuxsu2JcBjm0cQmspWQGireQzL6/6rI="; + }; + build-system = [ setuptools-scm ]; + + dependencies = [ + pyasn1 + pyasn1-modules + cryptography + joblib + GitPython + sqlalchemy + pygount + ]; + }; + edk2-pytool-extensions = buildPythonPackage + rec { + pname = "edk2-pytool-extensions"; + version = "0.29.4"; + pyproject = true; + + src = fetchPypi { + pname = "edk2_pytool_extensions"; + inherit version; + hash = "sha256-qHLLHjFKnfgn4aO6n+CxhEqwyR7MaHYOfZxJCDhR13s="; + }; + build-system = [ setuptools-scm ]; + + dependencies = [ + edk2-pytool-library + pyyaml + pefile + semantic-version + GitPython + openpyxl + XlsxWriter + ]; + }; + edk2-basetools = buildPythonPackage + rec { + pname = "edk2-basetools"; + # Want 0.1.48, but it hard-codes a fetch from pypi! + # 0.1.50 is broken, see tianocore/edk2-basetools#124 + version = "0.1.53"; + pyproject = true; + + src = fetchFromGitHub { + owner = "tianocore"; + repo = pname; + rev = "v${version}"; + hash = "sha256-qg54/2fYjX9pJbcu2iryrWIvQc1iOFl8v490zD7IhrA="; + }; + build-system = [ setuptools setuptools-scm pytest pytest-html pytest-cov flake8 build ]; + + dependencies = [ + edk2-pytool-library + antlr4-python3-runtime + ]; + }; + kconfiglib = buildPythonPackage + rec { + pname = "kconfiglib"; + version = "14.1.0"; # Latest when writing, conveniently not pinned + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-vtLMIhb1OOykJVqDpFiNiCNWPN1QEU+GzxomdOYCyTw="; + }; + build-system = [ setuptools ]; + }; +in +[ + # from edk2/pip-requirements.txt + edk2-pytool-library + edk2-pytool-extensions + edk2-basetools + antlr4-python3-runtime + lcov-cobertura + regex + # from edk2-nvidia + kconfiglib + # implicit! + setuptools +] diff --git a/pkgs/uefi-firmware/r38/remove-gcc-prefix-checks.diff b/pkgs/uefi-firmware/r38/remove-gcc-prefix-checks.diff new file mode 100644 index 00000000..cbd5913f --- /dev/null +++ b/pkgs/uefi-firmware/r38/remove-gcc-prefix-checks.diff @@ -0,0 +1,40 @@ +diff --git a/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py b/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py +index dab7a87997..db18dc8341 100644 +--- a/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py ++++ b/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py +@@ -21,35 +21,6 @@ class LinuxGcc5ToolChain(IUefiBuildPlugin): + + def do_pre_build(self, thebuilder): + self.Logger = logging.getLogger("LinuxGcc5ToolChain") +- +- # +- # GCC5 - The ARM and AARCH64 compilers need their paths set if available +- if thebuilder.env.GetValue("TOOL_CHAIN_TAG") == "GCC5": +- +- # Start with AARACH64 compiler +- ret = self._check_aarch64() +- if ret != 0: +- self.Logger.critical("Failed in check aarch64") +- return ret +- +- # Check arm compiler +- ret = self._check_arm() +- if ret != 0: +- self.Logger.critical("Failed in check arm") +- return ret +- +- # Check RISCV64 compiler +- ret = self._check_riscv64() +- if ret != 0: +- self.Logger.critical("Failed in check riscv64") +- return ret +- +- # Check LoongArch64 compiler +- ret = self._check_loongarch64() +- if ret != 0: +- self.Logger.critical("Failed in check loongarch64") +- return ret +- + return 0 + + def _check_arm(self): diff --git a/pkgs/uefi-firmware/r38/repeatability.diff b/pkgs/uefi-firmware/r38/repeatability.diff new file mode 100644 index 00000000..24f73828 --- /dev/null +++ b/pkgs/uefi-firmware/r38/repeatability.diff @@ -0,0 +1,13 @@ +diff --git a/Silicon/NVIDIA/edk2nv/stuart/builder.py b/Silicon/NVIDIA/edk2nv/stuart/builder.py +index 692400d2..f4e37d05 100644 +--- a/Silicon/NVIDIA/edk2nv/stuart/builder.py ++++ b/Silicon/NVIDIA/edk2nv/stuart/builder.py +@@ -323,7 +323,7 @@ class NVIDIAPlatformBuilder(UefiBuilder): + self.settings.GetGuid(), reason_dynamic) + + # Set additional build variables +- cur_time = datetime.datetime.now() ++ cur_time = datetime.datetime.fromtimestamp(int(os.getenv("SOURCE_DATE_EPOCH"))) + build_ts = cur_time.astimezone().replace(microsecond=0).isoformat() + self.env.SetValue("BLD_*_BUILD_DATE_TIME", build_ts, reason_dynamic) + epoch_time = int(time.time()) diff --git a/pkgs/uefi-firmware/r38/stuart-passthru-compiler-prefix.diff b/pkgs/uefi-firmware/r38/stuart-passthru-compiler-prefix.diff new file mode 100644 index 00000000..aead7267 --- /dev/null +++ b/pkgs/uefi-firmware/r38/stuart-passthru-compiler-prefix.diff @@ -0,0 +1,18 @@ +diff --git a/Silicon/NVIDIA/edk2nv/stuart/builder.py b/Silicon/NVIDIA/edk2nv/stuart/builder.py +index 692400d2..31cef6ae 100644 +--- a/Silicon/NVIDIA/edk2nv/stuart/builder.py ++++ b/Silicon/NVIDIA/edk2nv/stuart/builder.py +@@ -340,13 +340,6 @@ class NVIDIAPlatformBuilder(UefiBuilder): + str(ws_dir / self.settings.GetReportFile()), + reason_setman) + +- # Set shell env +- shell_environment.GetEnvironment().set_shell_var( +- f"{toolchain_tag}_AARCH64_PREFIX", +- self.settings.GetCrossCompilerPrefix()) +- shell_environment.GetEnvironment().set_shell_var( +- f"DTCPP_PREFIX", +- self.settings.GetCrossCompilerPrefix()) + # - Needed by build.py. + confdir_path = ws_dir / self.settings.GetConfDirName() + shell_environment.GetEnvironment().set_shell_var( From 78a153b995e4bfed2b7d166af6cbe607a4ec3b57 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:09:08 -0700 Subject: [PATCH 08/27] flash-script: uefi-firmware updates for r38 The UEFI image name is now SoC-specific and there may be no DTBOs output from the UEFI firmware build. --- device-pkgs/flash-script.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/device-pkgs/flash-script.nix b/device-pkgs/flash-script.nix index 7a0fd56c..9ead9f3d 100644 --- a/device-pkgs/flash-script.nix +++ b/device-pkgs/flash-script.nix @@ -18,6 +18,9 @@ additionalDtbOverlays ? [ ] , flash-tools }: +let + uefi_image = if socType == "t264" then "uefi_t26x_general.bin" else "uefi_jetson.bin"; +in ('' set -euo pipefail @@ -45,7 +48,7 @@ ${lib.optionalString (partitionTemplate != null) "cp ${partitionTemplate} flash.xml"} ${lib.optionalString (dtbsDir != null) "cp -r ${dtbsDir}/. kernel/dtb/"} ${lib.optionalString (uefi-firmware != null) '' - cp ${uefi-firmware}/uefi_jetson.bin bootloader/uefi_jetson.bin + cp ${uefi-firmware}/uefi_jetson.bin bootloader/${uefi_image} if [ -e "${uefi-firmware}/uefi_jetson_minimal.bin" ] ; then cp ${uefi-firmware}/uefi_jetson_minimal.bin bootloader/uefi_jetson_minimal.bin fi @@ -55,7 +58,9 @@ cp ${uefi-firmware}/L4TLauncher.efi bootloader/BOOTAA64.efi # Replace additional dtbos - cp ${uefi-firmware}/dtbs/*.dtbo kernel/dtb/ + if [ -e ${uefi-firmware}/dtbs ]; then + cp ${uefi-firmware}/dtbs/*.dtbo kernel/dtb/ + fi ''} ${lib.optionalString (tosImage != null) '' cp ${tosImage}/tos.img bootloader/tos-optee_${socType}.img From a6c79c582aeaf1a2228baacedc4c38c2acdf7465 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:11:27 -0700 Subject: [PATCH 09/27] flash-tools: Updates for r38 Update flash tools patch and add new xmlstarlet dependency --- overlay-with-config.nix | 4 +++- pkgs/flash-tools/default.nix | 15 +++++++++++++++ pkgs/flash-tools/flash-tools-r38.patch | 13 +++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 pkgs/flash-tools/flash-tools-r38.patch diff --git a/overlay-with-config.nix b/overlay-with-config.nix index 06d7c779..0a1fdb86 100644 --- a/overlay-with-config.nix +++ b/overlay-with-config.nix @@ -11,6 +11,8 @@ final: prev: ( inherit (final) lib; + jetpackAtLeast = lib.versionAtLeast cfg.majorVersion; + tosArgs = { inherit (final.nvidia-jetpack) socType; inherit (cfg.firmware.optee) taPublicKeyFile extraMakeFlags coreLogLevel taLogLevel; @@ -216,7 +218,7 @@ final: prev: ( "./flash.sh" (lib.optionalString (cfg.flashScriptOverrides.partitionTemplate != null) "-c flash.xml") "--no-flash" - (lib.optionalString (cfg.majorVersion == "6") "--sign") + (lib.optionalString (jetpackAtLeast "6") "--sign") "--bup" "--multi-spec" (builtins.toString cfg.flashScriptOverrides.flashArgs) diff --git a/pkgs/flash-tools/default.nix b/pkgs/flash-tools/default.nix index 02b40910..71b55db8 100644 --- a/pkgs/flash-tools/default.nix +++ b/pkgs/flash-tools/default.nix @@ -31,6 +31,7 @@ , bspSrc , l4tMajorMinorPatchVersion , symlinkJoin +, xmlstarlet }: let @@ -76,6 +77,7 @@ let '' + (lib.optionalString (!stdenv.hostPlatform.isx86) '' # Wrap x86 binaries in qemu pushd bootloader/ >/dev/null + # Wrap i386 binaries in qemu for filename in chkbdinfo mkbctpart mkbootimg mksparse tegrabct_v2 tegradevflash_v2 tegrahost_v2 tegrakeyhash tegraopenssl tegraparser_v2 tegrarcm_v2 tegrasign_v2; do if [[ -e $filename ]]; then mv "$filename" ."$filename"-wrapped @@ -87,6 +89,18 @@ let chmod +x "$filename" fi done + # Wrap x86_64 binaries in qemu + for filename in fiptool; do + if [[ -e $filename ]]; then + mv "$filename" ."$filename"-wrapped + # DO NOT CHANGE THE WHITESPACE BELOW! + cat >"$filename" </dev/null ''); @@ -128,6 +142,7 @@ let bc openssl sbsigntool # In l4t_uefi_sign_image.sh, which is needed by RCM flashing + xmlstarlet # Needed in JetPack 7 # Needed by bootloader/tegraflash_impl_t234.py gcc diff --git a/pkgs/flash-tools/flash-tools-r38.patch b/pkgs/flash-tools/flash-tools-r38.patch new file mode 100644 index 00000000..0c96ad71 --- /dev/null +++ b/pkgs/flash-tools/flash-tools-r38.patch @@ -0,0 +1,13 @@ +diff --git a/bootloader/l4t_bup_gen.func b/bootloader/l4t_bup_gen.func +index 7224069..e8116f2 100644 +--- a/bootloader/l4t_bup_gen.func ++++ b/bootloader/l4t_bup_gen.func +@@ -25,8 +25,6 @@ BSP_VER="" + + declare -A ENTRY_LIST + ENTRY_LIST[bl]="" +-ENTRY_LIST[kernel]="" +-ENTRY_LIST[safety_user]="" + + PART_NAME="" + IMAGE_SIGNED=0 From a61f13578357163675673973efd133a0be2dcfb6 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:13:42 -0700 Subject: [PATCH 10/27] l4t: debs update for r38 The default repo name has changed from "t234" to "som" and l4t-xusb-firmware is removed. --- pkgs/containers/deps.nix | 8 ++++++-- pkgs/l4t/default.nix | 27 ++++++++++++++++----------- pkgs/samples/graphics-demos.nix | 5 ++++- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/pkgs/containers/deps.nix b/pkgs/containers/deps.nix index 432caa6b..f289f4dd 100644 --- a/pkgs/containers/deps.nix +++ b/pkgs/containers/deps.nix @@ -3,14 +3,18 @@ , dpkg , debs , l4tMajorMinorPatchVersion +, l4tAtLeast }: runCommand "container-deps" { nativeBuildInputs = [ dpkg ]; } (lib.concatStringsSep "\n" (lib.mapAttrsToList (deb: debFiles: - (if builtins.hasAttr deb debs.t234 then '' - echo Unpacking ${deb}; dpkg -x ${debs.t234.${deb}.src} debs + let + repo = if l4tAtLeast "38" then "som" else "t234"; + in + (if builtins.hasAttr deb debs.${repo} then '' + echo Unpacking ${deb}; dpkg -x ${debs.${repo}.${deb}.src} debs '' else '' echo Unpacking ${deb}; dpkg -x ${debs.common.${deb}.src} debs '') + (lib.concatStringsSep "\n" (map diff --git a/pkgs/l4t/default.nix b/pkgs/l4t/default.nix index b91bff83..0d5073f0 100644 --- a/pkgs/l4t/default.nix +++ b/pkgs/l4t/default.nix @@ -27,13 +27,16 @@ , cudaDriverMajorMinorVersion }: let + # Nicely, for JetPack 5 and 6, the t194 and t234 packages are currently + # identical, so we just use t194. No guarantee that will stay the same in + # the future, so we should consider choosing the right package set based + # on the SoC. + defaultSomRepo = if l4tAtLeast "38" then "som" else "t234"; + # Wrapper around mkDerivation that has some sensible defaults to extract a .deb file from the L4T BSP pacckage buildFromDeb = - # Nicely, the t194 and t234 packages are currently identical, so we just - # use t194. No guarantee that will stay the same in the future, so we - # should consider choosing the right package set based on the SoC. { name - , repo ? "t234" + , repo ? defaultSomRepo , deb ? debs.${repo}.${name} , src ? deb.src , version ? deb.version @@ -213,7 +216,7 @@ let # well as libnvidia-ptxjitcompiler in the same package. meta-tegra does a # similar thing where they pull libnvidia-ptxjitcompiler out of # l4t-3d-core and place it in the same package as libcuda. - dpkg --fsys-tarfile ${debs.t234.nvidia-l4t-3d-core.src} | tar -xO ./usr/lib/aarch64-linux-gnu/${folder}/libnvidia-ptxjitcompiler.so.${version} > lib/libnvidia-ptxjitcompiler.so.${version} + dpkg --fsys-tarfile ${debs.${defaultSomRepo}.nvidia-l4t-3d-core.src} | tar -xO ./usr/lib/aarch64-linux-gnu/${folder}/libnvidia-ptxjitcompiler.so.${version} > lib/libnvidia-ptxjitcompiler.so.${version} ln -sf libnvidia-ptxjitcompiler.so.${version} lib/libnvidia-ptxjitcompiler.so.1 ln -sf libnvidia-ptxjitcompiler.so.${version} lib/libnvidia-ptxjitcompiler.so ''; @@ -308,7 +311,7 @@ let name = "nvidia-l4t-multimedia"; # TODO: Replace the below with the builder from cuda-packages that works with multiple debs postUnpack = '' - dpkg-deb -x ${debs.t234.nvidia-l4t-multimedia-utils.src} source + dpkg-deb -x ${debs.${defaultSomRepo}.nvidia-l4t-multimedia-utils.src} source dpkg-deb -x ${debs.common.nvidia-l4t-jetson-multimedia-api.src} source ''; buildInputs = [ l4t-core l4t-cuda l4t-nvsci pango alsa-lib ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]); @@ -433,8 +436,8 @@ let nvidia-smi = buildFromDeb { name = "nvidia-smi"; - src = debs.t234.nvidia-l4t-nvml.src; - version = debs.t234.nvidia-l4t-nvml.version; + src = debs.${defaultSomRepo}.nvidia-l4t-nvml.src; + version = debs.${defaultSomRepo}.nvidia-l4t-nvml.version; buildInputs = [ l4t-core ]; # nvidia-smi will dlopen libnvidia-ml.so.1 appendRunpaths = [ "${placeholder "out"}/lib" ]; @@ -458,10 +461,12 @@ in l4t-nvsci l4t-pva l4t-tools - l4t-wayland - l4t-xusb-firmware; + l4t-wayland; } // lib.optionalAttrs (l4tAtLeast "36") { inherit l4t-dla-compiler - nvidia-smi; + nvidia-smi + ; +} // lib.optionalAttrs (l4tOlder "38") { + inherit l4t-xusb-firmware; # L4T 38+ uses upstream firmware } diff --git a/pkgs/samples/graphics-demos.nix b/pkgs/samples/graphics-demos.nix index 491840ce..76135b7a 100644 --- a/pkgs/samples/graphics-demos.nix +++ b/pkgs/samples/graphics-demos.nix @@ -9,14 +9,17 @@ , stdenv , wayland , xorg +, l4tAtLeast }: # TODO: Add wayland and x11 tests for graphics demos.... let inherit (xorg) libX11 libXau; + + repo = if l4tAtLeast "38" then "som" else "t234"; in stdenv.mkDerivation { pname = "graphics-demos"; - inherit (debs.t234.nvidia-l4t-graphics-demos) src version; + inherit (debs.${repo}.nvidia-l4t-graphics-demos) src version; unpackCmd = "dpkg -x $src source"; sourceRoot = "source/usr/src/nvidia/graphics_demos"; From c756acd3f0a38a89dc137bacbf3998582b7d86b7 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:19:11 -0700 Subject: [PATCH 11/27] optee: r38 updates ATF now uses secure partition manager and our OP-TEE no longer bundles nvluks. --- pkgs/optee/default.nix | 68 +++++++++++++++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 10 deletions(-) diff --git a/pkgs/optee/default.nix b/pkgs/optee/default.nix index b51cdd43..e93b9c71 100644 --- a/pkgs/optee/default.nix +++ b/pkgs/optee/default.nix @@ -108,6 +108,7 @@ let nvCccPrebuilt = { t194 = ""; t234 = "${nvopteeSrc}/optee/optee_os/prebuilt/t234/libcommon_crypto.a"; + t264 = "${nvopteeSrc}/optee/optee_os/prebuilt/t264/libcommon_crypto.a"; }.${socType}; makeFlags = [ @@ -115,13 +116,15 @@ let "CROSS_COMPILE64=${stdenv.cc.targetPrefix}" "PLATFORM=tegra" "PLATFORM_FLAVOR=${socType}" - "CFG_WITH_STMM_SP=y" "NV_CCC_PREBUILT=${nvCccPrebuilt}" "O=$(out)" "CFG_TEE_CORE_LOG_LEVEL=${toString coreLogLevel}" "CFG_TEE_TA_LOG_LEVEL=${toString taLogLevel}" ] - ++ (lib.optional (uefi-firmware != null) "CFG_STMM_PATH=${uefi-firmware}/standalonemm_optee.bin") + ++ (lib.optionals ((socType == "t194" || socType == "t234") && uefi-firmware != null) [ + "CFG_WITH_STMM_SP=y" + "CFG_STMM_PATH=${uefi-firmware}/standalonemm_optee.bin" + ]) ++ (lib.optional (taPublicKeyFile != null) "TA_PUBLIC_KEY=${taPublicKeyFile}") ++ extraMakeFlags; in @@ -240,29 +243,44 @@ let ''); buildArmTrustedFirmware = lib.makeOverridable ({ socType, ... }: + let + socSpecialization = gitRepos ? "tegra/optee-src/atf_${socType}"; + src = if socSpecialization then gitRepos."tegra/optee-src/atf_${socType}" else gitRepos."tegra/optee-src/atf"; + srcDir = if socSpecialization then "arm-trusted-firmware.${socType}" else "arm-trusted-firmware"; + in stdenv.mkDerivation { pname = "arm-trusted-firmware"; version = l4tMajorMinorPatchVersion; - src = atfSrc; + inherit src; makeFlags = [ - "-C arm-trusted-firmware" + "-C ${srcDir}" "BUILD_BASE=$(PWD)/build" "CROSS_COMPILE=${stdenv.cc.targetPrefix}" "DEBUG=0" "LOG_LEVEL=20" "PLAT=tegra" - "SPD=opteed" "TARGET_SOC=${socType}" "V=0" # binutils 2.39 regression # `warning: /build/source/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions` # See also: https://developer.trustedfirmware.org/T996 "LDFLAGS=-no-warn-rwx-segments" - ] ++ lib.optionals (l4tAtLeast "36" && socType == "t234") [ + ] ++ lib.optionals (socType == "t194" || socType == "t234") [ + "SPD=opteed" + ] ++ lib.optionals (socType == "t264") [ + "ARM_ARCH_MINOR=6" + "CTX_INCLUDE_EL2_REGS=1" + "SPD=spmd" + "SP_LAYOUT_FILE=${src}/${srcDir}/secure_partition/sp_layout.json" + ] ++ lib.optionals ((lib.versions.major l4tMajorMinorPatchVersion) == "36" && socType != "t194") [ "BRANCH_PROTECTION=3" "ARM_ARCH_MINOR=3" ]; + buildFlags = [ "all" ] ++ lib.optional (l4tAtLeast "38") "fiptool"; + + nativeBuildInputs = lib.optionals (l4tAtLeast "38") [ dtc openssl buildPackages.stdenv.cc ]; + enableParallelBuilding = true; installPhase = '' @@ -271,6 +289,13 @@ let mkdir -p $out cp ./build/tegra/${socType}/release/bl31.bin $out/bl31.bin + ${lib.optionalString socSpecialization '' + # From public sources, see instructions in nvidia-jetson-optee-source.tbz2 + dtc -I dts -O dtb -o nvidia-${socType}.dtb ${srcDir}/fdts/nvidia-${socType}.dts + ${srcDir}/tools/fiptool/fiptool create --soc-fw $out/bl31.bin --soc-fw-config nvidia-${socType}.dtb $out/bl31.fip + ''} + + runHook postInstall ''; @@ -288,13 +313,16 @@ let hwKeyAgent = buildHwKeyAgent args; opteeOS = buildOptee ({ - earlyTaPaths = [ + earlyTaPaths = lib.optionals (socType == "t194" || socType == "t234") [ "${nvLuksSrv}/b83d14a8-7128-49df-9624-35f14f65ca6c.stripped.elf" "${cpuBlPayloadDec}/0e35e2c9-b329-4ad9-a2f5-8ca9bbbd7713.stripped.elf" "${hwKeyAgent}/82154947-c1bc-4bdf-b89d-04f93c0ea97c.stripped.elf" ]; } // args); + teeRaw = "${opteeOS}/core/tee-raw.bin"; + dtb = "${opteeDTB}/tegra${lib.removePrefix "t" socType}-optee.dtb"; + image = buildPackages.runCommand "tos.img" { nativeBuildInputs = [ nukeReferences ]; @@ -303,16 +331,36 @@ let mkdir -p $out ${buildPackages.python3}/bin/python3 ${bspSrc}/nv_tegra/tos-scripts/gen_tos_part_img.py \ --monitor ${armTrustedFirmware}/bl31.bin \ - --os ${opteeOS}/core/tee-raw.bin \ - --dtb ${opteeDTB}/*.dtb \ + --os ${teeRaw} \ + --dtb ${dtb} \ --tostype optee \ $out/tos.img # Get rid of any string references to source(s) nuke-refs $out/* ''; + + imageSpTool = buildPackages.runCommand "tos.img" + { + nativeBuildInputs = [ nukeReferences ]; + passthru = { inherit nvLuksSrv hwKeyAgent; }; + } '' + # From public sources, see instructions in nvidia-jetson-optee-source.tbz2 + mkdir -p $out + ${lib.getExe buildPackages.python3} ${armTrustedFirmware.src}/arm-trusted-firmware.${socType}/tools/sptool/sptool.py \ + -i ${teeRaw}:${dtb} \ + -o $out/tos.img + + cp ${armTrustedFirmware}/bl31.fip $out/ + + nuke-refs $out/* + ''; in - image; + { + t194 = image; + t234 = image; + t264 = imageSpTool; + }.${socType}; in { inherit buildTOS buildOpteeTaDevKit opteeClient buildPkcs11Ta buildOpteeXtest; From c0de62121bd499546b193705376f7026aacfd8ef Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:22:40 -0700 Subject: [PATCH 12/27] flash-script: optee updates for r38 Copy bl31.fip --- device-pkgs/flash-script.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/device-pkgs/flash-script.nix b/device-pkgs/flash-script.nix index 9ead9f3d..675e9a8c 100644 --- a/device-pkgs/flash-script.nix +++ b/device-pkgs/flash-script.nix @@ -64,6 +64,9 @@ in ''} ${lib.optionalString (tosImage != null) '' cp ${tosImage}/tos.img bootloader/tos-optee_${socType}.img + if [ -e ${tosImage}/bl31.fip ]; then + cp ${tosImage}/bl31.fip bootloader/bl31_${socType}.fip + fi ''} ${lib.optionalString (eksFile != null) '' cp ${eksFile} bootloader/eks_${socType}.img From 4c7b536352d6235fa719b362e059ca5d197108e3 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:24:39 -0700 Subject: [PATCH 13/27] board-automation: Updates for r38 Now depends on pyusb and there are directories! Also add meta.mainProgram. --- pkgs/board-automation/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/board-automation/default.nix b/pkgs/board-automation/default.nix index 1999914a..1260e86c 100644 --- a/pkgs/board-automation/default.nix +++ b/pkgs/board-automation/default.nix @@ -2,6 +2,7 @@ , bspSrc , l4tMajorMinorPatchVersion , python3 # python3 is required for nvtopo.py +, python3Packages , makeWrapper }: @@ -13,7 +14,9 @@ stdenv.mkDerivation { nativeBuildInputs = [ makeWrapper ]; buildInputs = [ - python3 + (python3.buildEnv.override { + extraLibs = [ python3Packages.pyusb ]; + }) ]; dontConfigure = true; @@ -24,8 +27,10 @@ stdenv.mkDerivation { runHook preInstall mkdir -p $out/bin - cp tools/board_automation/* $out/bin + cp -r tools/board_automation/* $out/bin runHook postInstall ''; + + meta.mainProgram = "boardctl"; } From 9fa9a356a01dada4116068d46c2b39702db5d19d Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 16:43:56 -0700 Subject: [PATCH 14/27] cuda-packages: vpi-firmware updates for r38 --- pkgs/cuda-packages/vpi-firmware.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/cuda-packages/vpi-firmware.nix b/pkgs/cuda-packages/vpi-firmware.nix index 724c4184..321545f6 100644 --- a/pkgs/cuda-packages/vpi-firmware.nix +++ b/pkgs/cuda-packages/vpi-firmware.nix @@ -10,6 +10,7 @@ let majorVersion = { "35" = "2"; "36" = "3"; + "38" = "4"; }.${lib.versions.major l4tMajorMinorPatchVersion}; in runCommand "vpi${majorVersion}-firmware" { nativeBuildInputs = [ dpkg ]; } '' From 4759a97b79fc816045ee2e34d355047b348c38cc Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 15:07:22 -0700 Subject: [PATCH 15/27] jetson-udev-rules updates for r38 --- modules/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/default.nix b/modules/default.nix index 8780054a..0b1affca 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -439,7 +439,12 @@ in install -D -t $out/etc/udev/rules.d ${pkgs.nvidia-jetpack.l4t-init}/etc/udev/rules.d/99-tegra-devices.rules sed -i \ -e '/camera_device_detect/d' \ - -e 's#/bin/mknod#${pkgs.coreutils}/bin/mknod#' \ + -e 's#/bin/mknod#${lib.getExe' pkgs.coreutils "mknod"}#' \ + -e 's#/bin/rm#${lib.getExe' pkgs.coreutils "rm"}#' \ + -e 's#/bin/cut#${lib.getExe' pkgs.coreutils "cut"}#' \ + -e 's#/bin/grep#${lib.getExe pkgs.gnugrep}#' \ + -e 's#/bin/bash /etc/systemd/nvpower.sh#${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/systemd/nvpower.sh#' \ + -e 's#/bin/bash#${lib.getExe pkgs.bash}#' \ $out/etc/udev/rules.d/99-tegra-devices.rules '') ]; From 13a5819789afb8a5511223ed83d0535a61155c50 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Mon, 29 Sep 2025 17:33:51 -0700 Subject: [PATCH 16/27] module: Initial thor support Add NixOS module support for thor-agx-devkit. --- flake.nix | 1 + modules/default.nix | 25 +++++++++++++++++++++++-- modules/devices.nix | 6 ++++++ modules/flash-script.nix | 7 ++++++- overlay-with-config.nix | 2 ++ pkgs/ota-utils/ota_helpers.sh | 8 ++++++++ 6 files changed, 46 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 7cd6eff7..07efaee0 100644 --- a/flake.nix +++ b/flake.nix @@ -79,6 +79,7 @@ { som = "orin-nano"; carrierBoard = "devkit"; majorVersion = "5"; } { som = "orin-nx"; carrierBoard = "devkit"; super = true; majorVersion = "5"; } { som = "orin-nano"; carrierBoard = "devkit"; super = true; majorVersion = "5"; } + { som = "thor-agx"; carrierBoard = "devkit"; } { som = "xavier-agx"; carrierBoard = "devkit"; } { som = "xavier-agx-industrial"; carrierBoard = "devkit"; } # TODO: Entirely untested { som = "xavier-nx"; carrierBoard = "devkit"; } diff --git a/modules/default.nix b/modules/default.nix index 0b1affca..3fae1020 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -16,7 +16,7 @@ let cfg = config.hardware.nvidia-jetpack; - jetpackVersions = [ "5" "6" ]; + jetpackVersions = [ "5" "6" "7" ]; teeApplications = pkgs.symlinkJoin { name = "tee-applications"; @@ -57,7 +57,7 @@ in enable = mkEnableOption "NVIDIA Jetson device support"; majorVersion = mkOption { - default = if cfg.som == "generic" || lib.hasPrefix "orin" cfg.som then "6" else "5"; + default = if lib.hasPrefix "thor" cfg.som then "7" else if cfg.som == "generic" || lib.hasPrefix "orin" cfg.som then "6" else "5"; type = types.enum jetpackVersions; description = "Jetpack major version to use"; }; @@ -100,6 +100,7 @@ in "orin-agx-industrial" "orin-nx" "orin-nano" + "thor-agx" "xavier-agx" "xavier-agx-industrial" "xavier-nx" @@ -196,6 +197,7 @@ in } (validSomsAssertion "5" [ "xavier" "orin" ]) (validSomsAssertion "6" [ "orin" ]) + (validSomsAssertion "7" [ "thor" ]) ] ( let @@ -298,6 +300,25 @@ in # Ethernet for AGX "nvpps" "nvethernet" + ] ++ lib.optionals (pkgs.nvidia-jetpack.l4tAtLeast "38") [ + "pwm-fan" + "uas" + "r8152" + "phy-tegra194-p2u" + "nvme-core" + "tegra-bpmp-thermal" + "pwm-tegra" + "tegra_vblk" + "tegra_hv_vblk_oops" + "ufs-tegra" + "nvpps" + "pcie-tegra264" + "nvethernet" + "r8126" + "r8168" + "tegra_vnet" + "rtl8852ce" + "oak_pci" ]; # See upstream default for this option, removes any modules that aren't enabled in JetPack kernel diff --git a/modules/devices.nix b/modules/devices.nix index f2f2c804..67ffabde 100644 --- a/modules/devices.nix +++ b/modules/devices.nix @@ -15,6 +15,7 @@ let orin-agx-industrial = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_p3701_0008.conf"; orin-nx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_p3767_0000${lib.optionalString cfg.super "_super"}.conf"; orin-nano = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_p3767_0003${lib.optionalString cfg.super "_super"}.conf"; + thor-agx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_p3834_0008.conf"; xavier-agx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194.conf"; xavier-agx-industrial = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194_agxi.conf"; xavier-nx = "${pkgs.nvidia-jetpack.l4t-nvpmodel}/etc/nvpmodel/nvpmodel_t194_p3668.conf"; @@ -26,6 +27,7 @@ let orin-agx-industrial = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3701_0008.conf"; orin-nx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3767_0000.conf"; orin-nano = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3767_0000.conf"; + thor-agx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3834_0008_p4071_0000.conf"; xavier-agx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p2888.conf"; xavier-agx-industrial = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p2888.conf"; xavier-nx = "${pkgs.nvidia-jetpack.l4t-nvfancontrol}/etc/nvpower/nvfancontrol/nvfancontrol_p3668.conf"; @@ -120,6 +122,10 @@ in partitionTemplate = mkDefault "${pkgs.nvidia-jetpack.bspSrc}/bootloader/${partitionTemplateDirectory}/cfg/flash_t234_qspi.xml"; }) + (mkIf (cfg.som == "thor-agx") { + targetBoard = mkDefault "jetson-agx-thor-devkit"; + }) + (mkIf (cfg.som == "xavier-agx") { targetBoard = mkDefault "jetson-agx-xavier-devkit"; # Remove unnecessary partitions to make it more like diff --git a/modules/flash-script.nix b/modules/flash-script.nix index b19021c2..c86b1af7 100644 --- a/modules/flash-script.nix +++ b/modules/flash-script.nix @@ -407,7 +407,8 @@ in }; partitionTemplate = mkOption { - type = types.path; + type = types.nullOr types.path; + default = null; description = ".xml file describing partition template to use when flashing"; }; @@ -527,6 +528,10 @@ in { boardid = "3668"; boardsku = "0003"; fab = "301"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = "2"; } ]; + thor-agx = [ + { boardid = "3834"; boardsku = "0008"; fab = "000"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = ""; chipsku = "00:00:00:A0"; } # Thor AGX Devkit + ]; + orin-agx = [ { boardid = "3701"; boardsku = "0000"; fab = "300"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = ""; chipsku = "00:00:00:D0"; } { boardid = "3701"; boardsku = "0004"; fab = "300"; boardrev = ""; fuselevel = "fuselevel_production"; chiprev = ""; chipsku = "00:00:00:D2"; } # 32GB diff --git a/overlay-with-config.nix b/overlay-with-config.nix index 0a1fdb86..6617b328 100644 --- a/overlay-with-config.nix +++ b/overlay-with-config.nix @@ -25,12 +25,14 @@ final: prev: ( nvidia-jetpack = prev.nvidia-jetpack.overrideScope (finalJetpack: prevJetpack: { socType = if cfg.som == null then null + else if lib.hasPrefix "thor-" cfg.som then "t264" else if lib.hasPrefix "orin-" cfg.som then "t234" else if lib.hasPrefix "xavier-" cfg.som then "t194" else throw "Unknown SoC type"; chipId = if cfg.som == null then null + else if lib.hasPrefix "thor-" cfg.som then "0x26" else if lib.hasPrefix "orin-" cfg.som then "0x23" else if lib.hasPrefix "xavier-" cfg.som then "0x19" else throw "Unknown SoC type"; diff --git a/pkgs/ota-utils/ota_helpers.sh b/pkgs/ota-utils/ota_helpers.sh index 959adffb..3a1de23a 100644 --- a/pkgs/ota-utils/ota_helpers.sh +++ b/pkgs/ota-utils/ota_helpers.sh @@ -69,6 +69,14 @@ generate_compat_spec() { chiprev="" ;; + # Thor AGX + 3834) + fab="" + boardsku="" + boardrev="" + chiprev="" + ;; + *) echo "Unknown boardid: ${boardid}" exit 1 From 6475496d15df58aa22f667de8d0e85a6ea4ac0a4 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 14:16:42 -0700 Subject: [PATCH 17/27] Move console args to common (internal) nixos option On Thor, the console arguments are different from Xavier and Orin. --- device-pkgs/initrdflash-script.nix | 5 ++--- modules/default.nix | 27 ++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/device-pkgs/initrdflash-script.nix b/device-pkgs/initrdflash-script.nix index 017b2736..31b5416f 100644 --- a/device-pkgs/initrdflash-script.nix +++ b/device-pkgs/initrdflash-script.nix @@ -87,10 +87,9 @@ let rcmScript = mkRcmBootScript { kernelPath = "${config.system.build.kernel}/${config.system.boot.loader.kernelFile}"; initrdPath = "${flashInitrd}/initrd"; - kernelCmdline = lib.concatStringsSep " " [ - "console=ttyTCU0,115200" + kernelCmdline = lib.concatStringsSep " " ([ "sdhci_tegra.en_boot_part_access=1" - ]; + ] ++ cfg.console.args); # During the initrd flash script, we upload two edk2 builds to the # board, one that is only used temporarily to boot into our # kernel/initrd to perform the flashing, and another one that is diff --git a/modules/default.nix b/modules/default.nix index 3fae1020..50e5a4b9 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -171,6 +171,11 @@ in type = types.bool; description = "Enable boot.kernelParams default console configuration"; }; + + console.args = mkOption { + internal = true; + type = types.listOf types.str; + }; }; }; @@ -270,6 +275,18 @@ in lib.optionals (isXavier || isGeneric) [ "7.2" ] ++ lib.optionals (isOrin || isGeneric) [ "8.7" ]; }); + hardware.nvidia-jetpack.console.args = lib.mkMerge [ + (lib.optionals (checkValidSoms [ "xavier" "orin" ]) [ + "console=tty0" # Output to HDMI/DP. May need fbcon=map:0 as well + "console=ttyTCU0,115200" # Provides console on "Tegra Combined UART" (TCU) + ]) + (lib.optionals (checkValidSoms [ "thor" ]) [ + "console=tty0" + "console=ttyUTC0,115200" + "earlycon=tegra_utc,mmio32,0xc5a0000" + ]) + ]; + boot.kernelPackages = (if cfg.kernel.realtime then pkgs.nvidia-jetpack.rtkernelPackages @@ -280,11 +297,11 @@ in # Needed on Orin at least, but upstream has it for both "nvidia.rm_firmware_active=all" ] - ++ lib.optionals cfg.console.enable [ - "console=tty0" # Output to HDMI/DP. May need fbcon=map:0 as well - "console=ttyTCU0,115200" # Provides console on "Tegra Combined UART" (TCU) - ] - ++ lib.optional (lib.hasPrefix "xavier-" cfg.som || cfg.som == "generic") "video=efifb:off"; # Disable efifb driver, which crashes Xavier NX and possibly AGX + ++ lib.optionals cfg.console.enable cfg.console.args + ++ lib.optional (lib.hasPrefix "xavier-" cfg.som || cfg.som == "generic") "video=efifb:off" # Disable efifb driver, which crashes Xavier NX and possibly AGX + ++ lib.optionals (pkgs.nvidia-jetpack.l4tAtLeast "38") [ + "clk_ignore_unused" + ]; boot.initrd.includeDefaultModules = false; # Avoid a bunch of modules we may not get from tegra_defconfig boot.initrd.availableKernelModules = [ "xhci-tegra" "ucsi_ccg" "typec_ucsi" "typec" ] # Make sure USB firmware makes it into initrd From 2397d9dfb530f37c53823395796b10c958a8c900 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 15:04:59 -0700 Subject: [PATCH 18/27] Add thor firmware --- modules/default.nix | 3 ++- modules/devices.nix | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/default.nix b/modules/default.nix index 50e5a4b9..e247e8ca 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -375,8 +375,9 @@ in hardware.firmware = with pkgs.nvidia-jetpack; [ l4t-firmware - l4t-xusb-firmware # usb firmware also present in linux-firmware package, but that package is huge and has much more than needed cudaPackages.vpi-firmware # Optional, but needed for pva_auth_allowlist firmware file used by VPI2 + ] ++ lib.optionals (l4tOlder "36") [ + l4t-xusb-firmware # usb firmware also present in linux-firmware package, but that package is huge and has much more than needed ]; hardware.deviceTree.enable = true; diff --git a/modules/devices.nix b/modules/devices.nix index 67ffabde..e6bc12f2 100644 --- a/modules/devices.nix +++ b/modules/devices.nix @@ -210,5 +210,21 @@ in "rtw88/rtw8822c_wow_fw.bin" ]) ]; + }) + (lib.mkIf (cfg.som == "thor-agx") { + hardware.firmware = [ + (extractLinuxFirmware "xusb-firmware" [ "nvidia/tegra186/xusb.bin" ]) + ] ++ lib.optionals + (config.hardware.bluetooth.enable + || config.networking.wireless.enable + || config.networking.wireless.iwd.enable) [ + "rtl_nic/rtl8153a-2.fw" + "rtl_nic/rtl8153a-3.fw" + "rtl_nic/rtl8153a-4.fw" + "rtl_nic/rtl8153b-2.fw" + "rtl_nic/rtl8153c-1.fw" + "rtl_nic/rtl8156a-2.fw" + "rtl_nic/rtl8156b-2.fw" + ]; })]); } From 8db90acdb61c77a1350c7b5f47d09cfa750eeb98 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 16:35:49 -0700 Subject: [PATCH 19/27] initrdflash-script updates for Thor --- device-pkgs/default.nix | 3 +++ device-pkgs/initrdflash-script.nix | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/device-pkgs/default.nix b/device-pkgs/default.nix index a21c1247..31eefa95 100644 --- a/device-pkgs/default.nix +++ b/device-pkgs/default.nix @@ -29,6 +29,8 @@ let l4tMajorMinorPatchVersion ; + jetpackAtLeast = lib.versionAtLeast cfg.majorVersion; + # This produces a script where we have already called the ./flash.sh script # with `--no-flash` and produced a file under bootloader/flashcmd.txt. # This requires setting various BOARD* environment variables to the exact @@ -84,6 +86,7 @@ let flashArgs = [ "--rcm-boot" ] + ++ lib.optional (jetpackAtLeast "7") "-r" # A little jank, but don't have the flash script itself actually flash, just produce the flashcmd.txt file # We need to sign the boot.img file afterwards in this script ++ lib.optional (cfg.firmware.secureBoot.pkcFile != null) "--no-flash" diff --git a/device-pkgs/initrdflash-script.nix b/device-pkgs/initrdflash-script.nix index 31b5416f..9e0e71f9 100644 --- a/device-pkgs/initrdflash-script.nix +++ b/device-pkgs/initrdflash-script.nix @@ -18,6 +18,12 @@ let forceXusbPeripheralDts = let overridePaths = { + "38" = { + thor = { + xudcPadctlPath = "bus@0/padctl@a808680000"; + xudcPath = "bus@0/usb@a808670000"; + }; + }; "36" = { orin = { xudcPadctlPath = "bus@0/padctl@3520000"; From 596231fcf1ab48e1dbb6bffd1384ec676552f1fc Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 16:30:07 -0700 Subject: [PATCH 20/27] Make initrdFlashScript the default for JetPack 7 --- device-pkgs/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/device-pkgs/default.nix b/device-pkgs/default.nix index 31eefa95..a2f82af0 100644 --- a/device-pkgs/default.nix +++ b/device-pkgs/default.nix @@ -30,6 +30,7 @@ let ; jetpackAtLeast = lib.versionAtLeast cfg.majorVersion; + jetpackOlder = lib.versionOlder cfg.majorVersion; # This produces a script where we have already called the ./flash.sh script # with `--no-flash` and produced a file under bootloader/flashcmd.txt. @@ -146,4 +147,4 @@ let meta.platforms = [ "x86_64-linux" ]; }; in -{ inherit flashScript initrdFlashScript fuseScript rcmBoot; } +{ inherit initrdFlashScript fuseScript rcmBoot; flashScript = initrdFlashScript; } // lib.optionalAttrs (jetpackOlder "7") { inherit flashScript; } From c508b356951bf2e546e3607b8f1bc5ad45751082 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 13:52:01 -0700 Subject: [PATCH 21/27] README: Update for JetPack 7 --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 59f134ad..342d07d4 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,16 @@ This repository packages components from NVIDIA's [JetPack SDK](https://develope - Graphics: Wayland, GBM, EGL, Vulkan - Power/fan control: nvpmodel, nvfancontrol -This package supports JetPack 5 and 6. It works with NVIDIA's developer kits supported by these versions only: - -| Device | JetPack 5 | JetPack 6 | -| ------------------ | --------- | --------- | -| Jetson Orin AGX | ✓ | ✓ | -| Jetson Orin NX | ✓ | ✓ | -| Jetson Orin Nano | ✓ | ✓ | -| Jetson Xavier AGX | ✓ | | -| Jetson Xavier NX | ✓ | | +This package supports JetPack 5, 6, and 7. It works with NVIDIA's developer kits supported by these versions only: + +| Device | JetPack 5 | JetPack 6 | JetPack 7 | +| ------------------ | --------- | --------- | --------- | +| Jetson Thor AGX | | | ✓ | +| Jetson Orin AGX | ✓ | ✓ | | +| Jetson Orin NX | ✓ | ✓ | | +| Jetson Orin Nano | ✓ | ✓ | | +| Jetson Xavier AGX | ✓ | | | +| Jetson Xavier NX | ✓ | | | The Jetson Nano, TX2, and TX1 devices are _not_ supported, since support for them was dropped upstream in JetPack 5. From 7722bb7149ebb144b492aabb25316b889edb5c01 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 7 Oct 2025 16:53:32 -0700 Subject: [PATCH 22/27] Add jetpack 7 iso installers --- flake.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/flake.nix b/flake.nix index 07efaee0..c8f4c95b 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,9 @@ jetpack5_config = { hardware.nvidia-jetpack.majorVersion = "5"; }; + jetpack7_config = { + hardware.nvidia-jetpack.majorVersion = "7"; + }; in { nixosConfigurations = { @@ -53,6 +56,12 @@ installer_minimal_cross_jp5 = nixpkgs.lib.nixosSystem { modules = [ aarch64_cross_config installer_minimal_config jetpack5_config ]; }; + installer_minimal_jp7 = nixpkgs.lib.nixosSystem { + modules = [ aarch64_config installer_minimal_config jetpack7_config ]; + }; + installer_minimal_cross_jp7 = nixpkgs.lib.nixosSystem { + modules = [ aarch64_cross_config installer_minimal_config jetpack7_config ]; + }; }; nixosModules.default = import ./modules/default.nix; @@ -106,6 +115,7 @@ { iso_minimal = self.nixosConfigurations.installer_minimal_cross.config.system.build.isoImage; iso_minimal_jp5 = self.nixosConfigurations.installer_minimal_cross_jp5.config.system.build.isoImage; + iso_minimal_jp7 = self.nixosConfigurations.installer_minimal_cross_jp7.config.system.build.isoImage; inherit (self.legacyPackages.x86_64-linux) board-automation python-jetson; @@ -120,6 +130,7 @@ aarch64-linux = { iso_minimal = self.nixosConfigurations.installer_minimal.config.system.build.isoImage; iso_minimal_jp5 = self.nixosConfigurations.installer_minimal_jp5.config.system.build.isoImage; + iso_minimal_jp7 = self.nixosConfigurations.installer_minimal_jp7.config.system.build.isoImage; }; }; From 2a6484eae26f420660259d1882bf7c83881efd3f Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Fri, 10 Oct 2025 20:11:04 -0700 Subject: [PATCH 23/27] Allow NixOS systems to be built without CUDA configured --- modules/default.nix | 3 ++- pkgs/l4t/default.nix | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/default.nix b/modules/default.nix index e247e8ca..681c98f3 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -375,6 +375,7 @@ in hardware.firmware = with pkgs.nvidia-jetpack; [ l4t-firmware + ] ++ lib.optionals pkgs.config.cudaSupport [ cudaPackages.vpi-firmware # Optional, but needed for pva_auth_allowlist firmware file used by VPI2 ] ++ lib.optionals (l4tOlder "36") [ l4t-xusb-firmware # usb firmware also present in linux-firmware package, but that package is huge and has much more than needed @@ -546,7 +547,7 @@ in ''; in { - enable = true; + enable = cfg.configureCuda; description = "Create a symlink for libEGL_nvidia.so.0 at /usr/lib/aarch64-linux-gnu/tegra-egl/"; unitConfig = { ConditionPathExists = "!/usr/lib/aarch64-linux-gnu/tegra-egl/libEGL_nvidia.so.0"; diff --git a/pkgs/l4t/default.nix b/pkgs/l4t/default.nix index 0d5073f0..35cbbcda 100644 --- a/pkgs/l4t/default.nix +++ b/pkgs/l4t/default.nix @@ -1,6 +1,7 @@ { stdenv , stdenvNoCC , buildPackages +, config , lib , fetchurl , fetchpatch @@ -54,7 +55,8 @@ let # CMake, we need to add the hook (`markForCudatoolkitRootHook`) which allows them to be discovered by our # tooling. nativeBuildInputs = - [ cudaPackages.markForCudatoolkitRootHook dpkg ] + [ dpkg ] + ++ lib.optional config.cudaSupport cudaPackages.markForCudatoolkitRootHook ++ lib.optional autoPatchelf autoPatchelfHook ++ nativeBuildInputs; From 536a166e195aaace6078e0f3617f398dcbc67e34 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 14 Oct 2025 13:02:43 -0700 Subject: [PATCH 24/27] l4t: r38: Add l4t-bootloader-utils nvbootctl has moved to l4t-bootloader-utils. --- modules/default.nix | 3 ++- pkgs/l4t/default.nix | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/default.nix b/modules/default.nix index 681c98f3..f98da178 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -600,7 +600,8 @@ in otaUtils # Tools for UEFI capsule updates ] ++ lib.optional cfg.firmware.optee.xtest pkgs.nvidia-jetpack.opteeXtest # Tool to view GPU utilization. - ++ lib.optional (l4tAtLeast "36") nvidia-smi; + ++ lib.optionals (l4tAtLeast "36") [ nvidia-smi ] + ++ lib.optionals (l4tAtLeast "38") [ l4t-bootloader-utils ]; # Used by libEGL_nvidia.so.0 environment.etc."egl/egl_external_platform.d".source = diff --git a/pkgs/l4t/default.nix b/pkgs/l4t/default.nix index 35cbbcda..bf7dd95b 100644 --- a/pkgs/l4t/default.nix +++ b/pkgs/l4t/default.nix @@ -422,6 +422,18 @@ let ''; }; + l4t-bootloader-utils = buildFromDeb { + name = "nvidia-l4t-bootloader-utils"; + buildInputs = [ stdenv.cc.cc.lib l4t-core ]; + postPatch = '' + # Remove NVIDIA utilities for which we have a NixOS specific implementation + rm -f bin/nv_bootloader_capsule_updater.sh bin/nv_bootloader_payload_updater + + # Remove fwupd and systemd stuff + rm -rf etc + ''; + }; + l4t-wayland = buildFromDeb { name = "nvidia-l4t-wayland"; buildInputs = [ wayland ]; @@ -471,4 +483,6 @@ in ; } // lib.optionalAttrs (l4tOlder "38") { inherit l4t-xusb-firmware; # L4T 38+ uses upstream firmware +} // lib.optionalAttrs (l4tAtLeast "38") { + inherit l4t-bootloader-utils; } From 3f7f915bde7ec44f08ea09760e9251fe31f60567 Mon Sep 17 00:00:00 2001 From: Elliot Berman Date: Tue, 21 Oct 2025 13:35:29 -0700 Subject: [PATCH 25/27] Disable CUDA until 25.11 --- modules/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/default.nix b/modules/default.nix index f98da178..f3c4258c 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -712,5 +712,14 @@ in ); }; }) + (lib.mkIf (lib.hasPrefix "thor" cfg.som) { + assertions = [ + { + assertion = !(config.hardware.nvidia-jetpack.configureCuda || pkgs.config.cudaSupport); + message = "CUDA 13 support is not available in NixOS 25.05. Please disable CUDA."; + } + ]; + hardware.nvidia-jetpack.configureCuda = lib.mkForce false; + }) ]); } From dd1ce44f0f124e4d3feb36943a0323ecd8fd3b3d Mon Sep 17 00:00:00 2001 From: Josh Hoffer Date: Fri, 24 Oct 2025 10:57:22 -0700 Subject: [PATCH 26/27] Fix arm-trusted-firmware cross-compile --- pkgs/optee/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/optee/default.nix b/pkgs/optee/default.nix index e93b9c71..e6f24033 100644 --- a/pkgs/optee/default.nix +++ b/pkgs/optee/default.nix @@ -17,7 +17,6 @@ }: let - atfSrc = gitRepos."tegra/optee-src/atf"; nvopteeSrc = gitRepos."tegra/optee-src/nv-optee"; opteeClient = stdenv.mkDerivation { @@ -281,6 +280,11 @@ let nativeBuildInputs = lib.optionals (l4tAtLeast "38") [ dtc openssl buildPackages.stdenv.cc ]; + # buildPackages.openssl needed to build `fiptool` + buildInputs = [ buildPackages.openssl ]; + + strictDeps = true; + enableParallelBuilding = true; installPhase = '' From 80b57c0d89a61145572fdda1664753fe976f5481 Mon Sep 17 00:00:00 2001 From: Josh Hoffer Date: Fri, 24 Oct 2025 11:01:24 -0700 Subject: [PATCH 27/27] Fix format --- pkgs/l4t/default.nix | 2 +- pkgs/ota-utils/ota-check-firmware.sh | 40 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/pkgs/l4t/default.nix b/pkgs/l4t/default.nix index bf7dd95b..4cadb148 100644 --- a/pkgs/l4t/default.nix +++ b/pkgs/l4t/default.nix @@ -33,7 +33,7 @@ let # the future, so we should consider choosing the right package set based # on the SoC. defaultSomRepo = if l4tAtLeast "38" then "som" else "t234"; - + # Wrapper around mkDerivation that has some sensible defaults to extract a .deb file from the L4T BSP pacckage buildFromDeb = { name diff --git a/pkgs/ota-utils/ota-check-firmware.sh b/pkgs/ota-utils/ota-check-firmware.sh index dfc18aaf..820e2612 100644 --- a/pkgs/ota-utils/ota-check-firmware.sh +++ b/pkgs/ota-utils/ota-check-firmware.sh @@ -117,25 +117,25 @@ show_help() { brief= -while getopts ":hb" opt ; do +while getopts ":hb" opt; do case $opt in - h) - show_help - exit 0 - ;; - b) - brief=1 - ;; - ?) - echo "Error: invalid option -$OPTARG" >&2 - show_help "$@" >&2 - exit 2\ - ;; - *) - echo "Unknown error" >&2 - show_help "$@" >&2 - exit 2 - ;; + h) + show_help + exit 0 + ;; + b) + brief=1 + ;; + ?) + echo "Error: invalid option -$OPTARG" >&2 + show_help "$@" >&2 + exit 2 + ;; + *) + echo "Unknown error" >&2 + show_help "$@" >&2 + exit 2 + ;; esac done @@ -149,7 +149,7 @@ fi echo "Current firmware version is : ${CURRENT_FW_VER}" echo "Expected firmware version is: ${EXPECTED_FW_VER}" -if [ -z "$brief" ] ; then +if [ -z "$brief" ]; then # Capsule update is pending if TEGRA_BL.Cap exists and # OsIndications bit 4 is set (EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED) if ! mountpoint -q @efiSysMountPoint@; then @@ -171,7 +171,7 @@ if [ -z "$brief" ] ; then # Xavier AGX clears BootChainFwStatus upon reboot since it doesn't have runtime writable UEFI variables. # get_efi_int will give us the to-be-written value, which is functionally an empty string. # This isn't interesting or useful, so always grab the cached value in /var/run/tegra-bootchainfwstatus - if [[ ( ! -e /var/run/tegra-bootchainfwstatus ) || ( -e /sys/firmware/efi/efivars/BootChainFwStatus-781e084c-a330-417c-b678-38e696380cb9 && -z "$noRuntimeUefiWrites" ) ]]; then + if [[ (! -e /var/run/tegra-bootchainfwstatus) || (-e /sys/firmware/efi/efivars/BootChainFwStatus-781e084c-a330-417c-b678-38e696380cb9 && -z "$noRuntimeUefiWrites") ]]; then echo "BootChainFwStatus : $(lookup "$(get_efi_int BootChainFwStatus-781e084c-a330-417c-b678-38e696380cb9)" bootchainstatus)" else echo "BootChainFwStatus : $(lookup "$(cat /var/run/tegra-bootchainfwstatus)" bootchainstatus)"