Category: Misc

  • Essential Commands to Monitor Nvidia GPUs in Linux

    Identify Your GPU Via the Linux CLI

    Identify that your card is recognized by the OS via the CLI command below, hwinfo

    # hwinfo --gfxcard --short
    graphics card:                                                  
                           nVidia TU104GL [Tesla T4]
                           nVidia TU104GL [Tesla T4]
                           Matrox G200eR2
    
    Primary display adapter: #58
    

    Or you can see similar output with lshw

    # lshw -C display
      
      *-display
           description: 3D controller
           product: TU104GL [Tesla T4]
           vendor: NVIDIA Corporation
           physical id: 0
           bus info: pci@0000:43:00.0
           logical name: /dev/fb0
           version: a1
           width: 64 bits
           clock: 33MHz
           capabilities: pm bus_master cap_list fb
           configuration: depth=32 driver=nvidia latency=0 mode=1280x1024 visual=truecolor xres=1280 yres=1024
           resources: iomemory:3800-37ff iomemory:3810-380f irq:106 memory:d0000000-d0ffffff memory:38000000000-3800fffffff memory:38110000000-38111ffffff memory:d1000000-d13fffff memory:38010000000-3810fffffff memory:38112000000-38131ffffff
    

    Nvidia-smi

    Nvidia System Management interface (nvidia-smi) is a cli command which facilitates management and monitoring of Nvidia GPUs (mainly Tesla, GRID, Quatro, and Titan products). It ships with Nvidia GPU drivers on Linux. It is an extension buildt on the Nvidia Management Library. Official documentation for nvidia-smi can be found here.

    The output comprises two tables. The first table provides comprehensive details about all detected GPUs (e.g., one GPU in the provided example), while the second table enumerates the processes actively utilizing the GPUs. Below are detailed explanations of each parameter:

    • Temp (Temperature): Indicates the GPU core temperature in Celsius. Typically, temperature regulation is managed by data center infrastructure or external cooling solutions. Values like “44°C” are normal operating conditions, but sustained temperatures exceeding 90°C should trigger immediate action to prevent hardware degradation.
    • Perf (Performance State): Represents the current performance state of the GPU, ranging from P0 (highest performance) to P12 (lowest performance).
    • Persistence-M (Persistence Mode): Specifies whether the NVIDIA driver remains loaded in memory even in the absence of active processes like nvidia-smi. When “On,” this mode reduces driver load latency for GPU-dependent applications such as CUDA workloads.
    • Pwr: Usage/Cap (Power Usage/Capacity): Displays the current power draw of the GPU relative to its total power capacity, measured in Watts.
    • Bus-Id: Represents the PCI bus address of the GPU in the format domain:bus:device.function (hexadecimal). This identifier is critical for targeting specific GPUs in systems with multiple devices.
    • Disp.A (Display Active): Denotes whether memory on the GPU is allocated for display purposes. An “Off” value signifies no display context is associated with the GPU, making it dedicated to compute tasks.
    • Memory-Usage: Indicates memory utilization on the GPU, expressed as the amount of memory in use versus total available memory. Machine learning frameworks like TensorFlow may preallocate the full GPU memory capacity upon initialization, irrespective of immediate requirements.
    • Volatile Uncorr. ECC (Volatile Uncorrected ECC): Tracks uncorrected memory errors since the last driver initialization. Error Correction Code (ECC) is designed to detect and correct memory errors, ensuring data integrity during GPU operations.
    • GPU-Util (GPU Utilization): Reports the percentage of time over the sample interval during which one or more kernels actively used the GPU.
    • Compute M. (Compute Mode): Specifies the GPU’s compute mode. In “Default” mode, multiple processes can access the GPU concurrently. Other modes may restrict access to a single process or prohibit access entirely.
    • GPU (Index): Enumerates the GPUs detected in the system. The index corresponds to the NVML (NVIDIA Management Library) device index, enabling precise identification in multi-GPU environments.
    • PID (Process ID): Lists the process identifier of applications utilizing GPU resources.
    • Type: Describes the context of GPU usage—“C” for Compute tasks, “G” for Graphics tasks, and “C+G” for combined Compute and Graphics contexts.
    • Process Name: Identifies the executable or application utilizing GPU resources.
    • GPU Memory Usage: Reports the GPU memory utilized by each individual process.

    Use the -a switch for more detail

    Sample Nvidia-SMI Commands

    Query memory, free memory, and used memory

    # nvidia-smi --query-gpu=index,name,uuid,memory.total,memory.free,memory.used --format=csv
    index, name, uuid, memory.total [MiB], memory.free [MiB], memory.used [MiB]
    0, Tesla T4, GPU-9491a3e6-ea29-ba4e-4403-083244d5575c, 15360 MiB, 14928 MiB, 2 MiB
    1, Tesla T4, GPU-1d877ac8-5df1-34b0-4f86-59945e37d2ba, 15360 MiB, 14928 MiB, 2 MiB
    

    Query Temperatures

    # nvidia-smi --query-gpu=name,temperature.gpu --format=csv
    name, temperature.gpu
    Tesla T4, 34
    Tesla T4, 30
    

    Query PCI Slot

    # nvidia-smi --query-gpu=index,name,pci.bus_id --format=csv
    index, name, pci.bus_id
    0, Tesla T4, 00000000:02:00.0
    1, Tesla T4, 00000000:43:00.0
    

    Show Numa Affinity

    Non-Uniform Memory Access (numa) is a term used on systems with more than one bus/CPU. In the example below my GPU is installed in the numa node local to CPU0. use the flag “topo -m”


    Show Running Stats with dmon

    The dmon flag is unsed to show running statistics for one or more CPUs at 1s intervals. Dmon accepts a slew of options which are explained here.

    Below are the available base metrics and associated metric letter.

    SWITCHDESCRIPTION
    pPower Usage and Temperature
    uUtilization
    cProc and Mem Clocks
    vPower and Thermal Violations
    mFB, Bar1 and CC Protected Memory
    eECC Errors and PCIe Replay errors
    tPCIe Rx and Tx Throughput

    The nvidia-smi dmon command is also able to query available GPM (GPU Performance Monitor) metrics as shown in the example below

    #nvidia-smi dmon --gpm-metrics <gpmMetric1, gpmMetric2, ... ,gpmMetricN>
    <gpmMetricX> R

    The table below shows some of the available metrics and associated metric number. A complete list of metrics can be found here.

    METRICVARDESCRIPTION
    Graphics Activity = 1
    SM Activity  = 2
    SM Occupancy = 3
    Integer Activity=4
    Tensor Activity = 5
    DFMA Tensor Activity= 6
    HMMA Tensor Activity = 7
    IMMA Tensor Activity= 9
    DRAM Activity = 10
    FP64 Activity= 11
    FP32 Activity= 12
    FP16 Activity= 13
    PCIe TX= 20
    PCIe RX= 21
    NVDEC 0-7 Activity= 30-37
    NVOFA 0 Activity= 50
    NVJPG 0-7 Activity   = 40-47
    NVLink Total RX= 60
    NVLink Total TX= 61
    NVLink L0-17 RX= 62, 64, 66, …, 96
    NVLink L0-17 TX = 63, 65, 67, …, 97

    Enable persistence mode to reduce initialization overhead and keep the GPU active and running.

    # sudo nvidia-smi -pm 1
    Enabled persistence mode for GPU 00000000:43:00.0.
    All done.

    NVtop

    More info on nvtop can be found here

    $ sudo apt install nvtop

    Output example below


    GPUstat

    A wrapper of sorts for nvidia-smi. More info here.

    # apt install gpustat -y

    Output below

    galactica    Thu Feb  6 22:43:59 2025  535.183.01
    [0] Tesla T4 | 36°C,   0 % |     2 / 15360 MB |
    [1] Tesla T4 | 30°C,   0 % |     2 / 15360 MB |
    

    Installing the Nvidia Container Toolkit on Ubuntu 22.04

    The NVIDIA Container Toolkit is a set of tools that enables the use of NVIDIA GPUs within Docker and other container runtimes. It allows GPU-accelerated applications to run inside containers by providing the necessary drivers, libraries, and runtime components. Instructions for installing the Nvidia Container Toolkit are below. The official Nvidia doc can be found here, where you can also find guides for installing via DNF/Yum or Zypper

    ~# curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
    #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/deb/$(ARCH) /
    

    Now refresh packages list

    ~# sudo apt-get update

    Now install the Container Toolkit

    # sudo apt-get install -y nvidia-container-toolkit

    Configure the NVIDIA-Container Toolkit with Containerd

    For Ubuntu, the default runtime is containerd. In the example below we configure integration with containerd. Which modifies /etc/containerd/config.toml

    #sudo nvidia-ctk runtime configure --runtime=containerd
    #sudo systemctl restart containerd

    or use docker as shown below

    Configure the NVIDIA-Container Toolkit Configuring with Docker

    The nvidia-ctk command modifies the /etc/docker/daemon.json file on the host. The file is updated so that Docker can use the NVIDIA Container Runtime.

    # sudo nvidia-ctk runtime configure --runtime=docker

    I have also seen that it may be necessary to add default-runtime parameter directly to the file “/etc/docker/daemon.json“.

    Run the command below to see what runtimes Docker is using

    docker info | grep "Runtime"
     Runtimes: io.containerd.runc.v2 nvidia runc
     Default Runtime: runc

    Make a backup copy of /etc/docker/daemon.json

    # cp /etc/docker/daemon.json /etc/docker/daemon.json.ORIG

    Modify the file as shown below.

    # cat daemon.json
    {
        "runtimes": {
            "nvidia": {
                "path": "/usr/bin/nvidia-container-runtime",
                "runtimeArgs": []
             } 
        },
        "default-runtime": "nvidia" 
    }

    Restart Docker

    # systemctl restart docker

    Check the output of docker info and ensure that the nvidia is the default runtime

    # docker info | grep "Runtime"
     Runtimes: io.containerd.runc.v2 nvidia runc
     Default Runtime: nvidia
    

    Find your Nvidia Devices in /dev

    # sudo ls -la /dev | grep nvidia
    crw-rw-rw- 1 root root 195, 0 Feb 4 03:54 nvidia0
    crw-rw-rw- 1 root root 195, 1 Feb 4 03:54 nvidia1

    NGC CLI

    NVIDIA NGC (Nvidia GPU CLoud) CLI is a command-line interface tool for managing Docker containers in the NVIDIA NGC Registry. Download the CLI here.

    Once downloaded, unzip the Zip file and make the binary executable

    chmod u+x ngc-cli/ngc && chmod u+x ngc-cli/ngc

    Add the binary path to your path

    echo "export PATH=\"\$PATH:$(pwd)/ngc-cli\"" >> ~/.bash_profile && source ~/.bash_profile

    You will need an Nvidia Cloud account and and API key, follow the setup guide here to get started.

    Then docker login as shown below using your API key as your password

    # docker login nvcr.io
    Username: $oauthtoken
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    

    nvidia-ctk

    A Container Device Interface (CDI) device is a standard way to manage container hardware access. More specifically it is used to assign GPU to containers through the Nvidia Container Toolkit

    Run the command below to generate the CDI specification file

    #  sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

    Then run the list command below to see what GPUs were detected.

    # nvidia-ctk cdi list
    INFO[0000] Found 5 CDI devices                          
    nvidia.com/gpu=0
    nvidia.com/gpu=1
    nvidia.com/gpu=GPU-1d877ac8-5df1-34b0-4f86-59945e37d2ba
    nvidia.com/gpu=GPU-9491a3e6-ea29-ba4e-4403-083244d5575c
    nvidia.com/gpu=all

    Running a Sample Docker Workload

    Run the command below to test to make sure docker is working properly

    # sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

    The command above should run nvidia-smi once and then exit.

    GPU Burn With Docker

    Pop a second terminal window, run nvtop and run the command below. You should see load on your GPUs. In the example below, 60 represents the number of seconds to run the test.

    # sudo docker run --gpus all --rm oguzpastirmaci/gpu-burn 60

    See below. GPUs running at 100% load.


    More Commands

    Reference

    1. https://org.ngc.nvidia.com/setup/installers/cli
    2. https://docs.nvidia.com/deploy/nvidia-smi/index.html
    3. https://taozhi.medium.com/monitor-nvidia-gpu-by-nvidia-smi-cli-56198fbf8e62
    4. https://www.gpu-mart.com/blog/monitor-gpu-utilization-with-nvidia-smi
    5. https://programmersought.com/article/84455484104/
    6. https://docs.nvidia.com/deploy/driver-persistence/index.html
    7. https://www.incredibuild.com/integrations/cuda#:~:text=Compute%20Unified%20Architecture%20(CUDA)%20is,tasks%20on%20GPU%20using%20CUDA.
    8. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
    9. https://docs.nvidia.com/deploy/nvml-api/group__nvmlGpmEnums.html
    10. https://docs.nvidia.com/deploy/pdf/NVML_API_Reference_Guide.pdf
    11. https://docs.nvidia.com/deploy/nvidia-smi/index.html
    12. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
    13. https://hub.docker.com/r/oguzpastirmaci/gpu-burn

  • Finding and Mapping Jetson OS and JetPack Versions on the Nvidia Jetson

    Finding and Mapping Jetson OS and JetPack Versions on the Nvidia Jetson

    Updated – 7/1/2026

    Below are all the methods that I have found to either find your Jetson OS version, or your Jetpack version (which includes Jetson OS version, Ubuntu version, CUDA Version, NVIDIA drivers, and firmware).

    First let’s review the matrix and see how JetsonOS Maps to JetPack version (along with Ubuntu version, CUDA version, and release date)

    Note:

    • Nano: supported through JetPack 4.6.x
    • Xavier: supported through JetPack 5.1.x
    • Orin: required for JetPack 6.x and newer
    L4TJetPackUbuntuCUDARelease DateRelease TypeDevicesSupport StateProd Ready?
    39.27.224.0413.2.1Jun 2026ProdOrin, Thor/T5000/T4000ActiveOrin: Preferred / Thor: Preferred
    38.47.124.0413.xJan 2026ProdThor/T5000/T4000ActiveThor: Yes / Orin: No
    38.2 / 38.2.1724.0413.xAug 2025ProdThor/T5000ActiveThor: Yes / Orin: No
    36.5.06.2.222.0412.62025ProdOrinMaintenanceOrin: Stable fallback
    36.4.46.2.122.0412.6Jun 2025ProdOrinMaintenanceOrin: Yes
    36.4.36.222.0412.6Early 2025ProdOrinMaintenanceOrin: Yes
    36.4.06.122.0412.6Sep 2024ProdOrinMaintenanceOrin: Acceptable
    36.3.0622.0412.2May 2024ProdOrinSustainingNo
    36.2.06.0 DP22.0412.2Dec 2023DPOrinDPNo
    35.6.45.1.620.0411.8Feb 2026ProdXavier, OrinSustainingXavier: Preferred / Orin: Legacy fallback
    35.6.25.1.520.0411.8Mar 2024ProdXavier, OrinSustainingXavier: Yes
    35.6.15.1.520.0411.8Jan 2024ProdXavier, OrinSustainingXavier: Yes
    35.6.05.1.420.0411.4Dec 2023ProdXavier, OrinSustainingXavier: Acceptable
    35.5.05.1.320.0411.4Sep 2023ProdXavier, OrinSustainingNo
    35.4.15.1.220.0411.4May 2023ProdXavier, OrinSustainingNo
    35.3.15.1.120.0411.4Feb 2023ProdXavier, OrinSustainingNo
    35.2.15.120.0411.4Aug 2022ProdXavier, OrinSustainingNo
    35.1.05.0.220.0411.4Jun 2022ProdXavierSustainingNo
    34.1.15.0.1 DP20.0411.4Apr 2022DPXavierDPNo
    34.1.05.0 DP20.0411.4Mar 2022DPXavierDPNo
    32.7.64.6.618.0410.2Nov 2024ProdNano, TX1, TX2, XavierEOLNano: Final supported
    32.7.54.6.518.0410.2Jun 2024ProdNano, TX1, TX2, XavierEOLNo
    32.7.44.6.418.0410.22024ProdNano, TX1, TX2, XavierEOLNo
    32.7.34.6.318.0410.2Dec 2022ProdNano, TX1, TX2, XavierEOLNo
    32.7.24.6.218.0410.2Aug 2022ProdNano, TX1, TX2, XavierEOLNo
    32.7.14.6.118.0410.2May 2022ProdNano, TX1, TX2, XavierEOLNo
    32.6.14.618.0410.2Nov 2021ProdNano, TX1, TX2, XavierEOLNo
    32.5.24.5.118.0410.2Jul 2021ProdNano, TX1, TX2, XavierEOLNo
    32.5.14.5.118.0410.2Jun 2021ProdNano, TX1, TX2, XavierEOLNo
    32.5.04.518.0410.2Jan 2021ProdNano, TX1, TX2, XavierEOLNo
    32.4.44.4.118.0410.2Oct 2020ProdNano, TX2, XavierEOLNo
    32.4.34.418.0410.2Jul 2020ProdNano, TX2, XavierEOLNo
    32.4.24.4 DP18.0410.2May 2020DPNano, TX2, XavierDPNo
    32.3.14.318.0410Dec 2019ProdNano, TX2, XavierEOLNo
    32.2.34.2.318.0410Sep 2019ProdNano, TX2, XavierEOLNo
    32.2.14.2.218.0410Jul 2019ProdNano, TX2, XavierEOLNo
    32.2.04.2.118.0410Jun 2019ProdNano, TX2, XavierEOLNo
    32.1.04.218.0410Mar 2019ProdNano, TX2, XavierEOLNo
    31.1.04.1.118.0410Nov 2018ProdTX1, TX2EOLNo
    31.0.24.118.0410Oct 2018ProdTX1, TX2EOLNo
    31.0.1418.049Sep 2018ProdTX1, TX2EOLNo
    28.4.03.3.316.049May 2019ProdTX1, TX2EOLNo
    28.2.13.3 / 3.2.116.049Feb 2018ProdTX1, TX2EOLNo
    28.2.03.216.049Dec 2017ProdTX1, TX2EOLNo
    28.1.03.116.048Oct 2017ProdTX1EOLNo
    27.1.0316.048Mar 2017ProdTX1EOLNo
    24.2.13.0 / 2.3.116.047Dec 2016ProdTK1, TX1EOLNo
    24.2.02.316.047Sep 2016ProdTK1, TX1EOLNo
    24.1.02.2 / 2.2.116.047Jun 2016ProdTK1, TX1EOLNo
    23.2.02.116.046.5Mar 2016ProdTK1EOLNo
    23.1.0216.046.5Jan 2016ProdTK1EOLNo
    21.5.02.3 / 2.3.114.046.5Oct 2015ProdTK1EOLNo
    21.4.02.2 / 2.1 / 2.0 / 1.2 DP14.046.5Jun 2015MixedTK1EOLNo
    21.3.01.1 DP14.046Apr 2015DPTK1DPNo
    21.2.01.0 DP14.046Feb 2015DPTK1DPNo

    Jetson Linux (L4T) / JetPack Version Matrix (Unified)

    With Support Status and Recommended Baselines



    Commands to Find your Jetpack/Jetson OS Version

    This is not an extensive list, but its what I have used in the past


    jetsonInfo.py

    Git clone the repo below.

    https://github.com/jetsonhacks/jetsonUtilities

    and then run jetsonInfo.py.

    # ./jetsonInfo.py
    NVIDIA NVIDIA Jetson Orin NX Engineering Reference Developer Kit
    L4T 36.4.3 [ JetPack UNKNOWN ]
    Ubuntu 22.04.5 LTS
    Kernel Version: 5.15.148-tegra
    CUDA NOT_INSTALLED
    CUDA Architecture: 8.7
    OpenCV version: 4.5.4
    OpenCV Cuda: NO
    CUDNN: ii libcudnn9
    TensorRT: NOT_INSTALLED
    Vision Works: NOT_INSTALLED
    VPI: NOT_INSTALLED
    Vulcan: 1.3.204

    L4T 36.4.3 is part of Jetpack 6.2, looks like the repo has not been updated since 2021 which is why Jetpack 6.2 is not recognized (also missing installed TensorRT). See section below for Jetson OS to Jetpack Version mapping

    Per the git-repo

    1. The hardware designator is derived from the file: ‘/proc/cpuinfo’
    2. The L4T version is derived from the file: ‘/etc/nv_tegra_release’
    3. The Ubuntu version is derived from the file: ‘/etc/os-release’
    4. The Linux kernel version is derived from the file: ‘/proc/version’

    Via /etc/nv_tegra_release

    Below in bold you can see the Jetson OS release and revision.

    # cat /etc/nv_tegra_release
    # R36 (release), REVISION: 4.3, GCID: 38968081, BOARD: generic, EABI: aarch64, DATE: Wed Jan 8 01:49:37 UTC 2025
    # KERNEL_VARIANT: oot
    TARGET_USERSPACE_LIB_DIR=nvidia
    TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia

    Via Apt

    # sudo apt-cache show nvidia-jetpack
    Package: nvidia-jetpack
    Source: nvidia-jetpack (6.2)
    Version: 6.2+b77
    Architecture: arm64
    Maintainer: NVIDIA Corporation
    Installed-Size: 194
    Depends: nvidia-jetpack-runtime (= 6.2+b77), nvidia-jetpack-dev (= 6.2+b77)
    Homepage: http://developer.nvidia.com/jetson
    Priority: standard
    Section: metapackages
    Filename: pool/main/n/nvidia-jetpack/nvidia-jetpack_6.2+b77_arm64.deb
    Size: 29298
    SHA256: 70553d4b5a802057f9436677ef8ce255db386fd3b5d24ff2c0a8ec0e485c59cd
    SHA1: 9deab64d12eef0e788471e05856c84bf2a0cf6e6
    MD5sum: 4db65dc36434fe1f84176843384aee23
    Description: NVIDIA Jetpack Meta Package
    Description-md5: ad1462289bdbc54909ae109d1d32c0a8

    Via nvidia-lt4-core pkg

    # dpkg-query --show nvidia-l4t-core
    nvidia-l4t-core 36.4.3-20250107174145

  • Installing the GPU Power Supply Expansion Board into the Dell T620

    Installing the GPU Power Supply Expansion Board into the Dell T620

    Introduction

    I recently picked up a couple of used Dell T602s for my homelab for AI/ML project work. Dell Tower form factor servers are very attractive to homelabbers due to their availability, their low costs, the fact that they are rather low noise, and due to the fact that they are easily expandable. For example, the DVD rom drive in one of my machines is a standard 5 3/4″ form factor, which I replaced with an DVD burner I had laying around.

    One issue with utilizing a non-ATX powered server for AL/ML is the lack of additional power and cooling options for GPUs. The 16x PCI slots in the T620 provide 75w of power, enough for some older GPUs (like the Tesla T4 – which I will try to install later), however in the case of the T4 it is passively cooled so additional cooling is required. We will deal with additional cooling in another post in the future, for now let’s focus on getting the power we need for a certified GPU (more on this down below).

    What you need is a Dell GPU Power Supply Expansion Module (VDY5T) (and cables PN=3692K). However, it’s almost impossible to obtain one specifically for the T620 (VDY5T), however you can pick up one up for the T630 (X7C1K) on ebay. I have read that others have been successful when doing so. So I picked up one for myself along with a couple of cables to see if I had the same results…

    As a matter of fact, after a cursory glance, and some google-foo, I am not convinced that these parts are not interchangeable. Below you see an ebay item listed as compatible with either machine (not that you should trust ebay sellers). I will continue to do research and once I test my machine I will add more information to this post in the near future. For now, let’s get to the installation steps.

    Pages: 1 2

  • Nvidia Jetson Part Numbers

    Nvidia Jetson Developer Kits

    EOL devices not included (Jetson AGX Xavier Developer Kit, Jetson Xavier NX Developer Kit, Jetson Nano Developer Kit and Jetson Nano 2GB Developer Kit)

    PRODUCT SKUREGION
    Jetson AGX Orin 64GB Developer Kit945-13730-0050-000§US, CA, CN, TW, JP
    945-13730-0055-000§UK, EU*, RS, UA, IL, MY, VN, SG, HK, KR
    945-13730-0057-000§IN, AU, PH, NZ
    Jetson Orin Nano Super Developer Kit945-13766-0000-000US, CA, CN, JP, PH
    945-13766-0000-000EU, UK, RS, UA, SG, VN, HK, KR, MY, IL
    945-13766-0007-000IN, TW

    Nvidia Jetson Modules and SoCs


    EOL devices not included (Jetson TX2, Jetson Xt2 4GB, and Jetson K1)

    PRODUCTSKUREGION
    Jetson AGX Orin 64GB900-13701-0050-000US, CA, MX, UK, EU*, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson AGX Orin Industrial900-13701-0080-000US, CA, MX, UK, EU*, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson AGX Orin 32GB900-13701-0040-000US, CA, MX, UK, EU*, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson Orin NX 16GB900-13767-0000-000US, CA, MX, UK, EU*, RS, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson Orin NX 8GB900-13767-0010-000US, CA, MX, UK, EU*, RS, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson Orin Nano 4GB900-13767-0030-000US, CA, MX, UK, EU*, RS, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson AGX Xavier900-82888-0050-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson AGX Xavier Industrial900-82888-0080-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson Xavier NX 16GB
    900-83668-0030-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson Xavier NX
    900-83668-0000-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson TX2 NX900-13636-0010-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson TX2i900-83489-0000-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ
    Jetson Nano900-13448-0020-000US, CA, MX, BR, UK, EU, RS, UA, IL, IN, CN, MY, VN, SG, HK, AU, PH, TW, JP, KR, NZ

    Reference

    https://developer.nvidia.com/embedded/faq#jetson-part-numbers

  • Nmcli: Working with Linux Bridges on RHEL8/CentOS8

    For better or worse, mmcli is pretty much the default mechanism for configuring networking on RHEL8/CentOS8. I cannot as of yet, say I am a fan. However, I have been working with ifconfig files for years and held on to that method of networking configuration until they were dragged from my cold and bloated hands.

    Show Bridges

    # nmcli con show
    NAME          UUID                                  TYPE      DEVICE       
    eno1          e875f081-1ef6-4995-bb12-0f5ff50f1095  ethernet  eno1         
    provisioning  272457e0-8a6b-4e93-8902-f28c07f45cdc  bridge    provisioning 
    baremetal     f6d0909c-9ee7-4aa6-8902-b8ce9171fa93  bridge    baremetal    
    vlan98        1db123b9-0e43-453d-ba7b-757213ed377d  vlan      eno1.98      
    vlan99        9d5d886b-e9bd-45c3-8dc4-c958b73b232e  vlan      eno1.99      
    vnet0         73344ec4-37e4-487d-9a07-775ddab2b05e  tun       vnet0        
    vnet1         cb4622dc-7987-4410-8497-780f89195a2f  tun       vnet1        
    eno2          c1b3674d-cc63-414c-90bb-69e00759efd8  ethernet  --           
    eno3          5f12b893-3333-4c8f-91c2-54512d7e7f09  ethernet  --           
    eno4          4bbbcace-9ffe-43df-863a-2b19585d98ee  ethernet  --    

    Show a Bridge and Connected Interfaces

    Format is as shown below.

    nmcli -f GENERAL.DEVICE,GENERAL.TYPE,BRIDGE.SLAVES device show bridge_device_name

    For example:

    nmcli -f GENERAL.DEVICE,GENERAL.TYPE,BRIDGE.SLAVES device show provisioning
    GENERAL.DEVICE:                         provisioning
    GENERAL.TYPE:                           bridge
    BRIDGE.SLAVES:                          eno1.98 vnet1
    

    Add a Bridge

    # nmcli connection add type bridge ifname app-br0
    Connection 'bridge-app-br0' (f26b8315-5ab0-409a-a701-8abf3837aa92) successfully added.
    

    Add a Slave Interface to a Bridge

    nmcli con add type ethernet con-name br-slave-1 ifname eno51 master app-br0

    Delete a Bridge

    # nmcli conn delete bridge-app-br0
    Connection 'bridge-app-br0' (f26b8315-5ab0-409a-a701-8abf3837aa92) successfully deleted.
    

  • OpenStack Nova – Overview of Host Aggregates and Availability Zones

    edba0-6a00e551c39e1c88340148c7db94aa970c-pi

    Introduction

    This document is one that I have created by using multiple sources as reference.

    Availability Zones

    • Typically used for separating failure domains
    • Availability Zones are the end-user visible logical abstraction for partitioning a cloud without knowing the physical infrastructure.
    • An availability zone is a way in which the user can specify a particular “location” in which a host should boot.
    • Availability zones are fairly straightforward; pick a zone, start a VM.
    • Availability zones serve as a bucket
    • Host Aggregate has no conflict with Availability Zone.
    • Choose availability zone when booting a VM.

    Host Aggregates

    • Typically used for grouping servers with similar capabilities
    • Host aggregates can be regarded as a mechanism to further partition an availability zone; while availability zones are visible to users, host aggregates are only visible to administrators
    • Host aggregates also allow higher availability of a single guest instance within an availability zone, it enables advanced VM placement strategies, and more importantly it enables hosts’ zero-downtime upgrades.
    • Host aggregates are in the administrator’s domain
    • Host aggregates are intended as a way to group servers that have a particular quality to them.
    • Host aggregates serve as an intelligent way for schedulers to know where to place VM’s based on some sort of characteristic
    • Use Keys set at flavor level.
    • Host Aggregate has no conflict with Availability Zone.

    Configure Nova to Use Host Aggregates

    AggregateInstanceExtraSpecsFilter set in scheduler_default_filters in /etc/nova/nova.conf. Example below.

    [simterm]

    scheduler_default_filters=AggregateInstanceExtraSpecsFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter

    [/simterm]

    Host Aggregate Workflow

    In general, the workflow for using host aggregates looks like this:

    1. Create a new aggregate.
    2. Set a particular property for that aggregate, such as ssd=true , or in our case, joeistheboss=true .
    3. Add qualifying hosts to this aggregate.
    4. Create a flavor that requires this particular property.
    5. Instantiate hosts using this flavor.

    Planning

    As an admin planning for your customers, however, you have a decision to make.  In general, you’ll need to consider the following:

    1. Is there a clear physical separation between hosts, either physically or redundantly?  If so, you will probably want to use availability zones.
    2. Is the separation based on hardware capabilities?  If so, you will probably want to use hardware aggregates.
    3. Are hosts within a particular “category” spread across multiple locations?  If so, you will probably want to use hardware aggregates so that you can group together hosts from multiple availability zones.  (In this case, you can create an aggregate with the appropriate metadata in each zone.)
    4. Do you want users to consciously choose a “category” for their VMs?  If so, you will probably want to use availability zones, as users can specify them directly.

    Creating and Using Host Aggregates

    Create a host aggregate in an availability zone as shown below.

    [simterm]  nova aggregate-create

    [/simterm]

    Example:

    [simterm]

    nova aggregate-create ssd-disk nova

    [/simterm]

    Add a host to your aggregate.

    [simterm]nova aggregate-add-host

    [/simterm]

    Add metadata to be associated with the aggregate

    [simterm]nova aggregate-set-metadata <key=value>

    [/simterm]

    Create flavor using key=value pair

    [simterm]  nova flavor-create ssd.large 6 8192 80 4

      nova flavor-key set_key –name=ssd.large –key=ssd –value=true

    [/simterm]

     

  • MegaCLI Force Firmware Flash

    16-118-105-02.jpg

    The step below will update your adapter’s firmware.

    [simterm]# MegaCli -adpfwflash -F mr2108fw.rom -aAll

    [/simterm]

    The step below will FORCE update your adapter’s firmware. Useful if you need to roll-back to an older firmware.

    [simterm]# MegaCli -adpfwflash -F mr2108fw.rom -NoVerChk -aAll

    [/simterm]