Recently, I got an NVIDIA Jetson AGX Xavier Developer Kit. It turns out that setting up Jetson AGX Xavier is slightly more complicated than setting up Jetson Nano.
In this blog post, I would like to discuss some of the notes and the caveats that I found when I was setting up the device.
Setup
NVIDIA SDK Manager
The JetPack SDK and L4T OS can only be installed via NVIDIA SDK Manager. The SD Card image method is not supported for Jetson AGX Xavier.
We have to use a Ubuntu 16.04 LTS or Ubuntu 18.04 LTS machine to install NVIDIA SDK Manager. As of March 23rd 2021, Ubuntu 20.04 LTS is not supported by NVIDIA SDK Manager.
USB-C Hub
There are few available ports. It is thus recommended to have a USB-C hub.
Display Output
It only has a HDMI output port and no DP output port. Be prepared to have a HDMI to DP connector if the monitor only accepts DP cable. Some USB-C hubs have DP output port as well.
USB WIFI
There is no on-board WIFI. It is recommended to prepare a USB WIFI adapter. After the USB WIFI adapter is connected to Xavier, we might have problem SSH to Xavier over WIFI. sudo apt-get update && sudo apt-get upgrade -y should solve the problem if the USB WIFI adapter is supported by the OS.
External Hard Drive
Be prepared to have an external hard drive, as there is only 32GB storage space on the device.
Power Model
Jetson AGX Xavier supports different power models. The default 15W model is the most suitable for usages with display. To switch power models, we have to run nvpmodel.
$ nvpmodel --version nvpmodel: unrecognized option '--version' Nvidia Power Model Tool Version 1.1.4 Usage: nvpmodel [-h | --help] [--verbose] [-q | --query] [-p | --parse] [-u | --udata] [-w | --wait <sec>] [--boot] [-m | --mode <mode>] [-f | --conf <filename>] [-o | --os <android,l4t>] -h, --help: Print this help info. --verbose: Enable verbose log. --boot: Exit and do nothing if it is sanity-flashed build. -p, --parse: Parse the config file only. Recommended to enable verbose log. -m, --mode <mode>: <mode> is one of the integer POWER_MODEL ID defined in config file. Switch to the specified power mode. -d, --fmode: specify the mode for thermal-fan-est and pwm-fan, such as cool/quiet,etc... . -f, --conf: explicitly specify the config file. If it is the only option, then it sets the power mode as default mode configured in the file. This option can be used for developer usage to specify a config file other than the default one. -o, --os <android,l4t>: Perform OS specific operations for power model settings. Argument is case insensitive. -q, --query: Query the current power mode. -w, --wait: delay exectuion by specified amount of seconds. -u, --udata: specify the absolute path for user data file when set or query power mode. Examples: nvpmodel -m 2: switch to POWER_MODEL ID=2 of which settings are defined in the default configuration file. nvpmodel -m 2 -o android: switch to POWER_MODEL ID=2 and perform Android specific operations for power mode. nvpmodel -m 2 -f pm.conf: switch to POWER_MODEL ID=2 of which settings are defined in pm.conf. nvpmodel -m 2 -u /data/status: switch to POWER_MODEL ID=2 and store the active mode as user settings in /data/status. nvpmodel -f pm.conf: read the active mode in user data file and set it as the power mode which is configured in pm.conf. If user data file does not exist or the active mode value is invalid, set defalut mode instead. nvpmodel -q: print the current power mode. nvpmodel -q --verbose: print the current power mode with verbose info. nvpmodel -p -f pm.conf: parse pm.conf and print the result. nvpmodel -d mode_name: set mode_name to fan.
wlan0 IEEE 802.11 ESSID:"RTX2080" Mode:Managed Frequency:2.462 GHz Access Point: 3C:37:86:39:25:4B Bit Rate=72.2 Mb/s Tx-Power=20 dBm Retry short limit:7 RTS thr=2347 B Fragment thr:off Power Management:off Link Quality=70/70 Signal level=-25 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:112 Missed beacon:0
rndis0 no wireless extensions.
lo no wireless extensions.
l4tbr0 no wireless extensions.
dummy0 no wireless extensions.
After some quick googling, I found it is possible that the rtl8192cu Linux driver is problematic. I disabled the driver by running the following command.
1
$ echo"blacklist rtl8192cu" | sudo tee /etc/modprobe.d/blacklist-rtl8192cu.conf
After reboot, we found that the legacy universal driver rtl8xxxu is being used instead.
wlan0 IEEE 802.11 ESSID:"RTX2080" Mode:Managed Frequency:2.462 GHz Access Point: 3C:37:86:39:25:4B Bit Rate=1 Mb/s Tx-Power=20 dBm Retry short limit:7 RTS thr=2347 B Fragment thr:off Power Management:off Link Quality=70/70 Signal level=-34 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:181 Missed beacon:0
rndis0 no wireless extensions.
lo no wireless extensions.
l4tbr0 no wireless extensions.
dummy0 no wireless extensions.
Enable WIFI at Startup
Because we often want to work with Jetson AGX Xavier headlessly, it is necessary to SSH to Xavier over WIFI at startup. However, the WIFI is not enabled at startup by default.
To enable the WIFI at startup, in the Network Connections, we have to make sure that options Automatically connect ... and All users may connect ... are checked.