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:
2- Creating enviroment variables
3- Untar the building tools to $HOME/l4t-gcc
Create enviroment variables for cross-compiling:
You can test enviroment variables with below command, this should return “aarch64–glibc–stable-final.tar.gz”
4- Extract other files:
5- Assemble the rootfs
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:
Customizing and Building the Kernel
1- Extract necessary files
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
Updating the Boot Order
Change the DefaultBootPriority parameter with the below:
Compile the updated .dts file to .dtb:
After changing the boot parameter you can build the custom kernel, this step will take some time:
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
1- Copy with root privilages the tevs.ko max9296a.ko max96717.ko files under Linux_for_Tegra/source/public/kernel_out/drivers/media into
2- Copy with root privilages the nvgpu.ko under kernel_out/drivers/gpu/nvgpu/nvgpu.ko into
3- Run below command, change ~/Desktop/jetson with your own top folder:
4- Run final copying command, change ~/Desktop/jetson with your own top folder:
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.
-
Connect a reliable USB-C cable to the Jetson’s USB0 Port
-
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.
-
Test it on your Host Machine by writing below command, this should list Jetson as “NVIDIA device”
Start the flashing process:
Jetson Applications
Install necessary tools, make sure you have internet connection.
To show the image to the first monitor connected to the Jetson, run below command:
To test if cameras drivers are probed correctly:
Copy your new dtb file and reconfigure your board:
Copy the tegra194-p2888-0008-p2822-0000-deico-tevs-0.dtb into
Then rename it to kernel_tegra194-p2888-0008-p2822-0000-deico-tevs-0.dtb
Afterwards, run below command to configure the extlinux.conf file:
Change below line:
Shutdown the Jetson board running below command, then reboot your board:
After probbing everything and a fresh reboot run below commands, this will start a video stream on your device:
