Host PC Requirement: Linux (Ubuntu 20.04)
Jetson Device: Jetson AGX Xavier Industrial
Jetson Linux Version: 35.6.2
Jetpack Version: 5.1.5
Jetson Linux Kernel version: 5.15

On this user guide we will focus on creating a custom kernel and a device tree to incorporate VLS-GM2-AR0234 camera module from Technexion. The sensor drivers use the V4L2 interface with the Tegra Camera Framework.

Installation

There are four main files for installing Jetson Linux, for downloading them, check the following URL:
https://developer.nvidia.com/embedded/jetson-linux-r3562#

  • aarch64–glibc–stable-final.tar.gz: Building tools used to build the OS (Bootlin Toolchain gcc 9.3)
  • Jetson_Linux_R35.6.2_aarch64.tbz2: BSP file containing Jetson Linux release package (Driver Package BSP)
  • Tegra_Linux_Sample-Root-Filesystem_R35.6.2_aarch64.tbz2: Jetson Linux Root File System (Sample Root Filesystem)
  • public_sources.tbz2: File for creating and building our custom kernel (Driver Package BSP Sources)

1- Install Jetson Linux build utilities:

Copy

2- Creating enviroment variables

Copy

3- Untar the building tools to $HOME/l4t-gcc

Copy

Create enviroment variables for cross-compiling:

Copy

You can test enviroment variables with below command, this should return “aarch64–glibc–stable-final.tar.gz”

Copy

4- Extract other files:

Copy

5- Assemble the rootfs

Copy

After these steps you can connect an USB-C cable to your Jetson board and choose to flash the board with the un-updated kernel to verify if everything works correctly, if you do not want to do this, skip below step:

Copy

Customizing and Building the Kernel

1- Extract necessary files

Copy

2- Extract the deico_drivers_dts_files.tbz2 into Linux_for_Tegra, to achieve this keep the deico_drivers_dts_files.tbz2 file and the Linux_for_Tegra in the same folder

Copy

Updating the Boot Order

Copy

Change the DefaultBootPriority parameter with the below:

Copy

Compile the updated .dts file to .dtb:

Copy

After changing the boot parameter you can build the custom kernel, this step will take some time:

Copy

This will create a kernel_out directory where the custom kernel will be built. It will also create a build.log file on the same folder.

Replace New Files

Copy

1- Copy with root privilages the tevs.ko max9296a.ko max96717.ko files under Linux_for_Tegra/source/public/kernel_out/drivers/media into

Copy

2- Copy with root privilages the nvgpu.ko under kernel_out/drivers/gpu/nvgpu/nvgpu.ko into

Copy

3- Run below command, change ~/Desktop/jetson with your own top folder:

Copy

4- Run final copying command, change ~/Desktop/jetson with your own top folder:

Copy

Flashing the Board

You need the flash the eMMC first, if you try to flash the NVMe first, Jetson will not boot up.

Before flashing connect Ethernet, USB Mouse/Keyboard to the Jetson.

  1. Connect a reliable USB-C cable to the Jetson’s USB0 Port

  2. Put Jetson in recovery mode by holding the “recovery” button first then power-up the Jetson, yoy can let go the recovery button after powering the board.

  3. Test it on your Host Machine by writing below command, this should list Jetson as “NVIDIA device”

Copy

Start the flashing process:

Copy

Jetson Applications

Install necessary tools, make sure you have internet connection.

Copy

To show the image to the first monitor connected to the Jetson, run below command:

Copy

To test if cameras drivers are probed correctly:

Copy

Copy your new dtb file and reconfigure your board:

Copy

Copy the tegra194-p2888-0008-p2822-0000-deico-tevs-0.dtb into

Copy

Then rename it to kernel_tegra194-p2888-0008-p2822-0000-deico-tevs-0.dtb

Afterwards, run below command to configure the extlinux.conf file:

Copy

Change below line:

Copy

Shutdown the Jetson board running below command, then reboot your board:

Copy

After probbing everything and a fresh reboot run below commands, this will start a video stream on your device:

Copy
Copy

Table of Contents

Share the Post