Skip to content

Jetson Configuration from Scratch

hschier edited this page Mar 13, 2020 · 43 revisions

Board and Software Information:

Flashing the Jetson TX2 with Quasar Support

Based on the guide here.

  • Download, install and run the Nvidia SDK Manager. You will need to make an account. Using a social account such as Google or Facebook will not work.

  • Deselect "Host Machine".

  • Choose your target hardware to be Jetson TX2.

  • Choose your target Operating System to be JetPack 4.3.

  • Continue to the next page.

  • For target components, make sure "Jetson OS" and "Jetson SDK Components" are selected.

  • Accept and continue. You may need to enter your sudo password.

  • After a while it will ask you to flash your Jetson. Skip this.

  • You should now be finished with the Nvidia SDK Manager

  • Download the L4T r32.3.1 – Jetpack 4.3 support package from CTI.

  • Once you download your board support package, copy the downloaded CTI BSP into the ‘Linux_for_Tegra’ directory.

cp Downloads/CTI-L4T-TX2-32.3.1-V001.tgz ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_P3310/Linux_for_Tegra
cd /nvidia/nvidia_sdk/Jetpack_4.2.1_Linux_GA_P3310/Linux_for_Tegra
  • Afterwards, extract the .tgz file to unload the CTI product profiles for flashing. Log in as root user using ‘sudo’ where you will be asked the the password for Ubuntu and run the install script to automatically install the board support package files to the correct locations on the host system.
tar -xzf CTI-L4T-TX2-32.3.1-V001.tgz
cd CTI-L4T
sudo ./install.sh
cd ..
  • Hold the recover button on the CTI carrier, then press the power button. Connect a USB OTG cable from the NVIDIA Development kit or CTI carrier to the host computer. Type ‘lsusb’ to confirm the device is in recovery - you should see a device called "Nvidia Corp.".

  • Run the script to flash the board. RSX uses the "Base" type Quasar board with the TX2.

./cti-flash.sh
  • If flashed correctly, you should receive an output stating:

*** The target t186ref has been flashed successfully. ***

  • Disconnect the USB cable, connect an HDMI monitor then reboot the Jetson by hitting the reset button.

  • If the Jetson gets stuck booting up with a message such as A start job is running for End-user configuration after initial OEM installation (5min 25s / no limit), hit the reset button and it should boot up fine.

  • Set up Ubuntu with:

  • Location: Toronto
  • Username: rsx
  • Device name: rsx-jetson
  • Password: (the 6-character RSX password)

Set the hostname

sudo hostname jetson
sudo reboot

Install RealSense2 Drivers

We have a forked repo for this: https://github.com/rsx-utoronto/buildLibrealsense2TX2

Here are the basic steps for your copy-paste convenience: Make sure you are connected with monitor, mouse and keyboard, not through SSH!

cd ~
git clone https://github.com/rsx-utoronto/buildLibrealsense2TX2.git
cd buildLibrealsense2TX2/
./buildPatchedKernel.sh
sudo cp ./image/Image /boot
./removeAllKernelSources.sh
./patchApplication.sh
./installLibrealsense.sh

Install ROS

Follow these steps to install ros-melodic-desktop-full.

Set up the Catkin environment

Follow these steps.

Add RSX user to Dialout Group

This allows the Jetson to connect to serial devices like the Arduino and IMU

sudo adduser rsx dialout
sudo reboot

Install OpenCV4

From here

cd ~
git clone https://github.com/opencv/opencv.git
git checkout tags/4.2.0
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install
sudo ln -s /usr/include/opencv4/ /usr/include/opencv

Install RealSense2 ROS Wrapper

Modified from here.

Download the required packages, then remove the main package.

sudo apt install ros-melodic-realsense2-camera
sudo apt remove ros-melodic-realsense2-camera

Clone and install the wrapper

git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout 2.2.13
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release realsense2_camera
catkin_make install
source ~/.bashrc

If you experience errors when making:

Make sure that you don't have a duplicate version of librealsense2 headers on the system. You can find all versions by running sudo find / -name rs.hpp. If the output looks something like this:

rsx@jetson:~$ sudo find / -name rs.hpp
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/local/include/librealsense2/rs.hpp
/opt/ros/melodic/include/librealsense2/rs.hpp

Then you would want to rm -rf /opt/ros/melodic/include/librealsense2, since /usr/local/include/librealsense2 is the one you want to keep. You can now try running catkin_make again.

Install IMU/GPS ROS Wrapper

From here.

cd catkin_ws/src
git clone https://github.com/inertialsense/inertial_sense_ros
cd inertial_sense_ros
git submodule update --init --recursive
cd ../..
catkin_make
source ~/.bashrc

Install VScode

  • Install the community-built binary from here using the "APT instructions".
  • Make sure you are not logged in as the super-user (root). If you are, run exit in the terminal.
  • Run:
echo "alias code='code-oss'" >> ~/.bashrc && source ~/.bashrc