Giter Site home page Giter Site logo

jetpack-nixos's Introduction

NixOS module for NVIDIA Jetson devices

This repository packages components from NVIDIA's Jetpack SDK for use with NixOS, including:

  • Platform firmware flashing scripts
  • A 5.10 Linux kernel from NVIDIA, which includes some open-source drivers like nvgpu
  • An EDK2-based UEFI firmware
  • ARM Trusted Firmware / OP-TEE
  • Additional packages for:
    • GPU computing: CUDA, CuDNN, TensorRT
    • Multimedia: hardware accelerated encoding/decoding with V4L2 and gstreamer plugins
    • Graphics: Wayland, GBM, EGL, Vulkan
    • Power/fan control: nvpmodel, nvfancontrol

This package is based on the Jetpack 5 release, and will only work with devices supported by Jetpack 5.1:

  • Jetson Orin AGX
  • Jetson Orin NX
  • 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. In the future, when the Orin Nano is released, it should be possible to make it work as well.

Getting started

Flashing UEFI firmware

This step may be optional if your device already has recent-enough firmware which includes UEFI. (Post-Jetpack 5. Only newly shipped Orin devices might have this) If you are unsure, I'd recommend flashing the firmware anyway.

Plug in your Jetson device, press the "power" button" and ensure the power light turns on. Then, to enter recovery mode, hold the "recovery" button down while pressing the "reset" button. Connect via USB and verify the device is in recovery mode.

$ lsusb | grep -i NVIDIA
Bus 003 Device 013: ID 0955:7023 NVIDIA Corp. APX

On an x86_64 machine (some of NVIDIA's precompiled components like tegrarcm_v2 are only built for x86_64), build and run (as root) the flashing script which corresponds to your device (making sure to replace xavier-agx with the name of your device, use nix flake show to see options):

$ nix build github:anduril/jetpack-nixos#flash-xavier-agx-devkit
$ sudo ./result/bin/flash-xavier-agx-devkit

At this point, your device should have a working UEFI firmware accessible either a monitor/keyboard, or via UART.

Installation ISO

Now, build and write the customized installer ISO to a USB drive:

$ nix build github:anduril/jetpack-nixos#iso_minimal
$ sudo dd if=./result/iso/nixos-22.11pre-git-aarch64-linux.iso of=/dev/sdX bs=1M oflag=sync status=progress

(Replace /dev/sdX with the correct path for your USB drive)

As an alternative, you could also try the generic ARM64 multiplatform ISO from NixOS. See https://nixos.wiki/wiki/NixOS_on_ARM/UEFI (Last I tried, this worked on Xavier AGX but not Orin AGX. We should do additional testing to see exactly what is working or not with the vendor kernel vs. mainline kernel)

Installing NixOS

Insert the USB drive into the Jetson device. On the AGX devkits, I've had the best luck plugging into the USB-C slot above the power barrel jack. You may need to try a few USB options until you find one that works with both the UEFI firmware and the Linux kernel.

Press power / reset as needed. When prompted, press ESC to enter the UEFI firmware menu. In the "Boot Manager", select the correct USB device and boot directly into it.

Follow the NixOS manual for installation instructions, using the instructions specific to UEFI devices. Include the following in your configuration.nix (or the equivalent in your flake.nix) before installing:

{
  imports = [
    (builtins.fetchTarball "https://github.com/anduril/jetpack-nixos/archive/master.tar.gz" + "/modules/default.nix")
  ];

  hardware.nvidia-jetpack.enable = true;
  hardware.nvidia-jetpack.som = "xavier-agx"; # Other options include orin-agx, xavier-nx, and xavier-nx-emmc
  hardware.nvidia-jetpack.carrierBoard = "devkit";
}

The Xavier AGX contains some critical firmware paritions on the eMMC. If you are installing NixOS to the eMMC, be sure to not remove these partitions! You can remove and replace the "UDA" partition if you want to install NixOS to the eMMC. Better yet, install to an SSD.

After installing, reboot and pray!

Xavier AGX note:

On all recent Jetson devices besides the Xavier AGX, the firmware stores the UEFI variables on a flash chip on the QSPI bus. However, the Xavier AGX stores it on a uefi_variables partition on the eMMC. This means that it cannot support runtime UEFI variables, since the UEFI runtime drivers to access the eMMC would conflict with the Linux kernel's drivers for the eMMC. Concretely, that means that you cannot modify the EFI variables from Linux, so UEFI bootloaders will not be able to create an EFI boot entry and reorder the boot options. You may need to enter the firmware menu and reorder it manually so NixOS will boot first. (See this issue)

Graphical Output

As of 2023-12-09, the status of graphical output on Jetsons is described below. If you have problems with configurations that are expected to work, try different ports (HDMI/DP/USB-C), different cables, and rebooting with the cables initially connected or disconnected.

Linux Console

On Orin AGX/NX/Nano, the Linux console does not seem to work at all on the HDMI/DisplayPort. This may be an upstream limitation (not jetpack-nixos specific).

On Xavier AGX and Xavier NX, add boot.kernelParams = [ "fbcon=map:<n>" ], replacing <n> with the an integer according to the following:

Xavier AGX devkit:

  • 0 for front USB-C port (recovery port)
  • 1 for rear USB-C port (above power barrel jack)
  • 2 for rear HDMI port

Xavier NX devkit:

  • 0 for DisplayPort
  • 1 for HDMI

Given the unreliability of graphical console output on Jetson devices, I recommend using the serial port as the go-to for troubleshooting.

X11

Set hardware.nvidia-jetpack.modesetting.enable = false;. This is currently the default, but the default may change in the future. LightDM+i3 and LightDM+Gnome have been tested working. (Remember to add the user to the "video" group) GDM apparently does not currently work.

Wayland

Set hardware.nvidia-jetpack.modesetting.enable = true; Weston and sway have been tested working on Orin devices, but do not work on Xavier devices.

Updating firmware from device

Recent versions of Jetpack (>=5.1) support updating the device firmware from the device using the UEFI Capsule update mechanism. This can be done as a more convenient alternative to physically attaching to the device and re-running the flash script. These updates can be performed automatically after a nixos-rebuild switch if the hardware.nvidia-jetpack.bootloader.autoUpdate setting is set to true. Otherwise, the instructions to apply the update manually are below.

To determine if the currently running firmware matches the software, run, ota-check-firmware:

$ ota-check-firmware
Current firmware version is: 35.2.1
Current software version is: 35.2.1

If these versions do not match, you can update your firmware using the UEFI Capsule update mechanism. The procedure to do so is below:

To build a capsule update file, build the config.system.build.uefiCapsuleUpdate attribute from your NixOS build. For the standard devkit configurations supported in this repository, one could also run (for example), nix build .#uefi-capsule-update-xavier-nx-emmc-devkit. This will produce a file that you can scp (no need for nix copy) to the device to update.

Once the file is on the device, run:

$ sudo ota-apply-capsule-update example.Cap
$ sudo reboot

(Assuming example.Cap is the file you copied to the device.) While the device is rebooting, do not disconnect power. You should be able to see a progress bar while the update is being applied. The capsule update works by updating the non-current slot A/B firmware partitions, and then rebooting into the new slot. So, if the new firmware does not boot up to UEFI, it should theoretically rollback to the original firmware.

After rebooting, you can run ota-check-firmware to see if the firmware version had changed. Additionally, you can get more detailed information on the status of the firmware update by running:

$ sudo nvbootctrl dump-slots-info

The Capsule update status is one of the following integers:

  • 0 - No Capsule update
  • 1 - Capsule update successfully
  • 2 - Capsule install successfully but boot new firmware failed
  • 3 - Capsule install failed

UEFI Capsule Authentication

To ensure only authenticated capsule updates are applied to the device, you can build the UEFI firmware and each subsequent capsule update using your own signing keys. An overview of the key generation can be found at EDK2 Capsule Signing.

To include your own signing keys in the EDK2 build and capsule update, make sure the option hardware.nvidia-jetpack.firmware.uefi.capsuleAuthentication.enable is turned on and each signing key option is set.

OCI Container Support

You can run OCI containers with jetpack-nixos by enabling the following nixos options:

{
  virtualisation.podman.enable = true;
  virtualisation.podman.enableNvidia = true;
}

To run a container with access to nvidia hardware, you must specify a device to passthrough to the container in the CDI format. By default, there will be a single device setup of the kind "nvidia.com/gpu" named "all". To use this device, pass --device=nvidia.com/gpu=all when starting your container. If you need to configure more CDI devices on the NixOS host, just note that the path /var/run/cdi/jetpack-nixos.yaml will be taken by jetpack-nixos.

As of December 2023, Docker does not have a released version that supports the CDI specification, so Podman is recommended for running containers on Jetson devices. Docker is set to get experimental CDI support in their version 25 release.

Additional Links

Much of this is inspired by the great work done by OpenEmbedded for Tegra. We also use the cleaned-up vendor kernel from OE4T.

jetpack-nixos's People

Contributors

cmoog avatar danielfullmer avatar evenfowler avatar ilyaniklyaev avatar jmbaur avatar kevinchristensen1 avatar ktrinh-anduril avatar mikatammi avatar mkagiew avatar msaristov avatar nagisa avatar nesteroff avatar princemachiavelli avatar ryan4729 avatar yannham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jetpack-nixos's Issues

Segfault while running video_decode from multimedia-samples

I am trying to run the video_decode sample in samples.multimedia-samples and getting a segfault. I've verified that the same works on a board running Ubuntu with the latest jetpack version.

Device info:

$ ota-check-firmware
Current firmware version is: 35.3.1
Current software version is: 35.3.1

$ hostnamectl
 ...
       Icon name: computer
      Machine ID: 68d20dd1d0984bcbb7bbac72a41c6e93
         Boot ID: 5317686e6c4f466384c82d862198954f
Operating System: NixOS 23.11 (Tapir)
          Kernel: Linux 5.10.104
    Architecture: arm64
 Hardware Vendor: Unknown
  Hardware Model: NVIDIA Orin NX Developer Kit
Firmware Version: 35.3.1
   Firmware Date: Tue 1980-01-01

Stack trace:

$ nix build github:anduril/jetpack-nixos#legacyPackages.aarch64-linux.samples.multimedia-samples
$ sudo gdb ./result/bin/video_decode
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./result/bin/video_decode...
(No debugging symbols found in ./result/bin/video_decode)
(gdb) r H264 output.mkv --disable-rendering
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"
warning: File "/nix/store/r0aclnvj3xz61pqvdbd4l57z714ybywa-glibc-2.35-224/lib/libthread_db.so.1" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/nix/store/cq3kvw7kwz2n9c13fg6qaaj23mkm116l-gcc-12.3.0-lib".
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be availa
ble.
[New LWP 1166]
Creating decoder in blocking mode
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
[New LWP 1167]
[New LWP 1168]
[New LWP 1169]
NvMMLiteBlockCreate : Block : BlockType = 261
Setting frame input mode to 1
[New LWP 1170]
Input file read complete
[New LWP 1171]
Starting decoder capture loop thread
Got EoS at output plane
[ERROR] (NvV4l2Element.cpp:114) <dec0> Error while DQing event: Invalid argument
Error in dequeueing decoder event
Exiting decoder capture loop thread
[LWP 1171 exited]
[LWP 1170 exited]

Thread 1 "DecOutPlane" received signal SIGSEGV, Segmentation fault.
0x0000fffff487d604 in __pthread_clockjoin_ex ()
   from /nix/store/r0aclnvj3xz61pqvdbd4l57z714ybywa-glibc-2.35-224/lib/libc.so.6
(gdb) r H264 output.mkv bt
The program being debugged has been started already.
Start it from the beginning? (y or n) Quit
(gdb) bt
#0  0x0000fffff487d604 in __pthread_clockjoin_ex ()
   from /nix/store/r0aclnvj3xz61pqvdbd4l57z714ybywa-glibc-2.35-224/lib/libc.so.6
#1  0x000000000043d24c in NvV4l2ElementPlane::waitForDQThread(unsigned int) ()
#2  0x000000000043da60 in NvV4l2ElementPlane::deinitPlane() ()
#3  0x000000000042b880 in NvV4l2Element::~NvV4l2Element() ()
#4  0x000000000043e484 in NvVideoDecoder::~NvVideoDecoder() ()
#5  0x0000000000406be8 in main ()

OpenCV with CUDA fails to build with linker errors

I am attempting to configure OpenCV with CUDA for an Orin NX like so:

{ pkgs ? import <nixpkgs> { } }:

let
  jetpack = pkgs.callPackage ./path/to/jetpack { };
in
pkgs.appendOverlays [
  (self: super: {
    cudaPackages = jetpack.cudaPackages // {
      inherit (jetpack) cudaVersion;
      # https://github.com/anduril/jetpack-nixos/blob/ddaff1bfceafb93ea67cb4ef953ba8eff5cf942b/cuda-packages.nix#L35
      inherit (pkgs.cudaPackages_11_3) backendStdenv;
      cudaFlags = self.cudaPackages_11_4.cudaFlags.override {
        config.cudaCapabilities = [ "8.6" ];
        config.cudaForwardCompat = false;
      };
    }
  
    opencv4 = (super.opencv4.override ({
      enableGtk3 = true;
      cudaPackages = self.cudaPackages;
      enableCuda = true;
      enableCudnn = true;
    };
  })
];

This, however, is failing with glibc-related liker errors like the following.

opencv> /nix/store/6f700gwk2wvy8rp9licldryx0hbvhapn-binutils-2.40/bin/ld: /nix/store/sn546k2nnp9fd4fcfhdp1ni0ql8yclkn-openexr-2.5.8/lib/libIlmImf-2_5.so.26: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
opencv> collect2: error: ld returned 1 exit status
opencv> make[2]: *** [apps/annotation/CMakeFiles/opencv_annotation.dir/build.make:103: bin/opencv_annotation] Error 1
opencv> make[1]: *** [CMakeFiles/Makefile2:8698: apps/annotation/CMakeFiles/opencv_annotation.dir/all] Error 2
opencv> make[1]: *** Waiting for unfinished jobs....

Disabling OpenEXR or the OpenCV apps module only postpones the error. Whatever the configuration, the same linker error always shows up at some point.

How can OpenCV be built? If this is a configuration issue, I think it would be useful to add a version of OpenCV with the relevant CUDA overrides to this repository's package set.

./flash-xavier-nx-devkit-emmc fails with "Error: Return value 8"

Hello people,

so the new issue I have when trying to flash our system with ./flash-xavier-nx-devkit-emmc is:

Error: Return value 8
Command tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt --download bct_mem mem_rcm_sigheader.bct.encrypt
Failed flashing t186ref.

3 or 4 weeks ago this way of flashing our device was successful - so I don't really understand what has changed. Maybe someone knows more about that.

Thanks a lot in advance and have a great day.

[user@OS:~/prj/jetson/jetpack-nixos]$ sudo ./result/bin/flash-xavier-nx-devkit-emmc
[sudo] password for user:
###############################################################################
# L4T BSP Information:
# R35 , REVISION: 2.1
###############################################################################
# Target Board Information:
# Name: jetson-xavier-nx-devkit-emmc, Board Family: t186ref, SoC: Tegra 194,
# OpMode: production, Boot Authentication: NS,
# Disk encryption: disabled ,
###############################################################################
copying soft_fuses(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)... done.
./tegraflash.py --chip 0x19 --applet "/tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod.bin" --skipuid --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins "mb2_applet nvtboot_applet_t194.bin" --cmd "dump eeprom boardinfo cvm.bin;reboot recovery"
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[   0.0408 ] Generating RCM messages
[   0.0444 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader /tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod.bin zerosbk
[   0.0455 ] Header already present for /tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod.bin
[   0.0661 ] tegrasign_v3.py --key None --getmode mode.txt
[   0.0664 ] Assuming zero filled SBK key
[   0.0686 ] tegrasign_v3.py --file /tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod_sigheader.bin --key None --length 1136 --offset 2960 --pubkeyhash pub_key.key
[   0.0688 ] Assuming zero filled SBK key
[   0.0759 ] Warning: pub_key.key is not found
[   0.0645 ] tegrahost_v2 --chip 0x19 0 --updatesigheader /tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod_sigheader.bin /tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod_sigheader.hash zerosbk
[   0.0744 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg.pdf sfuse.bin
[   0.0779 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm /tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod_sigheader.bin 0 0
[   0.0786 ] RCM 0 is saved as rcm_0.rcm
[   0.0826 ] RCM 1 is saved as rcm_1.rcm
[   0.0826 ] RCM 2 is saved as rcm_2.rcm
[   0.0826 ] List of rcm files are saved in rcm_list.xml
[   0.0826 ]
[   0.0827 ] Signing RCM messages
[   0.0980 ] tegrasign_v3.py --key None --list rcm_list.xml --getmontgomeryvalues montgomery.bin --pubkeyhash pub_key.key
[   0.0982 ] Assuming zero filled SBK key
[   0.1035 ] Warning: pub_key.key is not found
[   0.0902 ] Copying signature to RCM mesages
[   0.0924 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[   0.0941 ] Boot Rom communication
[   0.0962 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[   0.0969 ] RCM version 0X190001
[   0.1203 ] Boot Rom communication completed
[   2.1433 ] tegrarcm_v2 --isapplet
[   2.1454 ] Applet version 01.00.0000
[   2.2066 ] tegrarcm_v2 --ismb2
[   2.2683 ] tegrahost_v2 --chip 0x19 --align nvtboot_applet_t194_aligned.bin
[   2.2737 ] tegrahost_v2 --chip 0x19 0 --magicid PLDT --appendsigheader nvtboot_applet_t194_aligned.bin zerosbk
[   2.2754 ] adding BCH for nvtboot_applet_t194_aligned.bin
[   2.3036 ] tegrasign_v3.py --key None --list nvtboot_applet_t194_aligned_sigheader.bin_list.xml --pubkeyhash pub_key.key
[   2.3040 ] Assuming zero filled SBK key
[   2.3083 ] Warning: pub_key.key is not found
[   2.2982 ] tegrahost_v2 --chip 0x19 0 --updatesigheader nvtboot_applet_t194_aligned_sigheader.bin.encrypt nvtboot_applet_t194_aligned_sigheader.bin.hash zerosbk
[   2.3105 ] tegrarcm_v2 --download mb2 nvtboot_applet_t194_sigheader.bin.encrypt
[   2.3119 ] Applet version 01.00.0000
[   2.3694 ] Sending mb2
[   2.3701 ] [................................................] 100%
[   2.3877 ] tegrarcm_v2 --boot recovery
[   2.3893 ] Applet version 01.00.0000
[   3.4541 ] tegrarcm_v2 --isapplet
[   3.5149 ] tegrarcm_v2 --ismb2
[   3.5165 ] MB2 Applet version 01.00.0000
[   3.5840 ] tegrarcm_v2 --ismb2
[   3.5861 ] MB2 Applet version 01.00.0000
[   3.6441 ] Retrieving board information
[   3.6475 ] tegrarcm_v2 --oem platformdetails chip chip_info.bin
[   3.6492 ] MB2 Applet version 01.00.0000
[   3.7066 ] Saved platform info in chip_info.bin
[   3.7114 ] Chip minor revision: 2
[   3.7114 ] Bootrom revision: 0xf
[   3.7114 ] Ram code: 0x1
[   3.7115 ] Chip sku: 0xde
[   3.7115 ] Chip Sample: non es
[   3.7115 ]
[   3.7121 ] Retrieving EEPROM data
[   3.7123 ] tegrarcm_v2 --oem platformdetails eeprom cvm /tmp/tmp.sbtRz3Loom/bootloader/cvm.bin
[   3.7146 ] MB2 Applet version 01.00.0000
[   3.7733 ] Saved platform info in /tmp/tmp.sbtRz3Loom/bootloader/cvm.bin
[   3.8141 ] Rebooting to recovery mode
[   3.8175 ] tegrarcm_v2 --ismb2
[   3.8190 ] MB2 Applet version 01.00.0000
[   3.8754 ] Rebooting to recovery mode
[   3.8804 ] tegrarcm_v2 --reboot recovery
[   3.8827 ] MB2 Applet version 01.00.0000
Board ID(3668) version(301) sku(0001) revision(G.0)
lz4c installed at /nix/store/zrxskb6gpsgr9amx36254360by5m0gry-lz4-1.9.4-bin/bin/lz4c
Compressing /tmp/tmp.sbtRz3Loom/bootloader/t186ref/tegra194-a02-bpmp-p3668-a00.dtb ...
Copy /tmp/tmp.sbtRz3Loom/kernel/dtb/tegra194-p3668-0001-p3509-0000.dtb to /tmp/tmp.sbtRz3Loom/kernel/dtb/tegra194-p3668-0001-p3509-0000.dtb.rec
NVDISP+UEFI in bootloader/nvdisp-init.bin ..
copying bctfile(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-memcfg-p3668-0001-a00.cfg)... done.
copying bctfile1(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-memcfg-sw-override.cfg)... done.
copying minratchet_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-ratchet-p3668.cfg)... done.
copying device_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra19x-mb1-bct-device-qspi-p3668.cfg)... done.
copying misc_cold_boot_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-l4t.cfg)... done.
copying misc_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg)... done.
copying pinmux_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p3668-a01.cfg)... done.
copying gpioint_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg)... done.
copying pmic_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-pmic-p3668-0001-a00.cfg)... done.
copying pmc_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra19x-mb1-padvoltage-p3668-a01.cfg)... done.
copying prod_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra19x-mb1-prod-p3668-0001-a00.cfg)... done.
copying scr_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini-p3668.cfg)... done.
copying scr_cold_boot_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini-p3668.cfg)... done.
copying bootrom_config(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-bct-reset-p3668-0001-a00.cfg)... done.
copying dev_params(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-br-bct-qspi-l4t.cfg)... done.
copying dev_params_b(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-br-bct_b-qspi-l4t.cfg)... done.
Existing bootloader(/tmp/tmp.sbtRz3Loom/bootloader/nvtboot_cpu_t194.bin) reused.
copying initrd(/tmp/tmp.sbtRz3Loom/bootloader/l4t_initrd.img)... done.
bl is uefi
Making Boot image... done.
Not signing of boot.img
Existing sosfile(/tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod.bin) reused.
Existing tegraboot(/tmp/tmp.sbtRz3Loom/bootloader/nvtboot_t194.bin) reused.
Existing cpu_bootloader(/tmp/tmp.sbtRz3Loom/bootloader/nvtboot_cpu_t194.bin) reused.
Existing mb2blfile(/tmp/tmp.sbtRz3Loom/bootloader/nvtboot_recovery_t194.bin) reused.
Existing mtspreboot(/tmp/tmp.sbtRz3Loom/bootloader/preboot_c10_prod_cr.bin) reused.
Existing mcepreboot(/tmp/tmp.sbtRz3Loom/bootloader/mce_c10_prod_cr.bin) reused.
Existing mtsproper(/tmp/tmp.sbtRz3Loom/bootloader/mts_c10_prod_cr.bin) reused.
Existing mb1file(/tmp/tmp.sbtRz3Loom/bootloader/mb1_t194_prod.bin) reused.
Existing bpffile(/tmp/tmp.sbtRz3Loom/bootloader/bpmp-2_t194.bin) reused.
Existing bpfdtbfile(/tmp/tmp.sbtRz3Loom/bootloader/tegra194-a02-bpmp-p3668-a00_lz4.dtb) reused.
Existing scefile(/tmp/tmp.sbtRz3Loom/bootloader/camera-rtcpu-sce.img) reused.
Existing camerafw(/tmp/tmp.sbtRz3Loom/bootloader/camera-rtcpu-t194-rce.img) reused.
Existing apefile(/tmp/tmp.sbtRz3Loom/bootloader/adsp-fw.bin) reused.
Existing spefile(/tmp/tmp.sbtRz3Loom/bootloader/spe_t194.bin) reused.
Existing wb0boot(/tmp/tmp.sbtRz3Loom/bootloader/warmboot_t194_prod.bin) reused.
Existing tosfile(/tmp/tmp.sbtRz3Loom/bootloader/tos-optee_t194.img) reused.
Existing eksfile(/tmp/tmp.sbtRz3Loom/bootloader/eks_t194.img) reused.
copying soft_fuses(/tmp/tmp.sbtRz3Loom/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)... done.
copying dtbfile(/tmp/tmp.sbtRz3Loom/kernel/dtb/tegra194-p3668-0001-p3509-0000.dtb)... done.
Copying nv_boot_control.conf to rootfs
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /tmp/tmp.sbtRz3Loom/rootfs/etc/nv_boot_control.conf: Not a directory
Skip generating system.img
Not signing of kernel-dtb
Existing tbcfile(/tmp/tmp.sbtRz3Loom/bootloader/nvdisp-init.bin) reused.
131072+0 records in
131072+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 0.735088 s, 91.3 MB/s
	Sync'ing esp.img ... done.
copying tbcdtbfile(/tmp/tmp.sbtRz3Loom/kernel/dtb/tegra194-p3668-0001-p3509-0000.dtb)... done.
copying cfgfile(/tmp/tmp.sbtRz3Loom/flash.xml) to flash.xml... done.
done.
Existing flasher(/tmp/tmp.sbtRz3Loom/bootloader/nvtboot_recovery_cpu_t194.bin) reused.
Existing flashapp(/tmp/tmp.sbtRz3Loom/bootloader/tegraflash.py) reused.
copying overlay_dtb(/tmp/tmp.sbtRz3Loom/kernel/dtb/L4TConfiguration.dtbo)... done.
copying overlay_dtb(/tmp/tmp.sbtRz3Loom/kernel/dtb/tegra194-p3668-p3509-overlay.dtbo)... done.
./tegraflash.py --bl nvtboot_recovery_cpu_t194.bin --sdram_config tegra194-mb1-bct-memcfg-p3668-0001-a00.cfg,tegra194-memcfg-sw-override.cfg  --odmdata 0xB8190000  --overlay_dtb L4TConfiguration.dtbo,tegra194-p3668-p3509-overlay.dtbo,  --bldtb tegra194-p3668-0001-p3509-0000.dtb --applet mb1_t194_prod.bin --cmd "flash; reboot" --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg  --cfg flash.xml --chip 0x19 --minratchet_config tegra194-mb1-bct-ratchet-p3668.cfg --device_config tegra19x-mb1-bct-device-qspi-p3668.cfg --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg --misc_config tegra194-mb1-bct-misc-flash.cfg --pinmux_config tegra19x-mb1-pinmux-p3668-a01.cfg --gpioint_config tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg --pmic_config tegra194-mb1-bct-pmic-p3668-0001-a00.cfg --pmc_config tegra19x-mb1-padvoltage-p3668-a01.cfg --prod_config tegra19x-mb1-prod-p3668-0001-a00.cfg --scr_config tegra194-mb1-bct-scr-cbb-mini-p3668.cfg --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini-p3668.cfg --br_cmd_config tegra194-mb1-bct-reset-p3668-0001-a00.cfg --dev_params tegra194-br-bct-qspi-l4t.cfg,tegra194-br-bct_b-qspi-l4t.cfg  --bin "mb2_bootloader nvtboot_recovery_t194.bin; mts_preboot preboot_c10_prod_cr.bin; mts_mce mce_c10_prod_cr.bin; mts_proper mts_c10_prod_cr.bin; bpmp_fw bpmp-2_t194.bin; bpmp_fw_dtb tegra194-a02-bpmp-p3668-a00_lz4.dtb; spe_fw spe_t194.bin; tos tos-optee_t194.img; eks eks_t194.img; bootloader_dtb tegra194-p3668-0001-p3509-0000.dtb"   --secondary_gpt_backup  --bct_backup  --boot_chain A
saving flash command in /tmp/tmp.sbtRz3Loom/bootloader/flashcmd.txt
saving Windows flash command to /tmp/tmp.sbtRz3Loom/bootloader/flash_win.bat
*** Flashing target device started. ***
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[   0.0258 ] tegrasign_v3.py --key None --getmode mode.txt
[   0.0261 ] Assuming zero filled SBK key
[   0.0025 ] Generating RCM messages
[   0.0046 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader mb1_t194_prod.bin zerosbk
[   0.0054 ] Header already present for mb1_t194_prod.bin
[   0.0357 ] tegrasign_v3.py --key None --getmode mode.txt
[   0.0358 ] Assuming zero filled SBK key
[   0.0383 ] tegrasign_v3.py --file mb1_t194_prod_sigheader.bin --key None --length 1136 --offset 2960 --pubkeyhash pub_key.key
[   0.0385 ] Assuming zero filled SBK key
[   0.0415 ] Warning: pub_key.key is not found
[   0.0199 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_t194_prod_sigheader.bin mb1_t194_prod_sigheader.hash zerosbk
[   0.0270 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg sfuse.bin
[   0.0301 ] tegrabct_v2 --chip 0x19 0 --ratchet_blob ratchet_blob.bin --minratchet tegra194-mb1-bct-ratchet-p3668.cfg
[   0.0307 ] FwIndex: 1, MinRatchetLevel: 0
[   0.0313 ] FwIndex: 2, MinRatchetLevel: 0
[   0.0313 ] FwIndex: 3, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 4, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 5, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 6, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 7, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 11, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 12, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 13, MinRatchetLevel: 0
[   0.0314 ] FwIndex: 14, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 15, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 16, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 17, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 18, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 19, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 30, MinRatchetLevel: 0
[   0.0315 ] FwIndex: 31, MinRatchetLevel: 0
[   0.0315 ]
[   0.0336 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm mb1_t194_prod_sigheader.bin 0 0
[   0.0343 ] RCM 0 is saved as rcm_0.rcm
[   0.0385 ] RCM 1 is saved as rcm_1.rcm
[   0.0385 ] RCM 2 is saved as rcm_2.rcm
[   0.0386 ] List of rcm files are saved in rcm_list.xml
[   0.0386 ]
[   0.0386 ] Signing RCM messages
[   0.0647 ] tegrasign_v3.py --key None --list rcm_list.xml --getmontgomeryvalues montgomery.bin --pubkeyhash pub_key.key
[   0.0649 ] Assuming zero filled SBK key
[   0.0701 ] Warning: pub_key.key is not found
[   0.0463 ] Copying signature to RCM mesages
[   0.0485 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[   0.0503 ] odmdata (to decode) = 3088646144
[   0.0503 ] Odmdata strings: PCIE_XBAR_8_1_1_0_1,UFS_DISABLED,NVHS_PCIE,enable-debug-console,enable-denver-wdt
[   0.0504 ] Bpmp odmdata config: {'pcie-xbar-config': [0, 1, 'PCIE_XBAR_8_1_1_0_1'], 'pcie-c0-endpoint-enable': [1, 0, ''], 'pcie-c4-endpoint-enable': [1, 0, ''], 'ufs-config': [0, 1, 'UFS_DISABLED'], 'sata-enable': [1, 0, ''], 'nvhs-owner': [0, 1, 'PCIE'], 'pcie-c5-endpoint-enable': [1, 0, '']}
[   0.0519 ] bpmp_dtb is compressed; decompressing...
[   0.0520 ] lz4c -df tegra194-a02-bpmp-p3668-a00_lz4.dtb tegra194-a02-bpmp-p3668-a00_lz4_with_odm.dtb
[   0.0532 ] tegra194-a02-bpmp-p3 : decoded 442560 bytes
[   0.2742 ] Re-compressing updated bpmp_dtb
[   0.2743 ] lz4c -zf tegra194-a02-bpmp-p3668-a00_lz4_with_odm.dtb tegra194-a02-bpmp-p3668-a00_lz4.dtb
[   0.2778 ] Compressed 442529 bytes into 32067 bytes ==> 7.25%
[   0.2779 ]
[   0.8415 ] Concatenating L4TConfiguration.dtbo,tegra194-p3668-p3509-overlay.dtbo to tegra194-p3668-0001-p3509-0000_with_odm_overlay.dtb
[   0.8439 ] Parsing partition layout
[   0.8474 ] tegraparser_v2 --pt flash.xml.tmp
[   0.8493 ] Reading ramcode from backup chip_info.bin file
[   0.8494 ] RAMCODE Read from Device: 1

[   0.8495 ] Disable BPMP dtb trim, using default dtb
[   0.8495 ]
[   0.8495 ] Creating list of images to be signed
[   0.8518 ] tegrahost_v2 --chip 0x19 0 --partitionlayout flash.xml.bin --ratchet_blob ratchet_blob.bin --list images_list.xml zerosbk
[   0.8526 ] MB1: Nvheader already present is mb1_t194_prod_aligned.bin
[   0.8544 ] Header already present for mb1_t194_prod_aligned_sigheader.bin
[   0.8550 ] MB1: Nvheader already present is mb1_b_t194_prod_aligned.bin
[   0.8604 ] Header already present for mb1_b_t194_prod_aligned_sigheader.bin
[   0.8615 ] adding BCH for spe_t194_aligned.bin
[   0.8643 ] adding BCH for nvtboot_t194_aligned.bin
[   0.8674 ] Header already present for preboot_c10_prod_cr_aligned.bin
[   0.8736 ] Header already present for mce_c10_prod_cr_aligned.bin
[   0.8744 ] adding BCH for mts_c10_prod_cr_aligned.bin
[   0.8893 ] Header already present for warmboot_t194_prod_aligned.bin
[   0.9747 ] adding BCH for xusb_sil_rel_fw_aligned
[   0.9765 ] adding BCH for nvdisp-init_aligned.bin
[   0.9923 ] adding BCH for tegra194-p3668-0001-p3509-0000_aligned.dtb
[   1.0754 ] adding BCH for tos-optee_t194_aligned.img
[   1.0872 ] adding BCH for eks_t194_aligned.img
[   1.1101 ] adding BCH for adsp-fw_aligned.bin
[   1.1112 ] adding BCH for camera-rtcpu-t194-rce_aligned.img
[   1.1237 ] adding BCH for bpmp-2_t194_aligned.bin
[   1.1410 ] adding BCH for tegra194-a02-bpmp-p3668-a00_lz4_aligned.dtb
[   1.1663 ] adding BCH for spe_t194_aligned.bin
[   1.1682 ] adding BCH for nvtboot_t194_aligned.bin
[   1.1720 ] Header already present for preboot_c10_prod_cr_aligned.bin
[   1.1783 ] Header already present for mce_c10_prod_cr_aligned.bin
[   1.1789 ] adding BCH for mts_c10_prod_cr_aligned.bin
[   1.1962 ] Header already present for warmboot_t194_prod_aligned.bin
[   1.2852 ] adding BCH for xusb_sil_rel_fw_aligned
[   1.2867 ] adding BCH for nvdisp-init_aligned.bin
[   1.3083 ] adding BCH for tegra194-p3668-0001-p3509-0000_aligned.dtb
[   1.4023 ] adding BCH for tos-optee_t194_aligned.img
[   1.4199 ] adding BCH for eks_t194_aligned.img
[   1.4472 ] adding BCH for adsp-fw_aligned.bin
[   1.4504 ] adding BCH for camera-rtcpu-t194-rce_aligned.img
[   1.4640 ] adding BCH for bpmp-2_t194_aligned.bin
[   1.4835 ] adding BCH for tegra194-a02-bpmp-p3668-a00_lz4_aligned.dtb
[   1.5131 ] Filling MB1 storage info
[   1.5131 ] Parsing dev params for multi chains
[   1.5131 ] Generating br-bct
[   1.5150 ] Performing cfg overlay
[   1.5151 ] ['tegra194-mb1-bct-memcfg-p3668-0001-a00.cfg', 'tegra194-memcfg-sw-override.cfg']
[   1.5154 ] sw_memcfg_overlay.pl -c tegra194-mb1-bct-memcfg-p3668-0001-a00.cfg -s tegra194-memcfg-sw-override.cfg -o /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg
[   1.5752 ] Updating dev and MSS params in BR BCT
[   1.5752 ] tegrabct_v2 --dev_param tegra194-br-bct-qspi-l4t.cfg --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --brbct br_bct.cfg --sfuse tegra194-mb1-soft-fuses-l4t.cfg --chip 0x19 0
[   1.6520 ] Updating bl info
[   1.6541 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updateblinfo flash.xml.bin
[   1.6571 ] Generating br-bct
[   1.6595 ] Performing cfg overlay
[   1.6595 ] ['/tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg']
[   1.6595 ] Updating dev and MSS params in BR BCT
[   1.6595 ] tegrabct_v2 --dev_param tegra194-br-bct_b-qspi-l4t.cfg --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --brbct br_bct.cfg --sfuse tegra194-mb1-soft-fuses-l4t.cfg --chip 0x19 0
[   1.7200 ] Updating bl info
[   1.7221 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updateblinfo flash.xml.bin
[   1.7249 ] Generating BCT backup image
[   1.7249 ] dd if=/dev/zero of=bct_backup.img bs=1 count=32768
[   1.7259 ] 32768+0 records in
[   1.8971 ] 32768+0 records out
[   1.8972 ] 32768 bytes (33 kB, 32 KiB) copied, 0.169535 s, 193 kB/s
[   1.8972 ]
[   1.8972 ] Concatenating BCT for chain A to bct_backup.img

[   1.8972 ] dd if=br_bct_BR.bct of=bct_backup.img bs=1 seek=0 conv=notrunc
[   1.8982 ] 2888+0 records in
[   1.9158 ] 2888+0 records out
[   1.9158 ] 2888 bytes (2.9 kB, 2.8 KiB) copied, 0.0159223 s, 181 kB/s
[   1.9158 ]
[   1.9158 ] Concatenating BCT for chain B to bct_backup.img

[   1.9159 ] dd if=br_bct_b_BR.bct of=bct_backup.img bs=1 seek=16384 conv=notrunc
[   1.9167 ] 2888+0 records in
[   1.9345 ] 2888+0 records out
[   1.9345 ] 2888 bytes (2.9 kB, 2.8 KiB) copied, 0.0161902 s, 178 kB/s
[   1.9345 ]
[   1.9346 ] Generating signatures
[   1.9607 ] tegrasign_v3.py --key None --list images_list.xml --pubkeyhash pub_key.key
[   1.9609 ] Assuming zero filled SBK key
[   2.0780 ] Warning: pub_key.key is not found
[   2.0543 ] Parsing dev params for multi chains
[   2.0543 ] Generating br-bct
[   2.0563 ] Performing cfg overlay
[   2.0564 ] ['/tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg']
[   2.0564 ] Updating dev and MSS params in BR BCT
[   2.0564 ] tegrabct_v2 --dev_param tegra194-br-bct-qspi-l4t.cfg --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --brbct br_bct.cfg --sfuse tegra194-mb1-soft-fuses-l4t.cfg --chip 0x19 0
[   2.1163 ] Updating bl info
[   2.1185 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   2.1223 ] Updating smd info
[   2.1247 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 --updatesmdinfo flash.xml.bin
[   2.1260 ] Updating Odmdata
[   2.1281 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updatefields Odmdata =0xB8190000
[   2.1293 ] Signing BCT
[   2.1293 ] Get Signed section of bct
[   2.1312 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --listbct bct_list.xml
[   2.1580 ] tegrasign_v3.py --key None --list bct_list.xml --getmontgomeryvalues montgomery.bin --pubkeyhash pub_key.key
[   2.1582 ] Assuming zero filled SBK key
[   2.1602 ] Warning: pub_key.key is not found
[   2.1364 ] Updating BCT with signature
[   2.1384 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updatesig bct_list_signed.xml
[   2.1399 ] Generating br-bct
[   2.1420 ] Performing cfg overlay
[   2.1420 ] ['/tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg']
[   2.1420 ] Updating dev and MSS params in BR BCT
[   2.1421 ] tegrabct_v2 --dev_param tegra194-br-bct_b-qspi-l4t.cfg --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --brbct br_bct.cfg --sfuse tegra194-mb1-soft-fuses-l4t.cfg --chip 0x19 0
[   2.2024 ] Updating bl info
[   2.2046 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   2.2083 ] Updating smd info
[   2.2107 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 --updatesmdinfo flash.xml.bin
[   2.2120 ] Updating Odmdata
[   2.2142 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updatefields Odmdata =0xB8190000
[   2.2157 ] Signing BCT
[   2.2157 ] Get Signed section of bct
[   2.2179 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --listbct bct_list.xml
[   2.2447 ] tegrasign_v3.py --key None --list bct_list.xml --getmontgomeryvalues montgomery.bin --pubkeyhash pub_key.key
[   2.2449 ] Assuming zero filled SBK key
[   2.2473 ] Warning: pub_key.key is not found
[   2.2235 ] Updating BCT with signature
[   2.2259 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x19 0 --updatesig bct_list_signed.xml
[   2.2272 ] Generating BCT backup image
[   2.2272 ] dd if=/dev/zero of=bct_backup.img bs=1 count=32768
[   2.2283 ] 32768+0 records in
[   2.4024 ] 32768+0 records out
[   2.4025 ] 32768 bytes (33 kB, 32 KiB) copied, 0.172083 s, 190 kB/s
[   2.4025 ]
[   2.4025 ] Concatenating BCT for chain A to bct_backup.img

[   2.4025 ] dd if=br_bct_BR.bct of=bct_backup.img bs=1 seek=0 conv=notrunc
[   2.4037 ] 2888+0 records in
[   2.4211 ] 2888+0 records out
[   2.4211 ] 2888 bytes (2.9 kB, 2.8 KiB) copied, 0.015407 s, 187 kB/s
[   2.4212 ]
[   2.4212 ] Concatenating BCT for chain B to bct_backup.img

[   2.4212 ] dd if=br_bct_b_BR.bct of=bct_backup.img bs=1 seek=16384 conv=notrunc
[   2.4223 ] 2888+0 records in
[   2.4389 ] 2888+0 records out
[   2.4389 ] 2888 bytes (2.9 kB, 2.8 KiB) copied, 0.0148326 s, 195 kB/s
[   2.4390 ]
[   2.4390 ] Generating coldboot mb1-bct
[   2.4412 ] tegrabct_v2 --chip 0x19 0 --mb1bct mb1_cold_boot_bct.cfg --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --misc tegra194-mb1-bct-misc-l4t.cfg --scr tegra194-mb1-bct-scr-cbb-mini-p3668.cfg --pinmux tegra19x-mb1-pinmux-p3668-a01.cfg --pmc tegra19x-mb1-padvoltage-p3668-a01.cfg --pmic tegra194-mb1-bct-pmic-p3668-0001-a00.cfg --brcommand tegra194-mb1-bct-reset-p3668-0001-a00.cfg --prod tegra19x-mb1-prod-p3668-0001-a00.cfg --gpioint tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg --device tegra19x-mb1-bct-device-qspi-p3668.cfg
[   2.4422 ] MB1-BCT version: 0x1

[   2.4431 ] Parsing config file :tegra19x-mb1-pinmux-p3668-a01.cfg
[   2.4452 ] Added Platform Config 0 data with size :- 2496

[   2.4474 ] Parsing config file :tegra194-mb1-bct-scr-cbb-mini-p3668.cfg
[   2.4482 ] Added Platform Config 1 data with size :- 19640

[   2.4737 ] Parsing config file :tegra19x-mb1-padvoltage-p3668-a01.cfg
[   2.4753 ] Added Platform Config 2 data with size :- 24

[   2.4761 ] Parsing config file :tegra194-mb1-bct-pmic-p3668-0001-a00.cfg
[   2.4767 ] Added Platform Config 4 data with size :- 348

[   2.4771 ] Parsing config file :tegra194-mb1-bct-reset-p3668-0001-a00.cfg
[   2.4777 ] Added Platform Config 3 data with size :- 92
[   2.4780 ]
[   2.4780 ] Parsing config file :tegra19x-mb1-prod-p3668-0001-a00.cfg
[   2.4780 ] Added Platform Config 5 data with size :- 140
[   2.4780 ]
[   2.4780 ] Parsing config file :tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg
[   2.4781 ] Added Platform Config 7 data with size :- 392
[   2.4781 ]
[   2.4781 ] Parsing config file :tegra19x-mb1-bct-device-qspi-p3668.cfg
[   2.4781 ] Added Platform Config 9 data with size :- 40
[   2.4781 ]
[   2.4781 ] Updating mb1-bct with firmware information
[   2.4801 ] tegrabct_v2 --chip 0x19 --mb1bct mb1_cold_boot_bct_MB1.bct --updatefwinfo flash.xml.bin
[   2.4820 ] Updating mb1-bct with storage information
[   2.4841 ] tegrabct_v2 --chip 0x19 --mb1bct mb1_cold_boot_bct_MB1.bct --updatestorageinfo flash.xml.bin
[   2.4862 ] Updating mb1-bct with ratchet information
[   2.4882 ] tegrabct_v2 --chip 0x19 --mb1bct mb1_cold_boot_bct_MB1.bct --minratchet tegra194-mb1-bct-ratchet-p3668.cfg
[   2.4893 ] FwIndex: 1, MinRatchetLevel: 0
[   2.4906 ] FwIndex: 2, MinRatchetLevel: 0
[   2.4909 ] FwIndex: 3, MinRatchetLevel: 0
[   2.4909 ] FwIndex: 4, MinRatchetLevel: 0
[   2.4909 ] FwIndex: 5, MinRatchetLevel: 0
[   2.4909 ] FwIndex: 6, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 7, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 11, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 12, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 13, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 14, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 15, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 16, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 17, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 18, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 19, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 30, MinRatchetLevel: 0
[   2.4910 ] FwIndex: 31, MinRatchetLevel: 0
[   2.4910 ]
[   2.4936 ] tegrahost_v2 --chip 0x19 --align mb1_cold_boot_bct_MB1_aligned.bct
[   2.4968 ] tegrahost_v2 --chip 0x19 0 --magicid MBCT --ratchet_blob ratchet_blob.bin --appendsigheader mb1_cold_boot_bct_MB1_aligned.bct zerosbk
[   2.4975 ] adding BCH for mb1_cold_boot_bct_MB1_aligned.bct
[   2.5249 ] tegrasign_v3.py --key None --list mb1_cold_boot_bct_MB1_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key
[   2.5251 ] Assuming zero filled SBK key
[   2.5272 ] Warning: pub_key.key is not found
[   2.5057 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_cold_boot_bct_MB1_aligned_sigheader.bct.encrypt mb1_cold_boot_bct_MB1_aligned_sigheader.bct.hash zerosbk
[   2.5080 ] Generating recovery mb1-bct
[   2.5103 ] tegrabct_v2 --chip 0x19 0 --mb1bct mb1_bct.cfg --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --misc tegra194-mb1-bct-misc-flash.cfg --scr tegra194-mb1-bct-scr-cbb-mini-p3668.cfg --pinmux tegra19x-mb1-pinmux-p3668-a01.cfg --pmc tegra19x-mb1-padvoltage-p3668-a01.cfg --pmic tegra194-mb1-bct-pmic-p3668-0001-a00.cfg --brcommand tegra194-mb1-bct-reset-p3668-0001-a00.cfg --prod tegra19x-mb1-prod-p3668-0001-a00.cfg --gpioint tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg --device tegra19x-mb1-bct-device-qspi-p3668.cfg
[   2.5112 ] MB1-BCT version: 0x1

[   2.5119 ] Parsing config file :tegra19x-mb1-pinmux-p3668-a01.cfg
[   2.5129 ] Added Platform Config 0 data with size :- 2496

[   2.5152 ] Parsing config file :tegra194-mb1-bct-scr-cbb-mini-p3668.cfg
[   2.5161 ] Added Platform Config 1 data with size :- 19640

[   2.5409 ] Parsing config file :tegra19x-mb1-padvoltage-p3668-a01.cfg
[   2.5417 ] Added Platform Config 2 data with size :- 24

[   2.5422 ] Parsing config file :tegra194-mb1-bct-pmic-p3668-0001-a00.cfg
[   2.5430 ] Added Platform Config 4 data with size :- 348

[   2.5434 ] Parsing config file :tegra194-mb1-bct-reset-p3668-0001-a00.cfg
[   2.5440 ] Added Platform Config 3 data with size :- 92

[   2.5444 ] Parsing config file :tegra19x-mb1-prod-p3668-0001-a00.cfg
[   2.5449 ] Added Platform Config 5 data with size :- 140
[   2.5449 ]
[   2.5449 ] Parsing config file :tegra194-mb1-bct-gpioint-p3668-0001-a00.cfg
[   2.5449 ] Added Platform Config 7 data with size :- 392
[   2.5450 ]
[   2.5450 ] Parsing config file :tegra19x-mb1-bct-device-qspi-p3668.cfg
[   2.5450 ] Added Platform Config 9 data with size :- 40
[   2.5450 ]
[   2.5450 ] Updating mb1-bct with firmware information
[   2.5470 ] tegrabct_v2 --chip 0x19 --mb1bct mb1_bct_MB1.bct --recov --updatefwinfo flash.xml.bin
[   2.5492 ] Updating mb1-bct with storage information
[   2.5512 ] tegrabct_v2 --chip 0x19 --mb1bct mb1_bct_MB1.bct --updatestorageinfo flash.xml.bin
[   2.5532 ] Updating mb1-bct with ratchet information
[   2.5556 ] tegrabct_v2 --chip 0x19 --mb1bct mb1_bct_MB1.bct --minratchet tegra194-mb1-bct-ratchet-p3668.cfg
[   2.5566 ] FwIndex: 1, MinRatchetLevel: 0
[   2.5580 ] FwIndex: 2, MinRatchetLevel: 0
[   2.5582 ] FwIndex: 3, MinRatchetLevel: 0
[   2.5582 ] FwIndex: 4, MinRatchetLevel: 0
[   2.5582 ] FwIndex: 5, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 6, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 7, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 11, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 12, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 13, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 14, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 15, MinRatchetLevel: 0
[   2.5583 ] FwIndex: 16, MinRatchetLevel: 0
[   2.5584 ] FwIndex: 17, MinRatchetLevel: 0
[   2.5584 ] FwIndex: 18, MinRatchetLevel: 0
[   2.5584 ] FwIndex: 19, MinRatchetLevel: 0
[   2.5584 ] FwIndex: 30, MinRatchetLevel: 0
[   2.5584 ] FwIndex: 31, MinRatchetLevel: 0
[   2.5584 ]
[   2.5607 ] tegrahost_v2 --chip 0x19 --align mb1_bct_MB1_aligned.bct
[   2.5636 ] tegrahost_v2 --chip 0x19 0 --magicid MBCT --ratchet_blob ratchet_blob.bin --appendsigheader mb1_bct_MB1_aligned.bct zerosbk
[   2.5644 ] adding BCH for mb1_bct_MB1_aligned.bct
[   2.5916 ] tegrasign_v3.py --key None --list mb1_bct_MB1_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key
[   2.5918 ] Assuming zero filled SBK key
[   2.5935 ] Warning: pub_key.key is not found
[   2.5718 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_bct_MB1_aligned_sigheader.bct.encrypt mb1_bct_MB1_aligned_sigheader.bct.hash zerosbk
[   2.5741 ] Generating coldboot mem-bct
[   2.5761 ] tegrabct_v2 --chip 0x19 0 --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --membct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_1.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_2.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_3.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_4.bct
[   2.5767 ] Packing sdram param for instance[0]
[   2.6369 ] Packing sdram param for instance[1]
[   2.6374 ] Packing sdram param for instance[2]
[   2.6381 ] Packing sdram param for instance[3]
[   2.6381 ] Packing sdram param for instance[4]
[   2.6381 ] Packing sdram param for instance[5]
[   2.6381 ] Packing sdram param for instance[6]
[   2.6381 ] Packing sdram param for instance[7]
[   2.6381 ] Packing sdram param for instance[8]
[   2.6381 ] Packing sdram param for instance[9]
[   2.6382 ] Packing sdram param for instance[10]
[   2.6382 ] Packing sdram param for instance[11]
[   2.6382 ] Packing sdram param for instance[12]
[   2.6382 ] Packing sdram param for instance[13]
[   2.6382 ] Packing sdram param for instance[14]
[   2.6382 ] Packing sdram param for instance[15]
[   2.6382 ]
[   2.6383 ] Getting sector size from pt
[   2.6405 ] tegraparser_v2 --getsectorsize flash.xml.bin sector_info.bin
[   2.6417 ] BlockSize read from layout is 200

[   2.6437 ] tegrahost_v2 --chip 0x19 0 --blocksize 512 --magicid MEMB --addsigheader_multi /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_1.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_2.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_3.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_4.bct
[   2.6446 ] adding BCH for /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_1.bct
[   2.6501 ] tegrahost_v2 --chip 0x19 --align mem_coldboot_aligned.bct
[   2.6537 ] tegrahost_v2 --chip 0x19 0 --magicid MEMB --ratchet_blob ratchet_blob.bin --appendsigheader mem_coldboot_aligned.bct zerosbk
[   2.6544 ] Header already present for mem_coldboot_aligned.bct
[   2.6813 ] tegrasign_v3.py --key None --list mem_coldboot_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key
[   2.6816 ] Assuming zero filled SBK key
[   2.6840 ] Warning: pub_key.key is not found
[   2.6626 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mem_coldboot_aligned_sigheader.bct.encrypt mem_coldboot_aligned_sigheader.bct.hash zerosbk
[   2.6653 ] Generating recovery mem-bct
[   2.6679 ] tegrabct_v2 --chip 0x19 0 --sdram /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1.cfg --membct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_1.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_2.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_3.bct /tmp/tmp.sbtRz3Loom/bootloader/129921/tmpovtqsjpq1_4.bct
[   2.6691 ] Packing sdram param for instance[0]
[   2.7394 ] Packing sdram param for instance[1]
[   2.7400 ] Packing sdram param for instance[2]
[   2.7407 ] Packing sdram param for instance[3]
[   2.7411 ] Packing sdram param for instance[4]
[   2.7411 ] Packing sdram param for instance[5]
[   2.7411 ] Packing sdram param for instance[6]
[   2.7411 ] Packing sdram param for instance[7]
[   2.7412 ] Packing sdram param for instance[8]
[   2.7412 ] Packing sdram param for instance[9]
[   2.7412 ] Packing sdram param for instance[10]
[   2.7412 ] Packing sdram param for instance[11]
[   2.7412 ] Packing sdram param for instance[12]
[   2.7412 ] Packing sdram param for instance[13]
[   2.7412 ] Packing sdram param for instance[14]
[   2.7412 ] Packing sdram param for instance[15]
[   2.7413 ]
[   2.7438 ] tegrahost_v2 --chip 0x19 --align mem_rcm_aligned.bct
[   2.7467 ] tegrahost_v2 --chip 0x19 0 --magicid MEMB --ratchet_blob ratchet_blob.bin --appendsigheader mem_rcm_aligned.bct zerosbk
[   2.7476 ] adding BCH for mem_rcm_aligned.bct
[   2.7755 ] tegrasign_v3.py --key None --list mem_rcm_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key
[   2.7757 ] Assuming zero filled SBK key
[   2.7777 ] Warning: pub_key.key is not found
[   2.7563 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mem_rcm_aligned_sigheader.bct.encrypt mem_rcm_aligned_sigheader.bct.hash zerosbk
[   2.7589 ] Copying signatures
[   2.7611 ] tegrahost_v2 --chip 0x19 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[   3.0975 ] Boot Rom communication
[   3.0996 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml
[   3.1004 ] BR_CID: 0x88021911644212041400000011fd8140
[   3.1250 ] RCM version 0X190001
[   3.1552 ] Boot Rom communication completed
[   5.1773 ] tegrarcm_v2 --isapplet
[   5.1800 ] Applet version 01.00.0000
[   5.2343 ] Sending BCTs
[   5.2385 ] tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt --download bct_mem mem_rcm_sigheader.bct.encrypt
[   5.2402 ] Applet version 01.00.0000
[   5.3021 ] Sending bct_bootrom
[   5.3030 ] [................................................] 100%
[   5.3056 ] Sending bct_mb1
[   5.3087 ] [................................................] 100%
[   5.3126 ] Sending bct_mem
[   5.3620 ] [................................................] 100%
Error: Return value 8
Command tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt --download bct_mem mem_rcm_sigheader.bct.encrypt
Failed flashing t186ref.

Connecting to Wifi network with Management Frame Protection enabled crashes Orin AGX

After updating a hostapd-based AP to use WPA3, which requires 802.11w (Management Frame Protection), the Orin AGX devkit which previously was able to connect to it would instead crash with the following:

[   31.871902] kernel BUG at mm/vmalloc.c:2065!
[   31.872046] Internal error: Oops - BUG: 0 [#1] SMP
[   31.872207] Modules linked in: nvidia_modeset(O) ip6_tables xt_conntrack nf_conntrack nf_defrag_ipv6 nls_iso8859_1 nf_defrag_ipv4 nls_cp437 ip6t_rpfilter ipt_rpfilter xt_pkttype nf_log_ipv6 nf_log_ipv4 nf_log_common xt_LOG xt_tcpudp nft_compat rtl8822ce nft_counter hid_logitech_hidpp input_leds nf_tables libcrc32c nfnetlink rtw88_8822ce rtw88_8822c rtw88_pci rtw88_core mac80211 aes_ce_blk cfg80211 crypto_simd cryptd nvidia(O) snd_soc_tegra210_ope snd_soc_tegra186_asrc aes_ce_cipher rtk_btusb snd_soc_tegra186_dspk snd_soc_tegra210_iqc snd_soc_tegra186_arad ghash_ce snd_soc_tegra210_dmic snd_soc_tegra210_afc snd_soc_tegra210_admaif atkbd snd_soc_tegra210_mvc snd_soc_tegra210_adx sha2_ce snd_soc_tegra210_adsp mttcan btusb snd_hda_codec_hdmi ucsi_ccg snd_soc_tegra_machine_driver snd_soc_tegra_pcm sha256_arm64 snd_soc_tegra210_sfc snd_soc_tegra210_i2s snd_soc_tegra210_mixer snd_soc_tegra210_amx btrtl snd_hda_tegra snd_hda_codec btbcm snd_soc_rt5640 typec_ucsi snd_soc_tegra_utils nvadsp sha1_ce
[   31.872342]  snd_soc_simple_card_utils typec snd_soc_tegra210_ahub snd_hda_core hid_logitech_dj libps2 can_dev btintel snd_soc_rl6231 tegra210_adma nct1008 userspace_alert snd_soc_spdif_tx pwm_fan spi_tegra114 ina3221 tegra_bpmp_thermal loop tap macvlan nvgpu nvmap fuse ip_tables x_tables zfs(PO) zunicode(PO) zzstd(O) zlua(O) zcommon(PO) znvpair(PO) zavl(PO) icp(PO) spl(O)
[   31.910256] CPU: 8 PID: 7 Comm: kworker/u24:0 Tainted: P           O      5.10.104 #1-NixOS
[   31.918652] Hardware name: Unknown Jetson AGX Orin/Jetson AGX Orin, BIOS 35.3.1 01/01/1980
[   31.927112] Workqueue: phy0 ieee80211_ba_session_work [mac80211]
[   31.933092] pstate: 00c00009 (nzcv daif +PAN +UAO -TCO BTYPE=--)
[   31.939136] pc : __get_vm_area_node+0x1ac/0x1d0
[   31.943852] lr : __get_vm_area_node+0x48/0x1d0
[   31.948313] sp : ffff8000100c3590
[   31.951727] x29: ffff8000100c3590 x28: 0000000000000001 
[   31.957238] x27: 00000000ffffffff x26: 0000000000000001 
[   31.962753] x25: fffffdffbfff0000 x24: ffff800010000000 
[   31.968263] x23: ffffd897c8f380c0 x22: 0000000000000cc0 
[   31.973775] x21: 0000000000000010 x20: 0000000000001000 
[   31.979202] x19: ffffd897c8f380c0 x18: 0000000000000001 
[   31.984713] x17: 0000000000000000 x16: ffffd897c9447920 
[   31.990227] x15: 000000000000002f x14: 000000000000002f 
[   31.995650] x13: 0000000000000001 x12: 0000000000000001 
[   32.001164] x11: 0000000000000000 x10: 0000000000000001 
[   32.006676] x9 : 0000000007fff7f1 x8 : 00000000000001ff 
[   32.012013] x7 : ffffd897c8f380c0 x6 : 0000000000000cc0 
[   32.017527] x5 : 00000000ffffffff x4 : fffffdffbfff0000 
[   32.022952] x3 : ffff800010000000 x2 : ffffd897c8fcd680 
[   32.028288] x1 : 0000000000000001 x0 : 0000000000000200 
[   32.033627] Call trace:
[   32.036079]  __get_vm_area_node+0x1ac/0x1d0
[   32.040103]  vmap+0xa0/0x110
[   32.042993]  dma_common_pages_remap+0x40/0x68
[   32.047282]  iommu_dma_alloc_remap+0x2dc/0x428
[   32.051566]  iommu_dma_alloc+0x278/0x328
[   32.055501]  dma_alloc_attrs+0xe8/0xf0
[   32.059270]  tegra_se_ccm_compute_auth+0x3e4/0x640
[   32.064079]  tegra_se_aes_ccm_encrypt+0x6c/0x150
[   32.068633]  crypto_aead_encrypt+0x38/0x50
[   32.072698]  aead_encrypt+0x130/0x180 [mac80211]
[   32.00]  ieee80211_crypto_ccmp_encrypt+0x1f8/0x270 [mac80211]
[   32.083367]  ieee80211_tx_h_encrypt+0x134/0x148 [mac80211]
[   32.088703]  invoke_tx_handlers_late+0x34c/0x780 [mac80211]
[   32.094298]  ieee80211_tx+0x11c/0x168 [mac80211]
[   32.098847]  ieee80211_xmit+0xa0/0xd0 [mac80211]
[   32.103397]  __ieee80211_tx_skb_tid_band+0x84/0xa8 [mac80211]
[   32.109176]  ieee80211_send_delba+0x118/0x188 [mac80211]
[   32.114598]  ieee80211_stop_tx_ba_cb+0x190/0x1c0 [mac80211]
[   32.120374]  ieee80211_ba_session_work+0x2d8/0x420 [mac80211]
[   32.125944]  process_one_work+0x1bc/0x480
[   32.129964]  worker_thread+0x158/0x4b8
[   32.133817]  kthread+0x104/0x130
[   32.137232]  ret_from_fork+0x10/0x18
[   32.140819] Code: a9446bf9 f9402bfb a8c67bfd d65f03c0 (d4210000) 
[   32.147039] ---[ end trace 371b6545c2749693 ]---
[   32.151579] Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt
[   32.159191] SMP: stopping secondary CPUs
[   32.163182] Kernel Offset: 0x5897b8df0000 from 0xffff800010000000
[   32.169076] PHYS_OFFSET: 0xffffe656c0000000
[   32.173277] CPU features: 0x0040006,4a80aa38
[   32.177739] Memory Limit: none
[   32.180720] ---[ end Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt ]---

VPI2 samples test not working

The samples.vpi2-test currently freezes on Xavier AGX, Xavier NX, and Orin AGX. In dmesg, we get the following output:

[  119.263096] host1x 13e10000.host1x: vpi_sample_05_b: syncpoint id 31 (pva_syncpt) stuck waiting 1, timeout=519311586
[  119.263406] ---- syncpts ----
[  119.263495] id 17 (gv11b_511_user) min 657437 max 657417 refs 1 (previous client : 15340000.vic_video_convert_0)
[  119.263710] id 21 (gv11b_510_user) min 655828 max 655789 refs 1 (previous client : video_convert)
[  119.263879] id 22 (gv11b_509_user) min 657873 max 657855 refs 1 (previous client : jpeg_decode)
[  119.264041] id 23 (gv11b_508_user) min 657861 max 657824 refs 1 (previous client : gv11b_508_user)
[  119.264236] id 24 (gv11b_507_user) min 655360 max 655360 refs 1 (previous client : gv11b_507_user)
[  119.264402] id 25 (gv11b_506_user) min 655360 max 655360 refs 1 (previous client : gv11b_506_user)

[  125.407093] host1x 13e10000.host1x: vpi_sample_05_b: syncpoint id 31 (pva_syncpt) stuck waiting 1, timeout=519310086
[  125.407352] ---- syncpts ----
[  125.407461] id 17 (gv11b_511_user) min 657437 max 657417 refs 1 (previous client : 15340000.vic_video_convert_0)
[  125.407657] id 21 (gv11b_510_user) min 655828 max 655789 refs 1 (previous client : video_convert)
[  125.407819] id 22 (gv11b_509_user) min 657873 max 657855 refs 1 (previous client : jpeg_decode)
[  125.407985] id 23 (gv11b_508_user) min 657861 max 657824 refs 1 (previous client : gv11b_508_user)
[  125.408178] id 24 (gv11b_507_user) min 655360 max 655360 refs 1 (previous client : gv11b_507_user)
[  125.408352] id 25 (gv11b_506_user) min 655360 max 655360 refs 1 (previous client : gv11b_506_user)

[  131.551136] host1x 13e10000.host1x: vpi_sample_05_b: syncpoint id 31 (pva_syncpt) stuck waiting 1, timeout=519308586
[  131.551380] ---- syncpts ----
[  131.551485] id 17 (gv11b_511_user) min 657437 max 657417 refs 1 (previous client : 15340000.vic_video_convert_0)
[  131.551687] id 21 (gv11b_510_user) min 655828 max 655789 refs 1 (previous client : video_convert)
[  131.551850] id 22 (gv11b_509_user) min 657873 max 657855 refs 1 (previous client : jpeg_decode)
[  131.552034] id 23 (gv11b_508_user) min 657861 max 657824 refs 1 (previous client : gv11b_508_user)
[  131.552208] id 24 (gv11b_507_user) min 655360 max 655360 refs 1 (previous client : gv11b_507_user)
[  131.552377] id 25 (gv11b_506_user) min 655360 max 655360 refs 1 (previous client : gv11b_506_user)

[  137.695093] host1x 13e10000.host1x: vpi_sample_05_b: syncpoint id 31 (pva_syncpt) stuck waiting 1, timeout=519307086
[  137.695332] ---- syncpts ----
[  137.695438] id 17 (gv11b_511_user) min 657437 max 657417 refs 1 (previous client : 15340000.vic_video_convert_0)
[  137.695649] id 21 (gv11b_510_user) min 655828 max 655789 refs 1 (previous client : video_convert)
[  137.695826] id 22 (gv11b_509_user) min 657873 max 657855 refs 1 (previous client : jpeg_decode)
[  137.696001] id 23 (gv11b_508_user) min 657861 max 657824 refs 1 (previous client : gv11b_508_user)
[  137.696191] id 24 (gv11b_507_user) min 655360 max 655360 refs 1 (previous client : gv11b_507_user)
[  137.696355] id 25 (gv11b_506_user) min 655360 max 655360 refs 1 (previous client : gv11b_506_user)

I thought I had tested this before upgrading to Jetpack 5.1, but apparently not.

nixpkgs master no longer supports `fileSystems.<name>.formatOptions`

Attempting to use jetpack-nixos with nixpkgs master will fail this assertion:

https://github.com/NixOS/nixpkgs/blob/5d486408b510035c76b31d8d880c830d773b40a4/nixos/modules/tasks/filesystems.nix#L330-L332

It seems like it will be necessary to use some other mechanism to create the partition in question.

(Side note, the /dev/disk/by-partlabel/esp does not exist and is not mounted on my AGX anyhow. Not sure if this is just a step I missed when setting up jetpack-nixos or something else, though)

wireguard module not available

Hello,

so another thing that I intend to do, is to get wireguard going.

Relevant configuration.nix looks like this:

  wireguard.interfaces = {
    wg0 = {
      ips = ["####"];
      peers = [
        {
          allowedIPs = ["####"];
          endpoint = "####";
          presharedKey = "####";
          publicKey = "####";
        }
      ];
      privateKey = "####";
    };
  };
};

But built fails with:

× wireguard-wg0 - WireGuard Tunnel - wg0
     Loaded: loaded (/etc/systemd/system/wireguard-wg0service; linked; preset: enabled)
     Active: failed (Result: exit-code) since #### ago
    Process: #### ExecStart=/nix/store/####-unit-script-wireguard-wg0-start/bin/wireguard-wg0-start (code=exited, status=2)
    Process: #### ExecStopPost=/nix/store/####-unit-script-wireguard-wg0-post-stop/bin/wireguard-wg0-post-stop (code=exited, status=1/FAILURE)
   Main PID: #### (code=exited, status=2)
         IP: 0B in, 0B out
        CPU: 18ms

NIX systemd[1]: Starting WireGuard Tunnel - wg0...
NIX wireguard-wg0-start[####]: modprobe: FATAL: Module wireguard not found in directory /run/booted-system/kernel-modules/lib/modules/5.10.104
NIX wireguard-wg0-start[####]: Error: Unknown device type.
NIX systemd[1]: wireguard-wg0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
NIX wireguard-wg0-post-stop[####]: Cannot find device "wg0"
NIX systemd[1]: wireguard-wg0.service: Control process exited, code=exited, status=1/FAILURE
NIX systemd[1]: wireguard-wg0.service: Failed with result 'exit-code'.
NIX systemd[1]: Failed to start WireGuard Tunnel - wg0.

/run/booted-system/kernel-modules/lib/modules/5.10.104 indeed does not contain any wireguard module - so I am wondering - how can I contribute so that this works?

Thanks and have a great day.

EDK2 fails to build with `hardware.nvidia-jetpack.bootloader.autoUpdate` on native aarch64 build

When I enable hardware.nvidia-jetpack.bootloader.autoUpdate the toplevel image now builds the jetson edk2 firmware and it fails with the following error:

cp -p -f /build/source/Build/Jetson/RELEASE_GCC5/AARCH64/MdeModulePkg/Application/UiApp/UiApp/OUTPUT/UiApp.efi /build/source/Build/Jetson/RELEASE_GCC5/AARCH64/MdeModulePkg/Application/UiApp/UiApp/DEBUG
...skipping...
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans0.ltrans.o:/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi>
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans0.ltrans.o: in function `osi_hal_handle_ioctl':
/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi/core/osi_hal.c:1428: undefined reference to `__aarch64_ldadd4_sync'
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans0.ltrans.o:/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi>
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans0.ltrans.o:/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi>
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans1.ltrans.o: in function `eqos_pad_calibrate':
/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi/core/eqos_core.c:859: undefined reference to `__aarch64_cas4_sync'
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi/core/eqos_core.c:917: undefined >
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans1.ltrans.o: in function `osi_lock_irq_enabled.lto_priv.0.lto_priv.0':
/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/include/../osi/common/common.h:119: undefined reference to `__aarch64_cas4_sync'
/nix/store/5zfaafzpdi70lrib7a4rk5km6w381l91-binutils-2.40/bin/ld: /build/ccQi59ej.ltrans1.ltrans.o: in function `osi_unlock_irq_enabled.lto_priv.0.lto_priv.0':
/nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/include/../osi/common/common.h:148: undefined reference to `__aarch64_cas4_sync'
collect2: error: ld returned 1 exit status
make: *** [GNUmakefile:576: /build/source/Build/Jetson/RELEASE_GCC5/AARCH64/Silicon/NVIDIA/Drivers/EqosDeviceDxe/EqosDeviceDxe/DEBUG/EqosDeviceDxe.dll] Error 1


build.py...
 : error 7000: Failed to execute command
        make tbuild [/build/source/Build/Jetson/RELEASE_GCC5/AARCH64/Silicon/NVIDIA/Drivers/EqosDeviceDxe/EqosDeviceDxe]


build.py...
 : error F002: Failed to build module
        /nix/store/78jw9gn0q5n5nvkvlbycr9dzdm0kjcyy-source-patched/Silicon/NVIDIA/Drivers/EqosDeviceDxe/EqosDeviceDxe.inf [AARCH64, GCC5, RELEASE]

- Failed -

Split debs back into multiple Nix outputs

We currently combine the -dev , -bin, etc debs that are part of the same deb "source package" back into a single derivation, but we should really use multiple-outputs to separate static libraries, dynamic libraries, development headers, etc.

Hash mismatch building nvidia-display-driver

The nvidia-display-driver fetchgit uses a tag instead of a commit hash. Now NVIDIA changed the tag to point to a different place, leading to a different content

How to replicate:

$ nix build .#packages.aarch64-linux.iso_minimal
warning: Git tree '/home/mika/anduriltest/jetpack-nixos' is dirty
error: hash mismatch in fixed-output derivation '/nix/store/rr2cyni6sj6gggs3hrzdkwh88ar906ng-nv-kernel-display-driver-5f54f1d.drv':
         specified: sha256-fP54ztq4oNKgfn6LckqsOuPjYE+SB1W083DOwRNth80=
            got:    sha256-ZY3eaP6dko6GnagcJIwAEb+aZ+IYxA+SsiaYBGK42oA=
error: 1 dependencies of derivation '/nix/store/msnrzjfsadl5pfxaphbwzk6yxxbpw47w-nvidia-display-driver-jetson_35.2.1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/0jpjj04z39bvh67p3avj37lrqrvyzsyf-kernel-modules.drv' failed to build
error: 1 dependencies of derivation '/nix/store/v6b9mgw3pmmhfrsxjx17rbjhkcjgg3w2-linux-5.10.104-modules.drv' failed to build
error: 1 dependencies of derivation '/nix/store/5aaz5xfsgr04jfcfrnpkbym2rg9qrcdr-linux-5.10.104-modules-shrunk.drv' failed to build
error: 1 dependencies of derivation '/nix/store/cbxmqzlswh8hkm90xnjcch3fgwl7y5cc-nixos-system-nixos-22.11pre-git.drv' failed to build
error: 1 dependencies of derivation '/nix/store/zhin4s390wdb1nnv0wfbvv76b909j3rh-closure-info.drv' failed to build
error: 1 dependencies of derivation '/nix/store/fdfl21q1jf4y37h7hkyaipz0s09r26iy-efi-directory.drv' failed to build
error: 1 dependencies of derivation '/nix/store/fx0ay5dc5ax6sdlngbmnsic49gd20pdf-stage-1-init.sh.drv' failed to build
error: 1 dependencies of derivation '/nix/store/jkpvbqdw08wvaffciq3cyj5n0mdp69w8-nixos-22.11pre-git-aarch64-linux.iso.drv' failed to build

Is the comment in flake.nix about kernel not building with nixpkgs master still valid?

There's a comment about kernel not building against master:

inputs = {
# Kernel build fails with nixpkgs master, but not 22.05. (During dtc compilation)
# Bisected to this commit: https://github.com/NixOS/nixpkgs/commit/907b497d7e7669f3c2794ab313f8c42f80929bd6
# Likely due to DTC_FLAGS=-@ in kernel build
nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05";

but I'm wondering was this already fixed by PR #7 ?

This seems to cause confusion among people

TX2 Support

This is not a feature request, but I am curious what work would need to be done to add support for the Jetson TX2? I dug one out of storage recently and would love to run NixOS on it.

nixos-install fails on AGX Xavier

Hi, I am trying to install NixOS on AGX Xavier, as recommended to a SSD (connected as /dev/nvme0n1).

  1. I've built and run github:anduril/jetpack-nixos#flash-xavier-agx-devkit, burnt github:anduril/jetpack-nixos#iso_minimal to a USB drive, connected it and rebooted to installer.
  2. Than I've copied flake (see below) to ~/xavier/flake.nix, run sudo nix --extra-experimental-features 'nix-command flakes' run .#disko -- --mode disko --flake $(realpath .)#agx, which has formatted /dev/nvme0n1 and mount its partitions to /mnt and /mnt/boot/efi (I've checked this with lsblk -f).
  3. Next step is to run sudo nixos-install -v --no-root-password --no-channel-copy --flake .#agx

The last command fails with a message:

error: filesystem error: cannot rename: Invalid cross-device link [/mnt/nix/store/ffp5ghhsjn2nfz61a0i91dkvmibljvrg-linux-5.10.104-modules-shrunk.drv.chroot/nix/store/y4df5rclqlqacnzk7y8hp9lcp693s806-linux-5.10.104-modules-shrunk] [/nix/store/y4df5rclqlqacnzk7y8hp9lcp693s806-linux-5.10.104-modules-shrunk]

I've tried both nixos-23.05 and nixos-22.11, similar results.

What could be wrong?

My flake.nix looks like:

{
  description = "Nvidia Jetson Xavier AGX";
  #inputs.nixpkgs.url = "nixpkgs/nixos-22.11";
  inputs.nixpkgs.url = "nixpkgs/nixos-23.05";
  inputs.jetpack.url = "github:anduril/jetpack-nixos";
  nixConfig = {
    extra-trusted-substituters = [ "https://cuda-maintainers.cachix.org" ];
    extra-public-keys = [ "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" ];
  };
  inputs.disko.url = "github:nix-community/disko";
  inputs.disko.inputs.nixpkgs.follows = "nixpkgs";

  outputs = { self, nixpkgs, jetpack, disko, ... }: {
    nixosModules.disko = {
      disko.devices.disk.nixos = {
        device = "/dev/nvme0n1";
	type = "disk";
	content = {
	  type = "gpt";
	  partitions = {
	    ESP = {
	      type = "EF00"; size = "512M"; content = {
	        type = "filesystem";
		format = "vfat";
		mountpoint = "/boot/efi";
	      };
	      priority = 1;
	    };
	    root = {
	      size = "100%"; content = {
	        type = "filesystem";
		format = "btrfs";
		mountpoint = "/";
		mountOptions = [ "compress=zstd:4" ];
	      };
	    };
	  };
	};
      };
    };
    nixosConfigurations.agx = nixpkgs.lib.nixosSystem {
      system = "aarch64-linux";
      modules = [
        jetpack.nixosModules.default
        disko.nixosModules.disko
	self.nixosModules.disko
        {
          hardware.nvidia-jetpack.enable = true;
          hardware.nvidia-jetpack.som = "xavier-agx"; # Other options include orin-agx, xavier-nx, and xavier-nx-emmc
          hardware.nvidia-jetpack.carrierBoard = "devkit";
          hardware.enableAllFirmware = true;
          powerManagement.cpuFreqGovernor = "ondemand"; # from hardware
        }
	{
          boot.loader.systemd-boot.enable = true;
          #boot.loader.efi.canTouchEfiVariables = false;
          boot.loader.efi.efiSysMountPoint = "/boot/efi";
          boot.initrd.availableKernelModules = [ "nvme" "achi" "usb_storage" "usbhid" ];
          nixpkgs.hostPlatform = "aarch64-linux";
	}
	{
          nixpkgs.config.allowUnfree = true;
          nix.extraOptions = "experimental-features = nix-command flakes ca-derivations";
          nix.settings.substituters = [ "https://cuda-maintainers.cachix.org" ];
          nix.settings.trusted-public-keys = [ "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" ];
          nix.package = nixpkgs.legacyPackages.aarch64-linux.nixVersions.nix_2_17;
          nix.nixPath = [ "nixpkgs=/etc/nixos/nixpkgs" "nixos-config=/etc/nixos/config" ];
	}
	{
          i18n.supportedLocales = [ "C.UTF-8/UTF-8" "en_US.UTF-8/UTF-8"  ];
          services.xserver.enable = true;
          services.xserver.displayManager.gdm.enable = true;
          services.xserver.desktopManager.gnome.enable = true;
	}
	{
          networking.hostName = "agx";
          system.stateVersion = "23.05";

          users.mutableUsers = true;
          users.users.i = {
            isNormalUser = true;
            description = "I";
            extraGroups = [ "wheel" "networkmanager" ];
            uid = 1000;
          };
          systemd.tmpfiles.rules = [
            "L+ /etc/nixos/nixpkgs - - - - ${nixpkgs.sourceInfo.outPath}"
            "L+ /etc/nixos/config - - - - ${self.sourceInfo.outPath}"
          ];
        }
      ];
    };
    packages.aarch64-linux.disko = disko.packages.aarch64-linux.disko;
  };
}

Flashing Orin NX fails the second time

The Orin NX flash script works on a fresh Orin NX from the factory, but only the first time.
If I try to flash the same Orin NX, it then fails with the following error message:

[  19.2084 ] 000000004d4d2c01: E> NV3P_SERVER: Failed to initialize partition table from GPT.

However, this is not unrecoverable. Reportedly, if you use the l4t_initrd_flash.sh script to flash the Orin NX, it resolves this problem, and future flashes with jetpack-nixos apparently work fine....

eMMC Flash Support

I'm interested in trying to add support for generating and flashing an eMMC image to jetpack-nix. It seems like it should not be a huge undertaking. Are you guys planning on adding support? And/or would you be welcome to a contribution?

There are a few subtleties that I'm interested in before I go off and start developing. It seems like ./flash.sh expects a separate esp.img and system.img when writing to eMMC, but Nix's built in image builder creates a combined image. I suspect that you can just use the built-in L4T ESP image, but I'm not sure if that will break things. Any help or guidance you all could offer would be great.

issues/questions encountered while installing on an Orin Nano

Hi! Firstly, wanted to say thank you so much for this invaluable project. The activation energy on something like this must have been huge and I'm very glad it exists. I've had a go at smashing my way through installing on an Orin Nano with a dsboard-ornx-lan, which is a bit non-standard but hopefully good enough.

There are three main issues/questions that I've ended up hitting, and though I've in general worked around, I figured I'd check in here to see if these had been hit before/had obvious solutions.

Firmware flash

Here, actually building the firmware went well, but actually flashing consistently blows up when trying to write. I've attached a flash log. Googling, it sounds like this is because 'the configuration is wrong' but it's hard for me to actually know what parts might be differing that's causing the flash to fail. Have you seen this error before? The board provides some DTB overlays which I put in the right places.

log.txt

However, I already have EFI on my dev board so I eventually figured it was probably optional. Actually getting into the EFI boot menu sadly required a USB-to-RS232/UART/TTL/whatever connector (this weekend has been Amazon same-day-delivery heavy).

What about DTB overlays?

So, clearly, from the above, I haven't succeeded at flashing. But, it's not obvious to me how the flashing would affect kernel runtime if I then just nuke the system partition. As far as I can tell, support in jetpack-nixos for DTB overlays is limited to the flashing parts of the code - not entirely clear what those overlays actually apply to. Is that right? It seems as though my carrier board has some DTB overlays that are supposed to be applied. Should I be trying to jam these in somewhere else? I assume parts of my jetson are presently non-functional due to the absence, though have not yet found the reason. Or maybe, since the flash failed, are they still the right DTBs?

USB ports not working

It's possible that I'm just suffering from #111 combined with not having managed to flash this thing yet - this is an Orin Nano 8GB not an Orin NX, but I think it is the Nano devkit. Basically, no USB device will show up until the kernel has booted - keyboards, mass storage, etc. Serial wire fixes keyboard issue.
In the end, I discovered a pretty hacky solution, which is that if you simply mount your ISO on an HTTP endpoint, you can point the HTTP boot of the Jetson at that. It can boot enough of NixOS from there that it can then pick up the USB drive for the rest of the boot. Wild! It made sense until I realised it was mounting the USB drive and didn't work without it!

Some missing kernel modules

This was a weird one. I found that LUKS pulled in some kernel modules not supported (blowfish in particular).

A broken kernel module

This was pretty brutal to deal with. It turns out that LUKS interacts with nVidia's hardware encryption (tegra_se_nvhost) poorly - depending on how you configure LUKS it causes hangs, kernel panics, FS corruption. Generally no bueno. Thankfully, their module is seemingly the only place which writes Couldn't get free cmdbuf on the internet. In the end I disabled by setting initcall_blacklist=tegra_se_module_init, which disabled the module. With it gone, LUKS seemed happy, although presumably with less performance. On this one - do you know who I would best follow up with on this? nVidia? OE4T?

This was a bit of an essay but hopefully there are some useful bits either for project maintainers or for people who hit similar issues.

Specific questions are:

  • Should I be worried that I was unable to flash?
  • How would I go about debugging a failed flash?
  • What do I do with my DTBs?
  • Where do I follow up with regards to a broken hardware kernel module?

Where do I apply modifications (Kernel patches, devicetree blobs, etc.) for custom boards and is it possible to build from version 5.0.2?

Hello,

we are using a custom development-kit and I would like to know, how (in which file) I can apply the custom firmware to the nix-build and if it is possible to build the jetpack-nixos from Version 5.0.2.

Our customization consists of:
https://f000.backblazeb2.com/file/auvidea-download/images/Jetpack_5_0_2/Jetpack_5_0_2_Xavier_NX_JN(X)30_pre_release.zip

kernel/(Image, Image.gz, kernel_header.tbz2, kernel_supplements.tbz2)
kernel/dtb/(tegra194-.....dtb, tegra194-...dtbo, tegra234....dtb, tegra234...dtbo)

...and originally (using the NVIDIA sdkmanager) we just move the content into the
/nvidia/nvidia_sdk/JetPack_X.X.X_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra/kernel/*
folder before generating the flash-image.

How can we do this in the jetpack-nixos?

Alternatively there is as well a kernel_src folder available with a whole bunch of devicetree sources etc. - but even though I would like to - atm. I have no idea how to put that together with the jetpack-nixos.

Maybe someone can shed a little bit of light on this.

Thanks a lot in advance and have a great day,

Michael

Flashing UEFI Firmware stuck on Auvidea JNX30D

Hello community,

I am trying to follow the instructions for flashing the UEFI-firmware of anduril/jetpack-nixos on an Auvidea JNX30D - unfortunately without success, as the installer is stuck in a:

[   7.6925 ] tegrarcm_v2 --isapplet

[ 1022.7312 ] tegrarcm_v2 --ismb2

[ 2038.5395 ] tegradevflash_v2 --iscpubl

[ 2038.5405 ] CPU Bootloader is not running on device.

loop.

Is this happening due to a lack of support for the DevKIT, or is this something I could solve quite simple?

Find the full log attached.

Thanks and have a great day.

log.txt

nvidia-container-cli fails to start due to missing libnvidia-container.so.0

Hello my technological advanced friends,

I am currently intending to build GPU-accelerated containers on Jetpack-Nixos.

Relevant configuration.nix looks more or less like this:

environment = {
  systemPackages = with pkgs; [
    nvidia-docker
  ];
};
hardware = {
  nvidia = {
    modesetting.enable = true;
    nvidiaSettings = true;
    open = true;
    powerManagement.enable = true;
  };
  nvidia-jetpack = {
    carrierBoard = "devkit";
    enable = true;
    maxClock = true;
    som = "orin-nano";
  };
  opengl = {
    enable = true;
    driSupport = true;
  # driSupport32Bit = true;
    setLdLibraryPath = true;
  };
};
virtualisation.docker = {
  enable = true;
  enableNvidia = true;
};

But:

[user@JET:~/]$ nvidia-container-cli
nvidia-container-cli: Error: libnvidia-container.so.0: cannot open shared object file: No such file or directory

Does someone maybe have an idea?

Thanks and have a great day.

kernel: consider enabling `CONFIG_IP6_NF_MATCH_RPFILTER`

More recent versions of the nixpkgs will invoke both iptables and ip6tables with -m rpfilter parameter. The first works, but the second command fails (thus failing to set up the firewall fully). Upon some spelunking it seems like the it might be up to the fact that CONFIG_IP_NF_MATCH_RPFILTER=m but CONFIG_IP6_NF_MATCH_RPFILTER is not set. Similar discrepancy can be observed for most other netfilters too. That said, I just went the route of disabling IPv6 for the system, so I can’t confirm if enabling this specific module is the minimal change necessary to make things work.

Avoid recompilation of imagemagick for bootlogo

$ nix why-depends /nix/store/w08lkl4parm24hzs27iimw70k5p46rgv-flash-orin-agx-devkit.drv /nix/store/5gzi6bbbkgv7r5wd82ymbjzdhpq7l7j9-cairo-aarch64-unknown-linux-gnu-1.16.0.drv --derivation
/nix/store/w08lkl4parm24hzs27iimw70k5p46rgv-flash-orin-agx-devkit.drv
└───/nix/store/i6b07xafvn9qv5vn7i1g5524za5qyy57-jetson-firmware.drv
    └───/nix/store/qa411c13hrnzp0v2rh9qcy2g4sn7kkdd-source-patched.drv
        └───/nix/store/na26lsjkd7gqsk0hjfb7rlvpk5f7kl4p-uefi-bootlogo.drv
            └───/nix/store/50pri73ik3c6pqy00148b02mddib1r54-imagemagick-7.1.0-57.drv
                └───/nix/store/3lz5657yfl1b4cj8pcb5pbm4apzbkbyj-pango-1.50.12.drv
                    └───/nix/store/zl6ipd9kwcvda3x7pxkr95cp3lh3sgs7-gobject-introspection-wrapped-1.74.0.drv
                        └───/nix/store/9ydiy442wjk7rh3g4yiyxm2m4v2if8vi-gobject-introspection-aarch64-unknown-linux-gnu-1>
                            └───/nix/store/kzzsf92lv6nhpmwi93ja9q1pn655hrb0-absolute_gir_path.patch.drv
                                └───/nix/store/5gzi6bbbkgv7r5wd82ymbjzdhpq7l7j9-cairo-aarch64-unknown-linux-gnu-1.16.0.drv

edk2-jetson no longer builds against NixOS 23.05 after OpenSSL was patched to 1.1.1t

After this commit was merged to nixos-23.05, the edk2-jetson no longer builds.

NixOS/nixpkgs@3ed8d9b

Similar tricks probably need to be applied to the postUnpack and postPatch. There probably should be a check because a different patch needs to be applied for nixos-unstable than nixos-23.05

The build log:

@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/1s1cxkp6khzi8mp4cfdq2jbrxh445ci3-source
source root is source
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
applying patch /nix/store/ibzhl9qgac5n2gkd36zc28wgq33alj54-0021-Tweak-the-tools_>
patching file BaseTools/Conf/tools_def.template
Hunk #1 succeeded at 2280 (offset -19 lines).
Hunk #2 succeeded at 2312 (offset -19 lines).
applying patch /nix/store/4ci353xk8irz2pfh3fshchnw1jjs7wh9-attachment.cgi?id=1330
patching file CryptoPkg/Library/OpensslLib/OpensslLib.inf
Hunk #1 succeeded at 157 (offset -5 lines).
can't find file to patch at input line 13
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
|+++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
patching file CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
Hunk #1 succeeded at 157 (offset -6 lines).
can't find file to patch at input line 33
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
|+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 43
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
|+++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64>
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S
patching file CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S

Gnome on Orin AGX and Orin Nano reports memory manager issues and then errors

I could use some help here, if there is any to give! I've got an Orin AGX and an Orin Nano, both custom carrier boards from different vendors (forecr & AVerMedia). When they run NixOS and I enable Gnome through the 'gnome' settings, I get errors like this during x startup.

Jul 27 12:26:37 nixos /nix/store/jsmfi4447h39f4xrawfhajjdvnqglzqi-gdm-43.0/libexec/gdm-x-session[1085]: (II) Loading /nix/store/vl7jvh572swjsll0hrarb2967jc44lhk-nvidia-l4t-3d-core-3>
Jul 27 12:26:37 nixos /nix/store/jsmfi4447h39f4xrawfhajjdvnqglzqi-gdm-43.0/libexec/gdm-x-session[1085]: NvRmMemInitNvmap failed with Permission denied
Jul 27 12:26:37 nixos /nix/store/jsmfi4447h39f4xrawfhajjdvnqglzqi-gdm-43.0/libexec/gdm-x-session[1085]: 549: Memory Manager Not supported
Jul 27 12:26:37 nixos /nix/store/jsmfi4447h39f4xrawfhajjdvnqglzqi-gdm-43.0/libexec/gdm-x-session[1085]: ****NvRmMemInit failed**** error type: 196626
Jul 27 12:26:37 nixos /nix/store/jsmfi4447h39f4xrawfhajjdvnqglzqi-gdm-43.0/libexec/gdm-x-session[1085]: *** NvRmMemInit failed NvRmMemConstructor

X then crashes with a segfault. I don't think this is actually a permissions issue - rather I think something has exploded in a place nVidia does not expect (e.g. a missing .so file? a process unexpectedly exiting 0). If I try KDE, I get no errors (unless modesetting is on) but there are no displays - no framebuffers registered and the HDMI port does not work. I'm wondering if these two are related somehow, but not sure.

Do you have any ideas how one would go about debugging this, or have you (even better) hit something like this before? Are there configuration parameters I might be missing? I'm wondering if it's missing a library or kernel module or something which is stopping things from working nicely. I loaded the dump into gdb but the stack mostly has no relevant symbols.

Orin NX 16gb on Orin Nano DevKit has issues booting via USB on firmware 35.3.1

I found that when I updated the Jetpack Firmware to 35.3.1 using nix build .#initrd-flash-orin-nx-devkit I lose the ability to boot via USB in the UEFI menu, it does not seem to detect the device.

Flashing back to 35.2.1 seems to fix this.

I did some additional UEFI troubleshooting just to confirm it was the UEFI being built by jetpack-nixos that was the issue:

Test #1:

  • In the generated initrd script (initrd-flash-orin-nx-devki) I commented out this line:

    cp ${uefi-firmware}/uefi_jetson.bin bootloader/uefi_jetson.bin
    in order to use the mainstream 35.3.1 UEFI image that is normally written over (Jetson UEFI firmware (version 3.1-32827747 built on 2023-03-19).

  • Then, during flashing before it could boot the Linux initrd to update I hit ESC to get to the UEFI and confirmed that the UEFI could boot from the USB. However, because this was copied in after it was built it seems this version is only used for the initrd boot and is not programmed in.

Test #2

Jetson Orin NX - black screen after GRUB

Using the minimal ISO on a Jetson Orin NX, I get nothing but a black screen displayed after choosing an option in the GRUB menu. I can access the Jetson through SSH, though - it's just a display issue.

I have tried removing the video=efifb:off argument, but this has not helped. It does not cause any crashes, though.

These lines of the kernel log seem relevant:

[    0.592687] efifb: probing for efifb
[    0.592724] efifb: framebuffer at 0x440000000, using 8640k, total 8640k
[    0.592726] efifb: mode is 1920x1080x32, linelength=8192, pages=1
[    0.592727] efifb: scrolling: redraw
[    0.592730] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.592851] fbcon: Deferring console take-over
[    0.592854] fb0: EFI VGA frame buffer device
[    0.594377] tegra_dc_assign_hw_data: no matching compatible node
[    0.594406] fbcon: Taking over console
[    0.594410] tegradccommon module_init failed
[    0.594414] tegradc module_init failed
[    0.594542] Console: switching to colour frame buffer device 240x67

Optee TAs

First off, thank you for this amazing work!!

I am currently testing on the Orin AGX devkit, I tested this a week or 10 days ago and only getting to raise the question now:

I am not sure if this is a feature request or an - educate an ignorant user issue - I'm still new to nix in general, but here goes:

It appears the default TAs are built in https://github.com/anduril/jetpack-nixos/blob/master/optee.nix#L84 and https://github.com/anduril/jetpack-nixos/blob/master/optee.nix#L190.

However, they are not exported in a package, either optee-os or a potential optee-os-ta. If I scp the binaries to the target system from the /nix/store/.....ta, I can use them. Which leads to point 2.

Optee-client defaults to using /lib as the root search directory for the supplicant to load the TA from as defined by CFG_TEE_CLIENT_LOAD_PATH : https://nv-tegra.nvidia.com/r/gitweb?p=tegra/optee-src/nv-optee.git;a=blob;f=optee/optee_client/config.mk;h=24904af9cef9f504747549c3fc87fe06d27f14be;hb=5ac2ab218ba9116f1df4a0bb5092b1f6d810e8f7#l37

This is not very nix-y :) So I think that when building opteeClient https://github.com/anduril/jetpack-nixos/blob/master/optee.nix#L32 the CFG_TEE_CLIENT_LOAD_PATH should be set to the package that exports the TAs from point 1).

For some reason the OpTEE developers are not happy to set a load path, but rather it is a load path prefix which then needs a ta dev_path to be combined with it - line 82:
https://nv-tegra.nvidia.com/r/gitweb?p=tegra/optee-src/nv-optee.git;a=blob;f=optee/optee_client/tee-supplicant/src/teec_ta_load.c;h=2cb5e98170ed9dd999c45715c8113636f22a1c2b;hb=5ac2ab218ba9116f1df4a0bb5092b1f6d810e8f7#l82

Which means that the supplicant needs to be launched with -t <sub dir> to find the ta.

Summary of steps I previously followed:
Build and flash firmware, and system image
scp /nix/store/....pkcs11.ta /lib/ta
ssh
install pkcs11-tool
Stop the tee-supplicant with systemctl
manually start tee-supplicant with -t ta
then run pkcs11-tool to test the TA is loaded and responding

So ultimately, the question is: which package should export the TAs? Then this can be plugged into the CFG_TEE_CLIENT_LOAD_PATH to build the client, and the subdirectory can be passed to the systemd unit when launching the supplicant.

I had 2 proposals, not sure either is good. Either add an installPhase to buildOptee or add another package like buildOpteeTaDevKit or buildNvLuksSrv called optee-ta that exposes the tas.

Sorry! This turned into a thesis.

Usage of OpenSSL 1.1 causes flashing script builds to fail against new versions of NixOS

After this commit a829d80 flash script builds start to fail with following error, if built against latest NixOS 23.05 and nixos-unstable channel versions.

There does not seem to be easy and clean way to work around this. All workarounds I've tried involve building stuff with --impure flag. Basically only a and c work, b does not work at all.

My question is, is OpenSSL 1.1 strictly required, or could we somehow patch our way around it. Does fuse and secure boot related scripting need legacy OpenSSL?

error: Package ‘openssl-1.1.1w’ in /nix/store/3s69yxbbl116zwga3i6cy7prplywq0bn-source/pkgs/development/libraries/openssl/default.nix:210 is marked as insecure, refusing to evaluate.


       Known issues:
        - OpenSSL 1.1 is reaching its end of life on 2023/09/11 and cannot be supported through the NixOS 23.05 release cycle. https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/

       You can install it anyway by allowing this package, using the
       following methods:

       a) To temporarily allow all insecure packages, you can use an environment
          variable for a single invocation of the nix tools:

            $ export NIXPKGS_ALLOW_INSECURE=1

        Note: For `nix shell`, `nix build`, `nix develop` or any other Nix 2.4+
        (Flake) command, `--impure` must be passed in order to read this
        environment variable.

       b) for `nixos-rebuild` you can add ‘openssl-1.1.1w’ to
          `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
          like so:

            {
              nixpkgs.config.permittedInsecurePackages = [
                "openssl-1.1.1w"
              ];
            }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
          ‘openssl-1.1.1w’ to `permittedInsecurePackages` in
          ~/.config/nixpkgs/config.nix, like so:

            {
              permittedInsecurePackages = [
                "openssl-1.1.1w"
              ];
            }
(use '--show-trace' to show detailed location information)

UEFI Capsule updates not working on Xavier NX sdcard variant

The uefi capsule update mechanism fails on xavier-nx-devkit (the non-production / non-emmc variant). It works on xavier-nx-emmc-devkit.

After enabling debugging messages in EDK2, we get this message:

Update Progress -  23% **********+++++++++++++++++++++++++++++++++++++++
Overwriting active adsp-fw partition not allowed
Error writing adsp-fw, Offset=0: Write Protected
Failed to write image=adsp-fw: Write Protected
FmpDxe(NVIDIA System Firmware): SetTheImage() SetImage from FmpDeviceLib failed. Status =  Aborted.

It's possible this isn't intended to work anyway, since I'd bet the dev module gets the least attention from NVIDIA. Would be worth trying on the official image to see if this works there.

Failure to build kernel with NixOS 22.11

Kernel build fails against NixOS 22.11, but not 22.05. (During device tree compilation)
Bisected to this commit: NixOS/nixpkgs@907b497
Likely due to DTC_FLAGS=-@ in kernel build.

/nix/store/0d3wgx8x6dxdb2cpnq105z23hah07z7l-bash-5.1-p16/bin/bash: line 1:  7666 Aborted                 (core dumped) ./scripts/dtc/dtc -@ -O dtb -o arch/arm64/boot/dts/_ddot_/_ddot_/_ddot_/_ddot_/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3737-camera-imx185-overlay.dtbo -b 0 -i../arch/arm64/boot/dts/../../../../nvidia/platform/t23x/concord/kernel-dts/ -i../nvidia/soc/tegra/kernel-include -i../nvidia/platform/tegra/common/kernel-dts -i../nvidia/soc/t210/kernel-dts -i../nvidia/platform/t210/common/kernel-dts -i../nvidia/platform/t210b01/common/kernel-dts -i../nvidia/soc/t18x/kernel-include -i../nvidia/soc/t18x/kernel-dts -i../nvidia/platform/t18x/common/kernel-dts -i../nvidia/soc/t19x/kernel-include -i../nvidia/soc/t19x/kernel-dts -i../nvidia/platform/t19x/common/kernel-dts -i../nvidia/platform/t19x/automotive/kernel-dts/common -i../nvidia/soc/t23x/kernel-include -i../nvidia/soc/t23x/kernel-dts -i../nvidia/platform/t23x/common/kernel-dts -i../nvidia/platform/t23x/automotive/kernel-dts/common/linux/ -i../nvidia/platform/t19x/ -i../scripts/dtc/include-prefixes -@ -d arch/arm64/boot/dts/_ddot_/_ddot_/_ddot_/_ddot_/nvidia/platform/t23x/concord/kernel-dts/.tegra234-p3737-camera-imx185-overlay.dtbo.d.dtc.tmp arch/arm64/boot/dts/_ddot_/_ddot_/_ddot_/_ddot_/nvidia/platform/t23x/concord/kernel-dts/.tegra234-p3737-camera-imx185-overlay.dtbo.dts.tmp

Unable to flash jetson xavier agx: /result leads to broken nix store symlink

$USER@$HOST:~$ nix build github:anduril/jetpack-nixos#flash-xavier-agx-devkit
$USER@$HOST:~$ lsusb | grep -i NVIDIA
Bus 001 Device 012: ID 0955:7020 NVIDIA Corp. L4T (Linux for Tegra) running on Tegra
$USER@$HOST:~$ sudo ./result/bin/flash-xavier-agx-devkit
###############################################################################
# L4T BSP Information:
# R35 , REVISION: 3.1
###############################################################################
Error: probing the target board failed.
       Make sure the target board is connected through 
       USB port and is in recovery mode.
$USER@$HOST:~$ find /nix/store -name "*flash-xavier-agx-devkit*"
/nix/store/9q3wdfllnz7hxmxa69dd6qmg4n8rzkf5-flash-xavier-agx-devkit.drv
$USER@$HOST:~$ readlink ./result
/nix/store/3j6crsjaj34pwcz8g2fimjzabzw8vn0p-flash-xavier-agx-devkit
$USER@$HOST:~$ nix build --rebuild github:anduril/jetpack-nixos#flash-xavier-agx-devkit
$USER@$HOST:~$ nix show-derivation /nix/store/9q3wdfllnz7hxmxa69dd6qmg4n8rzkf5-flash-xavier-agx-devkit.drv
warning: 'show-derivation' is a deprecated alias for 'derivation show'
warning: The interpretation of store paths arguments ending in `.drv` recently changed. If this command is now failing try again with '/nix/store/9q3wdfllnz7hxmxa69dd6qmg4n8rzkf5-flash-xavier-agx-devkit.drv^*'
{
  "/nix/store/9q3wdfllnz7hxmxa69dd6qmg4n8rzkf5-flash-xavier-agx-devkit.drv": {
    "args": [
      "-e",
      "/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh"
    ],
    "builder": "/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16/bin/bash",
    "env": {
      "allowSubstitutes": "",
      "buildCommand": "target=$out'/bin/flash-xavier-agx-devkit'\nmkdir -p \"$(dirname \"$target\")\"\n\nif [ -e \"$textPath\" ]; then\n  mv \"$textPath\" \"$target\"\nelse\n  echo -n \"$text\" > \"$target\"\nfi\n\neval \"$checkPhase\"\n\n(test -n \"$executable\" && chmod +x \"$target\") || true\n",
      "buildInputs": "",
      "builder": "/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16/bin/bash",
      "checkPhase": "runHook preCheck\n/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16/bin/bash -n -O extglob \"$target\"\n/nix/store/dprm40pyd9w4dzp93ph23rn72wcfpwky-shellcheck-0.8.0-bin/bin/shellcheck \"$target\"\nrunHook postCheck\n",
      "cmakeFlags": "",
      "configureFlags": "",
      "depsBuildBuild": "",
      "depsBuildBuildPropagated": "",
      "depsBuildTarget": "",
      "depsBuildTargetPropagated": "",
      "depsHostHost": "",
      "depsHostHostPropagated": "",
      "depsTargetTarget": "",
      "depsTargetTargetPropagated": "",
      "doCheck": "",
      "doInstallCheck": "",
      "enableParallelBuilding": "1",
      "enableParallelChecking": "1",
      "executable": "1",
      "mesonFlags": "",
      "name": "flash-xavier-agx-devkit",
      "nativeBuildInputs": "",
      "out": "/nix/store/3j6crsjaj34pwcz8g2fimjzabzw8vn0p-flash-xavier-agx-devkit",
      "outputs": "out",
      "passAsFile": "buildCommand text",
      "patches": "",
      "preferLocalBuild": "1",
      "propagatedBuildInputs": "",
      "propagatedNativeBuildInputs": "",
      "stdenv": "/nix/store/6ys7v7zc0qdlnpzgj23dp8arlp90zb6q-stdenv-linux",
      "strictDeps": "",
      "system": "x86_64-linux",
      "text": "#!/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16/bin/bash\nset -o errexit\nset -o nounset\nset -o pipefail\n\nset -euo pipefail\n\nif [[ -z ${WORKDIR-} ]]; then\n  WORKDIR=$(mktemp -d)\n  function on_exit() {\n    rm -rf \"$WORKDIR\"\n  }\n  trap on_exit EXIT\nfi\n\ncp -r /nix/store/qg64175d5ffnsmh1h0mr01r5jkf2n455-flash-tools-35.3.1/. \"$WORKDIR\"\nchmod -R u+w \"$WORKDIR\"\ncd \"$WORKDIR\"\n\n# Make nvidia's flash script happy by adding all this stuff to our PATH\nexport PATH=/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1/bin:/nix/store/njz77ksdp38vy6wyb9bq70dzfjxm5im0-gnugrep-3.7/bin:/nix/store/scmjiz80b1hh521k06z4fgbkl6r5k84p-gnused-4.8/bin:/nix/store/y92har9bzzdb54b5scxx258cid5z56f8-gnutar-1.34/bin:/nix/store/pndr3yb60iqx4igydv2irxi6s6y8rbvb-gawk-5.1.1/bin:/nix/store/n5bybpjnzvlciwvma3ycn96pzdp803x7-xxd-vim-9.0.0609/bin:/nix/store/8cgpz6595w6ygw94rhifisnh7c8kwx09-which-2.21/bin:/nix/store/88k0f4k4hb13mjqm1xc0sysjysrrw813-gzip-1.12/bin:/nix/store/abj6dl2cy91zarym3y21ffdh23qz3wig-cpio-2.13/bin:/nix/store/pnajkjw1fz03z1x27ski1qbx9n3hd4df-binutils-2.39/bin:/nix/store/vmm828xyvm8pjwjbx33n7z9r45vv1lk3-findutils-4.9.0/bin:/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9/bin:/nix/store/aany0cjkaxk4p818rbz4i8s9cmpqyr8k-util-linux-2.38.1-bin/bin:/nix/store/w8xxifv22x7c2vhsbm6vy8xzzkmimfwp-dosfstools-4.2/bin:/nix/store/zrxskb6gpsgr9amx36254360by5m0gry-lz4-1.9.4-bin/bin:/nix/store/0h70hkjwqg8vhmxcfq1fdpn0cjbmffh9-bc-1.07.1/bin:/nix/store/yg07gnwdqf02zvg7yr2cxb364f5m27qc-openssl-3.0.7-bin/bin:/nix/store/a12yx0i0xh7i39bahq13jhmfplmn69ar-gcc-wrapper-11.3.0/bin:/nix/store/f0z49mirnq0pwvykg0x5r3nkzk0bb4md-dtc-1.6.1/bin:$PATH\n\nexport NO_ROOTFS=1\nexport NO_RECOVERY_IMG=1\nexport NO_ESP_IMG=1\n\nexport ADDITIONAL_DTB_OVERLAY=${ADDITIONAL_DTB_OVERLAY:+$ADDITIONAL_DTB_OVERLAY,}\n\ncp /nix/store/y7w5b4lq95q36vmjnwlbdk3dw6cz96xd-flash.xml flash.xml\ncp -r /nix/store/hly8pdcyp4mxyfslh953n936gd9w86vr-linux-aarch64-unknown-linux-gnu-5.10.104/dtbs/. kernel/dtb/\ncp /nix/store/byy0l3qg7r1kfrcicykjkdj501xmn3vh-uefi-firmware-35.3.1/uefi_jetson.bin bootloader/uefi_jetson.bin\n\n# For normal NixOS usage, we'd probably use systemd-boot or GRUB instead,\n# but lets replace the upstream L4TLauncher EFI payload anyway\ncp /nix/store/byy0l3qg7r1kfrcicykjkdj501xmn3vh-uefi-firmware-35.3.1/L4TLauncher.efi bootloader/BOOTAA64.efi\n\n# Replace additional dtbos\ncp /nix/store/byy0l3qg7r1kfrcicykjkdj501xmn3vh-uefi-firmware-35.3.1/dtbs/*.dtbo kernel/dtb/\n\ncp /nix/store/0yvwnah3j9yyxvhrbrzhbw7kbjz1ppni-tos.img/tos.img bootloader/tos-optee_t194.img\n\n\n\n\n\nchmod -R u+w .\n\n./flash.sh -c flash.xml \"$@\" jetson-agx-xavier-devkit mmcblk0p1\n\n\n"    },
    "inputDrvs": {
      "/nix/store/1y1hi2jx3kqzzlp7r0473s68l2iyi24h-gcc-wrapper-11.3.0.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/3w4yfydb4vjadlz1cxzcm0a1b4wwckbj-dosfstools-4.2.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/3wxb3alyz4vrbmgmhxw9wbrbmwn8vkyj-cpio-2.13.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/4dcksb1rdxfpcyps6iyv2pky7y894n5d-flash.xml.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/5aq55xrk56fg9bhzn8mmbk04ahs007q9-tos.img.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/5x8nvql0zjxb5n55jgr0a3n5bmqcybar-bash-5.1-p16.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/6wijaadpswnbksxd6bw8qqbxj9wmbirw-flash-tools-35.3.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/8zxiwykib8c90nh7yll877lzrd2a1wav-findutils-4.9.0.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/96k11h9wn1glhris8cmsj408ikpkf0v1-xxd-vim-9.0.0609.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/axvd32pkawrnky4yc8y75adrd7ndb88z-gawk-5.1.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/bhm2l56p3pcccrzx3wgp78dzvyiyq4d6-util-linux-2.38.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "bin"
        ]
      },
      "/nix/store/c8dhxdjmi2xcf592sx03w3jkgyrx4cp6-stdenv-linux.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/chkav05z0820fp3bh3kccpv7km4qlx0h-linux-aarch64-unknown-linux-gnu-5.10.104.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/dqh3xff3mdy1dm60k9hgxjk8dd4h77v1-python3-3.10.9.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/g3zwijhd0y01wr4d2i668rnsz1r6j8lm-bc-1.07.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/gf4579x6sk0bxb3lz2mfj51w3kc5cp1s-lz4-1.9.4.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "bin"
        ]
      },
      "/nix/store/gly2kgiwllgjwyvrlyy59yp3lvwkrfqc-gnugrep-3.7.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/hd6px7vzb5lvfjanb3g8mm5sc7fnxqxr-shellcheck-0.8.0.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "bin"
        ]
      },
      "/nix/store/hfin0xjh3hcij48z381kk7dng81ahhh6-dtc-1.6.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/icii0x0mf462rm9x3pafh8h88w8aikvi-openssl-3.0.7.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "bin"
        ]
      },
      "/nix/store/if6l4dn87gjjcc2c0nals86si20rlhgj-coreutils-9.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/j6lfncr1mvyxd533h4b89rl657hqir2r-gnused-4.8.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/mff9ms6jbhkycgjgznsihlbx6cg7kh6p-uefi-firmware-35.3.1.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/q1qyxkl7ip82f3gc175axl2dnvkay3fc-gzip-1.12.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/sdr9mfr55mxgq6lnxz4przpdkk4hr8lb-which-2.21.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/v9i0ddfbavk71vsy636r5p72hg0c1q1r-gnutar-1.34.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      },
      "/nix/store/zd1kj9p8qdhlbj0fcp8r4rd6vynvljcq-binutils-2.39.drv": {
        "dynamicOutputs": {},
        "outputs": [
          "out"
        ]
      }
    },
    "inputSrcs": [
      "/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh"
    ],
    "name": "flash-xavier-agx-devkit",
    "outputs": {
      "out": {
        "path": "/nix/store/3j6crsjaj34pwcz8g2fimjzabzw8vn0p-flash-xavier-agx-devkit"
      }
    },
    "system": "x86_64-linux"
  }
}
$USER@$HOST:~$ nix-store -q --tree /nix/store/3j6crsjaj34pwcz8g2fimjzabzw8vn0p-flash-xavier-agx-devkit | tee -a treepath.txt
/nix/store/3j6crsjaj34pwcz8g2fimjzabzw8vn0p-flash-xavier-agx-devkit
├───/nix/store/0h70hkjwqg8vhmxcfq1fdpn0cjbmffh9-bc-1.07.1
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224
│   │   ├───/nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2
│   │   │   ├───/nix/store/34xlpp3j3vy7ksn09zh44f1c04w77khf-libunistring-1.0
│   │   │   │   └───/nix/store/34xlpp3j3vy7ksn09zh44f1c04w77khf-libunistring-1.0 [...]
│   │   │   └───/nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2 [...]
│   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
│   └───/nix/store/dnilm9pzbpzfs2sa1jswppwq6mkb4ihm-readline-6.3p08
│       ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│       └───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
├───/nix/store/0yvwnah3j9yyxvhrbrzhbw7kbjz1ppni-tos.img
├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   └───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
├───/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
│   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13
│   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/brmjip0wviknyi75bqddyda45m1rnw2i-sqlite-3.39.4
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   └───/nix/store/brmjip0wviknyi75bqddyda45m1rnw2i-sqlite-3.39.4 [...]
│   ├───/nix/store/dnilm9pzbpzfs2sa1jswppwq6mkb4ihm-readline-6.3p08 [...]
│   ├───/nix/store/f1n473kbcxxr38f7amwf4sxyi56mfczh-expat-2.5.0
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/f1n473kbcxxr38f7amwf4sxyi56mfczh-expat-2.5.0 [...]
│   ├───/nix/store/fmyln3w1g62jfyqg5ibkj149hd523h2x-libffi-3.4.4
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/fmyln3w1g62jfyqg5ibkj149hd523h2x-libffi-3.4.4 [...]
│   ├───/nix/store/h0qpdx207x5r5ig7v6kdwr892li9q6mq-openssl-3.0.7
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/h0qpdx207x5r5ig7v6kdwr892li9q6mq-openssl-3.0.7 [...]
│   ├───/nix/store/p9h078icxj3axz7f6vxyb1jmi2yx94wa-tzdata-2022g
│   ├───/nix/store/pd9dj3v0via2qqc7c5iawjf7xkvlfcq7-mailcap-2.1.53
│   ├───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7 [...]
│   ├───/nix/store/v5282ivfrmrz17qbalqhnpwf0crx0hdk-bzip2-1.0.8
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/v5282ivfrmrz17qbalqhnpwf0crx0hdk-bzip2-1.0.8 [...]
│   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   ├───/nix/store/x9rqpj9x7zcql2lj4mcpw7vk555qflfd-gdbm-1.23
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/x9rqpj9x7zcql2lj4mcpw7vk555qflfd-gdbm-1.23 [...]
│   └───/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9 [...]
├───/nix/store/88k0f4k4hb13mjqm1xc0sysjysrrw813-gzip-1.12
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   └───/nix/store/88k0f4k4hb13mjqm1xc0sysjysrrw813-gzip-1.12 [...]
├───/nix/store/8cgpz6595w6ygw94rhifisnh7c8kwx09-which-2.21
│   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/2zr7ayk7b65wn7f8ccwxq814siafmawr-attr-2.5.1
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/2zr7ayk7b65wn7f8ccwxq814siafmawr-attr-2.5.1 [...]
│   ├───/nix/store/305gzzac3s0gign6cg6fb43z94am0s17-acl-2.3.1
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/2zr7ayk7b65wn7f8ccwxq814siafmawr-attr-2.5.1 [...]
│   │   └───/nix/store/305gzzac3s0gign6cg6fb43z94am0s17-acl-2.3.1 [...]
│   ├───/nix/store/di1836768x1kq0i8ll54crasbnyjxlfw-gmp-with-cxx-stage4-6.2.1
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   └───/nix/store/di1836768x1kq0i8ll54crasbnyjxlfw-gmp-with-cxx-stage4-6.2.1 [...]
│   └───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
├───/nix/store/njz77ksdp38vy6wyb9bq70dzfjxm5im0-gnugrep-3.7
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/z4953g4d70b04sny7bin2n0zmgg7396z-pcre-8.45
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/z4953g4d70b04sny7bin2n0zmgg7396z-pcre-8.45 [...]
│   └───/nix/store/njz77ksdp38vy6wyb9bq70dzfjxm5im0-gnugrep-3.7 [...]
├───/nix/store/a12yx0i0xh7i39bahq13jhmfplmn69ar-gcc-wrapper-11.3.0
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   ├───/nix/store/gfsg0n19r8q8v69kwwjvx4m2y77vi7i8-glibc-2.35-224-bin
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/gfsg0n19r8q8v69kwwjvx4m2y77vi7i8-glibc-2.35-224-bin [...]
│   ├───/nix/store/bq928ff6m7lvcfyvcdvgvqxhqi5f3ijq-glibc-2.35-224-dev
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/gfsg0n19r8q8v69kwwjvx4m2y77vi7i8-glibc-2.35-224-bin [...]
│   │   └───/nix/store/i38jcxrwa4fxk2b7acxircpi399kyixw-linux-headers-6.0
│   ├───/nix/store/kny46nl4gq9415qqnhmwpfvn2376399m-expand-response-params
│   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   ├───/nix/store/fxg62wi3vym2fd2d5ligiwhhd03prprs-binutils-wrapper-2.39
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/gfsg0n19r8q8v69kwwjvx4m2y77vi7i8-glibc-2.35-224-bin [...]
│   │   ├───/nix/store/bq928ff6m7lvcfyvcdvgvqxhqi5f3ijq-glibc-2.35-224-dev [...]
│   │   ├───/nix/store/kny46nl4gq9415qqnhmwpfvn2376399m-expand-response-params [...]
│   │   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   │   ├───/nix/store/pnajkjw1fz03z1x27ski1qbx9n3hd4df-binutils-2.39
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   └───/nix/store/pnajkjw1fz03z1x27ski1qbx9n3hd4df-binutils-2.39 [...]
│   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   └───/nix/store/fxg62wi3vym2fd2d5ligiwhhd03prprs-binutils-wrapper-2.39 [...]
│   ├───/nix/store/njz77ksdp38vy6wyb9bq70dzfjxm5im0-gnugrep-3.7 [...]
│   ├───/nix/store/s652h8znmysdbxcmwlzzcwrj6bb1xyln-gcc-11.3.0
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   ├───/nix/store/bq928ff6m7lvcfyvcdvgvqxhqi5f3ijq-glibc-2.35-224-dev [...]
│   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   └───/nix/store/s652h8znmysdbxcmwlzzcwrj6bb1xyln-gcc-11.3.0 [...]
│   └───/nix/store/a12yx0i0xh7i39bahq13jhmfplmn69ar-gcc-wrapper-11.3.0 [...]
├───/nix/store/aany0cjkaxk4p818rbz4i8s9cmpqyr8k-util-linux-2.38.1-bin
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
│   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   ├───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   ├───/nix/store/4q059vhyc419r96qskj6r1hw53w7gi69-audit-2.8.5
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   └───/nix/store/4q059vhyc419r96qskj6r1hw53w7gi69-audit-2.8.5 [...]
│   │   ├───/nix/store/bfm9axjyzch0rp6nyfw01jsy82bfzmq3-db-4.8.30
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   │   └───/nix/store/bfm9axjyzch0rp6nyfw01jsy82bfzmq3-db-4.8.30 [...]
│   │   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   │   └───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2 [...]
│   ├───/nix/store/3020r7abf2i114s4il4mbh2jcwqgj8ra-util-linux-2.38.1-lib
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/3020r7abf2i114s4il4mbh2jcwqgj8ra-util-linux-2.38.1-lib [...]
│   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   ├───/nix/store/sf1qmjj1im2xnmdvcpghq2h5b06z5rz2-systemd-251.7
│   │   ├───/nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2 [...]
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   ├───/nix/store/4q059vhyc419r96qskj6r1hw53w7gi69-audit-2.8.5 [...]
│   │   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   │   ├───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2 [...]
│   │   ├───/nix/store/mxvzd9gwb4n8rzqfxl3q4cn7s4dqp3fl-libgpg-error-1.45
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/mxvzd9gwb4n8rzqfxl3q4cn7s4dqp3fl-libgpg-error-1.45 [...]
│   │   ├───/nix/store/2x5xichjv0kbr5imrgnz3k6x721cdil5-libgcrypt-1.10.1
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/mxvzd9gwb4n8rzqfxl3q4cn7s4dqp3fl-libgpg-error-1.45 [...]
│   │   │   └───/nix/store/2x5xichjv0kbr5imrgnz3k6x721cdil5-libgcrypt-1.10.1 [...]
│   │   ├───/nix/store/305gzzac3s0gign6cg6fb43z94am0s17-acl-2.3.1 [...]
│   │   ├───/nix/store/4xjdzyapv4bgzbllk456i6956lv3x29c-libapparmor-3.1.2
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/4xjdzyapv4bgzbllk456i6956lv3x29c-libapparmor-3.1.2 [...]
│   │   ├───/nix/store/5bqf9dxfgksdqwak8dlqi1qxz7r0mgxh-getent-glibc-2.35-224
│   │   │   └───/nix/store/gfsg0n19r8q8v69kwwjvx4m2y77vi7i8-glibc-2.35-224-bin [...]
│   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   ├───/nix/store/9k6scgr6krhlfl70hv7yjjf7rhlxiifz-util-linux-minimal-2.38.1-lib
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/9k6scgr6krhlfl70hv7yjjf7rhlxiifz-util-linux-minimal-2.38.1-lib [...]
│   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   ├───/nix/store/637cs8d29vj752p0z9kldp95s24bcszs-util-linux-minimal-2.38.1-bin
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   │   │   ├───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2 [...]
│   │   │   ├───/nix/store/9k6scgr6krhlfl70hv7yjjf7rhlxiifz-util-linux-minimal-2.38.1-lib [...]
│   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   ├───/nix/store/ws7z9y9893gh3ipag3ih1qwaf6xrblz9-shadow-4.11.1
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   ├───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2 [...]
│   │   │   │   ├───/nix/store/gfsg0n19r8q8v69kwwjvx4m2y77vi7i8-glibc-2.35-224-bin [...]
│   │   │   │   └───/nix/store/ws7z9y9893gh3ipag3ih1qwaf6xrblz9-shadow-4.11.1 [...]
│   │   │   ├───/nix/store/x4dwbp9k0cjjwgbrbg6dysrzrrbrb46y-libcap-ng-0.8.3
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/x4dwbp9k0cjjwgbrbg6dysrzrrbrb46y-libcap-ng-0.8.3 [...]
│   │   │   └───/nix/store/637cs8d29vj752p0z9kldp95s24bcszs-util-linux-minimal-2.38.1-bin [...]
│   │   ├───/nix/store/8qxl4zyhhar0ala86s83cvklfhk4mdwj-gnupg-2.3.7
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/mxvzd9gwb4n8rzqfxl3q4cn7s4dqp3fl-libgpg-error-1.45 [...]
│   │   │   ├───/nix/store/2x5xichjv0kbr5imrgnz3k6x721cdil5-libgcrypt-1.10.1 [...]
│   │   │   ├───/nix/store/5nv91cy25zh17vv2yk092pgdqv47kg8b-npth-1.6
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   └───/nix/store/5nv91cy25zh17vv2yk092pgdqv47kg8b-npth-1.6 [...]
│   │   │   ├───/nix/store/qmc8jlk004h4phdanfsrg1hlcxk3mnk1-libassuan-2.5.5
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/mxvzd9gwb4n8rzqfxl3q4cn7s4dqp3fl-libgpg-error-1.45 [...]
│   │   │   │   └───/nix/store/qmc8jlk004h4phdanfsrg1hlcxk3mnk1-libassuan-2.5.5 [...]
│   │   │   └───/nix/store/8qxl4zyhhar0ala86s83cvklfhk4mdwj-gnupg-2.3.7 [...]
│   │   ├───/nix/store/9xvdy2gmc4ynrh1wcmp3k6hhqnqbyicd-kexec-tools-2.0.25
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   ├───/nix/store/a4s2hz5q838s0c77wm5dnygrfafq61cw-iptables-1.8.8
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/2bkxs46nlmrxkcxjvg1zp6n27085c73k-libnfnetlink-1.0.2
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/2bkxs46nlmrxkcxjvg1zp6n27085c73k-libnfnetlink-1.0.2 [...]
│   │   │   ├───/nix/store/rnk84bfy4srmyssl5j977hy2zfxbr27y-libmnl-1.0.5
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/rnk84bfy4srmyssl5j977hy2zfxbr27y-libmnl-1.0.5 [...]
│   │   │   ├───/nix/store/g4pvflgs7qy2hajwazi5bcbpfn5958wn-libnftnl-1.2.4
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/rnk84bfy4srmyssl5j977hy2zfxbr27y-libmnl-1.0.5 [...]
│   │   │   │   └───/nix/store/g4pvflgs7qy2hajwazi5bcbpfn5958wn-libnftnl-1.2.4 [...]
│   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   ├───/nix/store/gbmdq8ma3afdq9rri08a57dmsw0r178v-libpcap-1.10.1
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   └───/nix/store/gbmdq8ma3afdq9rri08a57dmsw0r178v-libpcap-1.10.1 [...]
│   │   │   ├───/nix/store/h5prfgfzl44vll604dsx5rv2ayp4kdhm-libnetfilter_conntrack-1.0.9
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/2bkxs46nlmrxkcxjvg1zp6n27085c73k-libnfnetlink-1.0.2 [...]
│   │   │   │   ├───/nix/store/rnk84bfy4srmyssl5j977hy2zfxbr27y-libmnl-1.0.5 [...]
│   │   │   │   └───/nix/store/h5prfgfzl44vll604dsx5rv2ayp4kdhm-libnetfilter_conntrack-1.0.9 [...]
│   │   │   └───/nix/store/a4s2hz5q838s0c77wm5dnygrfafq61cw-iptables-1.8.8 [...]
│   │   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   │   ├───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   │   └───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2 [...]
│   │   ├───/nix/store/xryxkg022p5vnlyyyx58csbmfc7ydsdp-curl-7.86.0
│   │   │   ├───/nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2 [...]
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/6n84642sa6yfh4j1ig92gf3502pw5lvd-nghttp2-1.49.0-lib
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/6n84642sa6yfh4j1ig92gf3502pw5lvd-nghttp2-1.49.0-lib [...]
│   │   │   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   ├───/nix/store/ln61irss154s5riy9cl17zdqvbk6pw9j-brotli-1.0.9-lib
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/ln61irss154s5riy9cl17zdqvbk6pw9j-brotli-1.0.9-lib [...]
│   │   │   ├───/nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   ├───/nix/store/z1rv0s5zvn9gzw57q4pnw5snkfra63cz-keyutils-1.6.3-lib
│   │   │   │   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/mpawl5cqbibwndh0imy0in88cdrpfq5y-libkrb5-1.20 [...]
│   │   │   ├───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2 [...]
│   │   │   ├───/nix/store/yx88f7vj5hyfa6y1khrz3fk4ipqf5zbc-libssh2-1.10.0
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   │   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   │   └───/nix/store/yx88f7vj5hyfa6y1khrz3fk4ipqf5zbc-libssh2-1.10.0 [...]
│   │   │   └───/nix/store/xryxkg022p5vnlyyyx58csbmfc7ydsdp-curl-7.86.0 [...]
│   │   ├───/nix/store/cr298wrm66wc6a1dnw2kl18q055gpgga-tpm2-tss-3.2.0
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   │   │   ├───/nix/store/rdl1fc19w3i8gs75c360clwl7m1015nd-json-c-0.16
│   │   │   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/xryxkg022p5vnlyyyx58csbmfc7ydsdp-curl-7.86.0 [...]
│   │   │   └───/nix/store/cr298wrm66wc6a1dnw2kl18q055gpgga-tpm2-tss-3.2.0 [...]
│   │   ├───/nix/store/dqgg81l2d07gi28q2jqby8bcr4hbilxd-libcap-2.66-lib
│   │   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   │   ├───/nix/store/g8cqjfb9awffqwa1l95hmdnxbqnj0x85-kbd-2.5.1
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   ├───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2 [...]
│   │   │   ├───/nix/store/86zmbdb5acrmf7z0r2vgpy78rw9c0bsi-bzip2-1.0.8-bin
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/v5282ivfrmrz17qbalqhnpwf0crx0hdk-bzip2-1.0.8 [...]
│   │   │   ├───/nix/store/88k0f4k4hb13mjqm1xc0sysjysrrw813-gzip-1.12 [...]
│   │   │   ├───/nix/store/bi6ryx26yxzhwq5z8qgvkd68qijjrcaz-xz-5.2.7-bin
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7 [...]
│   │   │   ├───/nix/store/c8ilyp1qq3pkmngm1sc445x8m6xv4xx7-zstd-1.5.2-bin
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   │   │   ├───/nix/store/njz77ksdp38vy6wyb9bq70dzfjxm5im0-gnugrep-3.7 [...]
│   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   ├───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2 [...]
│   │   │   │   └───/nix/store/c8ilyp1qq3pkmngm1sc445x8m6xv4xx7-zstd-1.5.2-bin [...]
│   │   │   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   │   │   └───/nix/store/g8cqjfb9awffqwa1l95hmdnxbqnj0x85-kbd-2.5.1 [...]
│   │   ├───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7 [...]
│   │   ├───/nix/store/v5282ivfrmrz17qbalqhnpwf0crx0hdk-bzip2-1.0.8 [...]
│   │   ├───/nix/store/qd1qbi0gqp5q4dph8qbyxfqxx8yzsg9f-elfutils-0.188
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   ├───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7 [...]
│   │   │   ├───/nix/store/v5282ivfrmrz17qbalqhnpwf0crx0hdk-bzip2-1.0.8 [...]
│   │   │   ├───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2 [...]
│   │   │   └───/nix/store/qd1qbi0gqp5q4dph8qbyxfqxx8yzsg9f-elfutils-0.188 [...]
│   │   ├───/nix/store/ib3fi13r39430vkdkifyg6fffm14a3xg-libbpf-1.0.1
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   ├───/nix/store/qd1qbi0gqp5q4dph8qbyxfqxx8yzsg9f-elfutils-0.188 [...]
│   │   │   └───/nix/store/ib3fi13r39430vkdkifyg6fffm14a3xg-libbpf-1.0.1 [...]
│   │   ├───/nix/store/in43bss4q20sj0dvrk7f6wajya46pl7p-lz4-1.9.4
│   │   │   └───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/jdx6k9l854yiidygcbv5w93rvs7kcawi-libmicrohttpd-0.9.71
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/6yg0df96pz7bxm53jgqdaarr1d3aza36-gnutls-3.7.8
│   │   │   │   ├───/nix/store/34xlpp3j3vy7ksn09zh44f1c04w77khf-libunistring-1.0 [...]
│   │   │   │   ├───/nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2 [...]
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   │   │   ├───/nix/store/d8bb12pnsr0lfb5jjh81w687dbxn3mx4-gmp-with-cxx-6.2.1
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   │   │   │   └───/nix/store/d8bb12pnsr0lfb5jjh81w687dbxn3mx4-gmp-with-cxx-6.2.1 [...]
│   │   │   │   ├───/nix/store/2lv8hz5kd6v6z0173hblhxy21sp5cafw-nettle-3.8.1
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/d8bb12pnsr0lfb5jjh81w687dbxn3mx4-gmp-with-cxx-6.2.1 [...]
│   │   │   │   │   └───/nix/store/2lv8hz5kd6v6z0173hblhxy21sp5cafw-nettle-3.8.1 [...]
│   │   │   │   ├───/nix/store/88l6dz1lkmzfh7is3qm1qbna7jxsm9wf-libtasn1-4.19.0
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   └───/nix/store/88l6dz1lkmzfh7is3qm1qbna7jxsm9wf-libtasn1-4.19.0 [...]
│   │   │   │   ├───/nix/store/a1d5r07mdm4kl2a1difdlzr2snafkpqb-p11-kit-0.24.1
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/88l6dz1lkmzfh7is3qm1qbna7jxsm9wf-libtasn1-4.19.0 [...]
│   │   │   │   │   ├───/nix/store/fmyln3w1g62jfyqg5ibkj149hd523h2x-libffi-3.4.4 [...]
│   │   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   │   └───/nix/store/a1d5r07mdm4kl2a1difdlzr2snafkpqb-p11-kit-0.24.1 [...]
│   │   │   │   ├───/nix/store/b7zkcl4sp2mv6dxyx86liimk6jbfpi5s-unbound-1.17.0-lib
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/d8bb12pnsr0lfb5jjh81w687dbxn3mx4-gmp-with-cxx-6.2.1 [...]
│   │   │   │   │   ├───/nix/store/2lv8hz5kd6v6z0173hblhxy21sp5cafw-nettle-3.8.1 [...]
│   │   │   │   │   ├───/nix/store/7zx8jch1cmdzpgm3kw69bb2166hs29wx-libevent-2.1.12
│   │   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   │   └───/nix/store/7zx8jch1cmdzpgm3kw69bb2166hs29wx-libevent-2.1.12 [...]
│   │   │   │   │   └───/nix/store/b7zkcl4sp2mv6dxyx86liimk6jbfpi5s-unbound-1.17.0-lib [...]
│   │   │   │   ├───/nix/store/b9lgp56kp48c82g5v3jb0v54dckrxxv5-dns-root-data-2019-01-11
│   │   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   │   └───/nix/store/6yg0df96pz7bxm53jgqdaarr1d3aza36-gnutls-3.7.8 [...]
│   │   │   └───/nix/store/jdx6k9l854yiidygcbv5w93rvs7kcawi-libmicrohttpd-0.9.71 [...]
│   │   ├───/nix/store/jj0vjbhb58cxx21g3hya5rvms3nxavmg-libfido2-1.12.0
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   │   │   ├───/nix/store/cmvfbn1ak1nz86d2mxc8bb05ngq22v9s-libcbor-0.9.0
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/cmvfbn1ak1nz86d2mxc8bb05ngq22v9s-libcbor-0.9.0 [...]
│   │   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   │   ├───/nix/store/iywfjzc5kz7wxz4d9rc5slavpsjggg0s-systemd-minimal-251.7
│   │   │   │   ├───/nix/store/5mh5019jigj0k14rdnjam1xwk5avn1id-libidn2-2.3.2 [...]
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   │   │   │   ├───/nix/store/4q059vhyc419r96qskj6r1hw53w7gi69-audit-2.8.5 [...]
│   │   │   │   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   │   │   │   ├───/nix/store/2c5nd9pd0y4v5crav575i4aj0ddvyg4v-linux-pam-1.5.2 [...]
│   │   │   │   ├───/nix/store/305gzzac3s0gign6cg6fb43z94am0s17-acl-2.3.1 [...]
│   │   │   │   ├───/nix/store/5bqf9dxfgksdqwak8dlqi1qxz7r0mgxh-getent-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/9k6scgr6krhlfl70hv7yjjf7rhlxiifz-util-linux-minimal-2.38.1-lib [...]
│   │   │   │   ├───/nix/store/637cs8d29vj752p0z9kldp95s24bcszs-util-linux-minimal-2.38.1-bin [...]
│   │   │   │   ├───/nix/store/9xvdy2gmc4ynrh1wcmp3k6hhqnqbyicd-kexec-tools-2.0.25 [...]
│   │   │   │   ├───/nix/store/dqgg81l2d07gi28q2jqby8bcr4hbilxd-libcap-2.66-lib [...]
│   │   │   │   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   │   │   │   ├───/nix/store/g8cqjfb9awffqwa1l95hmdnxbqnj0x85-kbd-2.5.1 [...]
│   │   │   │   ├───/nix/store/k2b87dvmz4mbs3d29z9fy18ja874q4nf-bash-interactive-5.1-p16
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
│   │   │   │   │   ├───/nix/store/186nnfizh28ggr79j01cks7hivnqn7bl-readline-8.1p2
│   │   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   │   └───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
│   │   │   │   │   └───/nix/store/k2b87dvmz4mbs3d29z9fy18ja874q4nf-bash-interactive-5.1-p16 [...]
│   │   │   │   ├───/nix/store/mlfdrhgjm8xbdlikl4v57ng56rr2192j-libseccomp-2.5.4-lib
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   └───/nix/store/mlfdrhgjm8xbdlikl4v57ng56rr2192j-libseccomp-2.5.4-lib [...]
│   │   │   │   ├───/nix/store/xcl1lm76d07615ys6gllwfxa9ksdjw2h-kmod-30
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7 [...]
│   │   │   │   │   └───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2 [...]
│   │   │   │   ├───/nix/store/ynr6k10vfb1nsdfmd7hnx4nix6bvb5bm-kmod-30-lib
│   │   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   │   ├───/nix/store/q8mhjm2a8jj5wa2m55wj86cgrw6nnh3h-xz-5.2.7 [...]
│   │   │   │   │   ├───/nix/store/wy2cyn4qgvrr0k2i3dpvvxk1w9q5px8y-zstd-1.5.2 [...]
│   │   │   │   │   └───/nix/store/ynr6k10vfb1nsdfmd7hnx4nix6bvb5bm-kmod-30-lib [...]
│   │   │   │   └───/nix/store/iywfjzc5kz7wxz4d9rc5slavpsjggg0s-systemd-minimal-251.7 [...]
│   │   │   ├───/nix/store/mvbz7wvd1l3cr8gcf83csr8f941rq2sh-pcsclite-1.9.5
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   └───/nix/store/mvbz7wvd1l3cr8gcf83csr8f941rq2sh-pcsclite-1.9.5 [...]
│   │   │   └───/nix/store/jj0vjbhb58cxx21g3hya5rvms3nxavmg-libfido2-1.12.0 [...]
│   │   ├───/nix/store/k2b87dvmz4mbs3d29z9fy18ja874q4nf-bash-interactive-5.1-p16 [...]
│   │   ├───/nix/store/khdv407in6v13gb38ngr8gkxndblf1h0-cryptsetup-2.5.0
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/9k6scgr6krhlfl70hv7yjjf7rhlxiifz-util-linux-minimal-2.38.1-lib [...]
│   │   │   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   │   │   ├───/nix/store/ky179c0sm3vhikwbj6dw8368sxn7998x-lvm2-2.03.16-lib
│   │   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   │   ├───/nix/store/iywfjzc5kz7wxz4d9rc5slavpsjggg0s-systemd-minimal-251.7 [...]
│   │   │   │   └───/nix/store/ky179c0sm3vhikwbj6dw8368sxn7998x-lvm2-2.03.16-lib [...]
│   │   │   ├───/nix/store/rdl1fc19w3i8gs75c360clwl7m1015nd-json-c-0.16 [...]
│   │   │   └───/nix/store/khdv407in6v13gb38ngr8gkxndblf1h0-cryptsetup-2.5.0 [...]
│   │   ├───/nix/store/mlfdrhgjm8xbdlikl4v57ng56rr2192j-libseccomp-2.5.4-lib [...]
│   │   ├───/nix/store/xcl1lm76d07615ys6gllwfxa9ksdjw2h-kmod-30 [...]
│   │   ├───/nix/store/y92har9bzzdb54b5scxx258cid5z56f8-gnutar-1.34
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/305gzzac3s0gign6cg6fb43z94am0s17-acl-2.3.1 [...]
│   │   │   └───/nix/store/y92har9bzzdb54b5scxx258cid5z56f8-gnutar-1.34 [...]
│   │   ├───/nix/store/ynr6k10vfb1nsdfmd7hnx4nix6bvb5bm-kmod-30-lib [...]
│   │   ├───/nix/store/z97bsdbkh6b60xpi12sqi6a0d28ql8cy-pcre2-10.40
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   └───/nix/store/z97bsdbkh6b60xpi12sqi6a0d28ql8cy-pcre2-10.40 [...]
│   │   └───/nix/store/sf1qmjj1im2xnmdvcpghq2h5b06z5rz2-systemd-251.7 [...]
│   ├───/nix/store/ws7z9y9893gh3ipag3ih1qwaf6xrblz9-shadow-4.11.1 [...]
│   ├───/nix/store/x4dwbp9k0cjjwgbrbg6dysrzrrbrb46y-libcap-ng-0.8.3 [...]
│   └───/nix/store/aany0cjkaxk4p818rbz4i8s9cmpqyr8k-util-linux-2.38.1-bin [...]
├───/nix/store/abj6dl2cy91zarym3y21ffdh23qz3wig-cpio-2.13
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   └───/nix/store/abj6dl2cy91zarym3y21ffdh23qz3wig-cpio-2.13 [...]
├───/nix/store/byy0l3qg7r1kfrcicykjkdj501xmn3vh-uefi-firmware-35.3.1
│   └───/nix/store/5rlg6235ixl2lvxwqx9i2v2bm42h1g02-source-patched
├───/nix/store/f0z49mirnq0pwvykg0x5r3nkzk0bb4md-dtc-1.6.1
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/r267rkqhdd7mf02g60d0d7j227lj9y86-libyaml-0.2.5
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   └───/nix/store/r267rkqhdd7mf02g60d0d7j227lj9y86-libyaml-0.2.5 [...]
│   ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│   └───/nix/store/f0z49mirnq0pwvykg0x5r3nkzk0bb4md-dtc-1.6.1 [...]
├───/nix/store/hly8pdcyp4mxyfslh953n936gd9w86vr-linux-aarch64-unknown-linux-gnu-5.10.104
│   └───/nix/store/hly8pdcyp4mxyfslh953n936gd9w86vr-linux-aarch64-unknown-linux-gnu-5.10.104 [...]
├───/nix/store/n5bybpjnzvlciwvma3ycn96pzdp803x7-xxd-vim-9.0.0609
│   └───/nix/store/skjb8x20kqax4m1lbh1l9kgdf4nmjcn0-vim-9.0.0609
│       ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│       ├───/nix/store/20f5hxjghmj3w4vwjixpyf38pwx655b9-ncurses-6.3-p20220507 [...]
│       ├───/nix/store/pndr3yb60iqx4igydv2irxi6s6y8rbvb-gawk-5.1.1
│       │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│       │   └───/nix/store/pndr3yb60iqx4igydv2irxi6s6y8rbvb-gawk-5.1.1 [...]
│       ├───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
│       └───/nix/store/skjb8x20kqax4m1lbh1l9kgdf4nmjcn0-vim-9.0.0609 [...]
├───/nix/store/pnajkjw1fz03z1x27ski1qbx9n3hd4df-binutils-2.39 [...]
├───/nix/store/pndr3yb60iqx4igydv2irxi6s6y8rbvb-gawk-5.1.1 [...]
├───/nix/store/qg64175d5ffnsmh1h0mr01r5jkf2n455-flash-tools-35.3.1
│   ├───/nix/store/5xf04pcmfap3573fgvinf5fwmxa1lhvz-libxml2-2.10.3-bin
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   └───/nix/store/5sm16lg4p0qm5gq734929dvg0m9vfi7j-libxml2-2.10.3
│   │       ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │       ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │       └───/nix/store/5sm16lg4p0qm5gq734929dvg0m9vfi7j-libxml2-2.10.3 [...]
│   ├───/nix/store/ir8rqkxsqh0ar3avlvhs2crn0zx2d2mk-perl-5.36.0
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/fblaj5ywkgphzpp5kx41av32kls9256y-zlib-1.2.13 [...]
│   │   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   │   ├───/nix/store/vjfvgq4qianhvj2paph2xsmy1hbjbarm-libxcrypt-4.4.30 [...]
│   │   └───/nix/store/ir8rqkxsqh0ar3avlvhs2crn0zx2d2mk-perl-5.36.0 [...]
│   ├───/nix/store/rgvkk9pa1rxzlgmiqn8hc1x9abm6kn78-python3-3.10.9-env
│   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   ├───/nix/store/5lp5v0sa76mhvc42bdc4z8vxwysp18r9-gcc-11.3.0-lib [...]
│   │   ├───/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9 [...]
│   │   ├───/nix/store/z123i92wgjg08hlk0hamxg11rl9wmyja-python3.10-pyyaml-6.0
│   │   │   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   │   │   ├───/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9 [...]
│   │   │   ├───/nix/store/r267rkqhdd7mf02g60d0d7j227lj9y86-libyaml-0.2.5 [...]
│   │   │   └───/nix/store/z123i92wgjg08hlk0hamxg11rl9wmyja-python3.10-pyyaml-6.0 [...]
│   │   └───/nix/store/rgvkk9pa1rxzlgmiqn8hc1x9abm6kn78-python3-3.10.9-env [...]
│   └───/nix/store/wim4mqpn8lxhhr10p2kd070hyj152lil-bash-5.1-p16 [...]
├───/nix/store/scmjiz80b1hh521k06z4fgbkl6r5k84p-gnused-4.8
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   └───/nix/store/scmjiz80b1hh521k06z4fgbkl6r5k84p-gnused-4.8 [...]
├───/nix/store/vmm828xyvm8pjwjbx33n7z9r45vv1lk3-findutils-4.9.0
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/ngw3m00r391w31n13q4m2x06amx4mqri-coreutils-9.1 [...]
│   └───/nix/store/vmm828xyvm8pjwjbx33n7z9r45vv1lk3-findutils-4.9.0 [...]
├───/nix/store/w8xxifv22x7c2vhsbm6vy8xzzkmimfwp-dosfstools-4.2
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   └───/nix/store/w8xxifv22x7c2vhsbm6vy8xzzkmimfwp-dosfstools-4.2 [...]
├───/nix/store/y7w5b4lq95q36vmjnwlbdk3dw6cz96xd-flash.xml
├───/nix/store/y92har9bzzdb54b5scxx258cid5z56f8-gnutar-1.34 [...]
├───/nix/store/yg07gnwdqf02zvg7yr2cxb364f5m27qc-openssl-3.0.7-bin
│   ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
│   ├───/nix/store/bprhh8afhvz27b051y8j451fyp6mkk38-openssl-3.0.7 [...]
│   └───/nix/store/ir8rqkxsqh0ar3avlvhs2crn0zx2d2mk-perl-5.36.0 [...]
└───/nix/store/zrxskb6gpsgr9amx36254360by5m0gry-lz4-1.9.4-bin
    ├───/nix/store/9xfad3b5z4y00mzmk2wnn4900q0qmxns-glibc-2.35-224 [...]
    └───/nix/store/zrxskb6gpsgr9amx36254360by5m0gry-lz4-1.9.4-bin [...]

I think the issue lies here due to symlink being a non binary non existing derivation. When I grep the nix/store/ I find a different hashed .drv file related to xavier-agx.

root@$HOST:~# ls -lah result 
lrwxrwxrwx 1 root root 67 Sep 26 11:41 result -> /nix/store/3j6crsjaj34pwcz8g2fimjzabzw8vn0p-flash-xavier-agx-devkit
root@$HOST:~# ls -lah /nix/store/ | grep xavier
-r--r--r--   1 root  root   6.4K Dec 31  1969 9q3wdfllnz7hxmxa69dd6qmg4n8rzkf5-flash-xavier-agx-devkit.drv

Orin NX kernel panic with USB OTG enabled

With an Orin NX on a Xavier NX devkit, we get the following kernel panic, unless with disable CONFIG_USB_OTG:

[    7.454936] CPU: 6 PID: 128 Comm: kworker/6:1 Not tainted 5.10.104 #1-NixOS
[    7.454939] Hardware name: Unknown NVIDIA Orin NX Developer Kit/NVIDIA Orin NX Developer Kit, BIOS jetson-r35.2 01/01/1980
[    7.460071] tegra194-vi5 13e40000.host1x:vi1@14c00000: initialized
[    7.464392] Workqueue: events tegra_xudc_usb_role_sw_work
[    7.468020] tegra194-pcie 140a0000.pcie: Using GICv2m MSI allocator
[    7.468103] sdhci-tegra 3400000.sdhci: Got CD GPIO
[    7.470244] pstate: 60c00009 (nZCv daif +PAN +UAO -TCO BTYPE=--)
[    7.470248] pc : tegra_xudc_unpowergate+0x148/0x760
[    7.476322] irq: IRQ302: trimming hierarchy from :interrupt-controller@f400000-1
[    7.478819] lr : tegra_xudc_unpowergate+0x120/0x760
[    7.478820] sp : ffff800011debba0
[    7.478821] x29: ffff800011debba0 x28: 0000000000000000 
[    7.482029] sdhci-tegra 3400000.sdhci: wakeup init done, cdirq 291
[    7.484856] x27: ffff2e3e8265b700 x26: ffff800011debd08 
[    7.484857] x25: 0000000000000004 x24: 0000000000000001 
[    7.484858] x23: 0000000000000003 x22: ffff2e3e853c5780 
[    7.484859] x21: 0000000000000004 x20: 0000000000000000 
[    7.484861] x19: ffff2e3e853ba080 x18: 0000000000000000 
[    7.484862] x17: 0000000000000000 x16: 0000000000000000 
[    7.538932] usb 1-3: new full-speed USB device number 3 using tegra-xusb
[    7.545929] 
[    7.545929] x15: 00000000000005c0 x14: 00000000000005bd 
[    7.545931] x13: 0000000000000001 x12: 0000000000000000 
[    7.545931] x11: 0000000000000000 x10: 00000000000009d0 
[    7.545932] x9 : ffff800011deb9d0 x8 : ffff2e3e8265c130 
[    7.545933] x7 : 0000000000000006 x6 : 000000003de44752 
[    7.545934] x5 : 00000000410fd420 x4 : 0000000000f0000f 
[    7.587435] tegra194-pcie 140a0000.pcie: host bridge /pcie@140a0000 ranges:
[    7.591605] 
[    7.591606] x3 : 0000000000000000 x2 : 0000000000000000 
[    7.591607] x1 : 000000000000000f x0 : 000000000001002c 
[    7.591611] Call trace:
[    7.594953] tegra194-pcie 140a0000.pcie:       IO 0x002a100000..0x002a1fffff -> 0x002a100000
[    7.600358]  tegra_xudc_unpowergate+0x148/0x760
[    7.600362]  tegra_xudc_runtime_resume+0x24/0x30
[    7.606663] tegra194-pcie 140a0000.pcie:      MEM 0x3528000000..0x352fffffff -> 0x0040000000
[    7.612000]  pm_generic_runtime_resume+0x40/0x60
[    7.612004]  __rpm_callback+0x124/0x200
[    7.617509] tegra194-pcie 140a0000.pcie:      MEM 0x3240000000..0x3527ffffff -> 0x3240000000
[    7.622932]  rpm_callback+0x38/0xa0
[    7.622935]  rpm_resume+0x6b0/0x878
[    7.703018] usb 1-3: New USB device found, idVendor=13d3, idProduct=3549, bcdDevice= 0.00
[    7.709907]  __pm_runtime_resume+0x74/0x118
[    7.709909]  tegra_xudc_device_mode_on+0x28/0x218
[    7.709910]  tegra_xudc_usb_role_sw_work+0x3c/0xc8
[    7.709914]  process_one_work+0x1bc/0x480
[    7.709917]  worker_thread+0x158/0x4b8
[    7.714461] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    7.719006]  kthread+0x104/0x130
[    7.719009]  ret_from_fork+0x10/0x18
[    7.719011] Code: 91404000 9100b000 d50332bf 528001e1 (b9000001) 
[    7.727498] usb 1-3: Product: Bluetooth Radio
[    7.732051] ---[ end trace 552cf18bafd2d2f7 ]---

Flashing script requires insecure Python 2 on nixos-unstable

Trying to build flashing script against nixos-unstable results in a following error:

error: Package ‘python-2.7.18.6’ in /nix/store/s4p87579bdd76ig36jlywil0i8nc0qbd-source/pkgs/development/interpreters/python/cpython/2.7/default.nix:330 is marked as insecure, refusing to evaluate.


       Known issues:
        - Python 2.7 has reached its end of life after 2020-01-01. See https://www.python.org/doc/sunset-python-2/.

       You can install it anyway by allowing this package, using the
       following methods:

       a) To temporarily allow all insecure packages, you can use an environment
          variable for a single invocation of the nix tools:

            $ export NIXPKGS_ALLOW_INSECURE=1

        Note: For `nix shell`, `nix build`, `nix develop` or any other Nix 2.4+
        (Flake) command, `--impure` must be passed in order to read this
        environment variable.

       b) for `nixos-rebuild` you can add ‘python-2.7.18.6’ to
          `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
          like so:

            {
              nixpkgs.config.permittedInsecurePackages = [
                "python-2.7.18.6"
              ];
            }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
          ‘python-2.7.18.6’ to `permittedInsecurePackages` in
          ~/.config/nixpkgs/config.nix, like so:

            {
              permittedInsecurePackages = [
                "python-2.7.18.6"
              ];
            }
(use '--show-trace' to show detailed location information)

What are the options here?

  • How much work it would be to get rid of Python 2 as a flash script dependency? (I think this would be nicer than just adding python2 to permitted insecure packages)
  • Is there a way to bypass the error in a clean way?

When using flakes, jetpack-nixos ignores kernelPatches in top level config

I built a standalone example here where I create a nixosConfiguration that add's an extraConfig kernel patch but it doesn't get applied when I build the kernel.

To reproduce this do the following:

git clone [email protected]:therishidesai/test-nixos.git
cd test-nixos
nix build .#nixosConfigurations.test-jp5.config.system.build.kernel.configfile

This build should fail because the kernelPatch describes a file that doesn't exist, but this patch is never being applied.

Running flashing script built against nixos-23.05 results in unbootable system

Steps to reproduce:

  1. Clone jetpack-nixos repo locally
  2. Modify flake.nix to have
 inputs = {
   nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
 };
  1. Do sudo nix run .#flash-orin-agx-devkit
  2. The flashing succeeds, and after that the boot hangs somewhere after starting UEFI.

This line and a lot of newlines get printed to serial console:
Jetson UEFI firmware (version 35.3.1 built on 1980-01-01T00:00:00+00:00)
and after that, nothing happens. The usual NixOS logo does not appear on the screen, and there's no possibility to go to the UEFI boot menus provided by edk2 even through the serial

X11 display not working on Orin Nano

I am able to get NixOS up over the serial console and installed and booting off a microSD card.

But I cannot get X11 to work at all and provide display output. I tried enabling modesetting in the nvidia-jetpack option group and that did not help.

``` (II) NVIDIA(0): Creating default Display subsection in Screen section "Screen-nvidia[0]" for depth/fbbpp 24/32 (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32 (==) NVIDIA(0): RGB weight 888 (==) NVIDIA(0): Default visual is TrueColor (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0) (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true" (**) NVIDIA(0): Enabling 2D acceleration (II) Loading sub module "glxserver_nvidia" (II) LoadModule: "glxserver_nvidia" (II) Loading /nix/store/vl7jvh572swjsll0hrarb2967jc44lhk-nvidia-l4t-3d-core-35.3.1-20230319081403/lib/xorg/modules/extensions/libglxserver_nvidia.so (II) Module glxserver_nvidia: vendor="NVIDIA Corporation" compiled for 1.6.99.901, module version = 1.0.0 Module class: X.Org Server Extension (II) NVIDIA GLX Module 35.3.1 Release Build (bugfix_main) (buildbrain@mobile-u64-6289-d7000) Sun Mar 19 08:02:08 PDT 2023 (II) NVIDIA: The X server supports PRIME Render Offload. (--) NVIDIA(0): Valid display device(s) on GPU-0 at SoC (--) NVIDIA(0): DFP-0 (--) NVIDIA(0): DFP-1 (WW) NVIDIA: No DRM device: Direct render devices found but none could be (WW) NVIDIA: used. (II) NVIDIA(0): NVIDIA GPU Orin (nvgpu) (GA10B) at SoC (GPU-0) (--) NVIDIA(0): Memory: 6631800 kBytes (--) NVIDIA(0): VideoBIOS: (EE) NVIDIA(GPU-0): Failed to acquire modesetting permission. (EE) NVIDIA(0): Failing initialization of X screen (II) UnloadModule: "nvidia" (II) UnloadSubModule: "glxserver_nvidia" (II) Unloading glxserver_nvidia (II) UnloadSubModule: "wfb" (II) UnloadSubModule: "fb" (EE) Screen(s) found, but none have a usable configuration. (EE) Fatal server error: (EE) no screens found(EE) (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. (EE) Please also check the log file at "/dev/null" for additional information. (EE) (EE) Server terminated with error (1). Closing log file. ```

Originally posted by @tpwrules in #78 (comment)


Additional note: This also hasn't been tested on the Orin NX, so I think its likely broken there as well.

tegra-se-nvhost incompatible with LUKS

Reproduction on Orin Nano using a disk on the built-in m.2 slot, but probably not a mandatory requirement.

set -e
ROOT_PARTITION="/dev/nvme0n1p1" # replace this with the device of your choice if you don't want to nuke your boot volume!
ROOT_LABEL="luks-repro"
ENCRYPTED_LABEL="$ROOT_LABEL-enc"
cryptsetup luksFormat --label "$ENCRYPTED_LABEL" "$ROOT_PARTITION" 
cryptsetup luksOpen "$ROOT_PARTITION" "$ENCRYPTED_LABEL"
mkfs.ext4 -L "$ROOT_LABEL" "/dev/mapper/$ENCRYPTED_LABEL"

mkdir -p /mnt/luks
mount "/dev/mapper/$ENCRYPTED_LABEL" /mnt/luks

You will start getting kernel errors along the lines of Couldn't get free cmdbuf. If you start doing a bunch of disk operations (e.g. installing Nix onto that volume), eventually you will get ext4 errors and see your filesystem remounted as read only due to corruption. My best guess is that a bunch of writes were simply not applied. This behaviour can be reproduced with btrfs instead of ext4, obviously with different ways of reporting corruption.

other reproductions

  • If you luksFormat with --sector-size 4096 you may receive Bug: scheduling while atomic errors and potential lockups.
  • If you luksOpen with --perf-no_read_workqueue --perf-no_write_workqueue you will very likely observe a kernel panic.

mitigation

'Couldn't get free cmdbuf' is only reported from within this file, which provides "Tegra Crypto algorithm support using Host1x interface". A mitigation is to disable this kernel module at startup time with initcall_blacklist=tegra_se_module_init, after which the bug is not reproducible, although presumably you lose hardware crypto. However, fast but sometimes broken is something I want from my food deliveries, not my crypto, so it's probably no major loss.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.