Nvidia SoC Cheatsheet

List of not so frequently required commands and procedures when working with Nvidia SoCs

Change power mode

All the SoCs have variour power modes available, which lets you switch on/off CPU cores, change the CPU/GPU frequencies etc

sudo /usr/sbin/nvpmodel -m <mode id>

Mode ID’s are specific to each model, Refer Power Management for Jetson Xavier NX and Jetson AGX Xavier Series Devices for details

Increase swap size

Since some of the SoCs have low or limited memory on them, it might be required to increase the swap size to avoid crashes. Edit the following file to change swap size:

/etc/systemd/nvzramconfig.sh

Install jTop

It’s similar to htop but build for Nvidia SoC. It shows more info about the SoC than htop

# If pip is not installed
sudo apt update
sudo apt install python3-pip

# Install jTop
sudo pip3 install jetson-stats

Enable/Disable the GUI

The base image that Nvidia provides for their SoCs are full desktops versions of Ubuntu LTS. It consumes a lot of memeory and if you need to free up memory, you can disable the GUI completely by:

sudo systemctl set-default multi-user.target

To enable the GUI again, issue the following command:

sudo systemctl set-default graphical.target

Or to temporarily start the GUI, use the following:

sudo systemctl start gdm

Configure the nvidia runtime for docker and change the docker image storage to external media

Most GPU containers need an nvidia runtime to be set. This runtime is auto configured when the package nvidia-docker2 is installed, which does the below runtime configs automatically. You can add this manually as well.

The data-root config specifies where docker images are stored. This is especially important if the root volume does not have enough space for docker images.

Create or edit /etc/docker/daemon.json to have the following content and restart docker.

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "data-root": "/mnt/nvme0n1/var-lib-docker"
}

View L4T version

$ cat /etc/nv_tegra_release
# R32 (release), REVISION: 6.1, GCID: 27863751, BOARD: t210ref, EABI: aarch64, DATE: Mon Jul 26 19:20:30 UTC 2021

Access serial port without root

The /dev/ttyUSB0 device has the group of dialout. All you need to do is add the user to the dialout group:

sudo adduser $USER dialout

$USER will need to log out & log back in again for this to take effect.