NVIDIA Jetson driver
Driver for Allied Vision Alvium cameras with MIPI CSI-2 interface for NVIDIA Jetson with JetPack 4.5.1 (L4T 32.5.1)
https://developer.nvidia.com/embedded/jetpack
Overview
The scripts in this project build and install the Allied Vision CSI-2 driver to the NVIDIA Jetson boards.
Platforms: AGX Xavier and Xavier NX development kits.
JetPack 4.5.1 (L4T 32.5.1)
The scripts require Git on the host PC.
Before starting the installation, make sure to create a backup of your Jetson system.
Prerequisites: Install JetPack 4.5.1 to AGX Xavier or Xavier NX developer kit.
Install JetPack 4.5.1 (L4T 32.5.1) as per NVIDIA's instructions https://developer.nvidia.com/embedded/jetpack
Recommendation: Use NVIDIA SDK Manager to install JetPack and useful tools such as CUDA.
https://docs.nvidia.com/sdk-manager/
Accidental overwriting of the driver
As of JetPack 4.4, users can update L4T directly on the board with apt-upgrade
.
Doing this may install newer L4T kernel and device tree files, which overwrite the driver for Allied Vision cameras.
If you use apt-upgrade
nevertheless, please prevent overwriting the driver with:
sudo apt-mark hold 'nvidia-l4t-*'
Note that both reinstalling the driver or putting the update on hold may cause unavailable features or bugfixes from NVIDIA.
Install Alvium CSI-2 driver to Jetson AGX Xavier or Xavier NX
Method A: Use precompiled binaries
Install the precompiled kernel including driver and installation instructions.
-
Extract the tarball on a host PC.
-
The tarball contains helper scripts and another tarball with the precompiled binaries named AlliedVision_NVidia_L4T_32.5.1_.tar.gz.
Copy the tarball to the target board. On the target board, extract the tarball and run the included install script.
Reboot the board. Now you can use the driver.
Method B: Cross-compile binaries from source
The scripts require a host PC with Ubuntu (we recommend version 18.04) installed.
-
Download sources and scripts from https://github.com/alliedvision/linux_nvidia_jetson to the host PC.
On the host PC: -
Run setup.sh, which prepares the directory structure, extracts the file archive, etc.:
$ ./setup.sh <WORK_DIR> <TARGET_BOARD> # For example, $ ./setup.sh work_dir xavier
-
Run build.sh, which builds the kernel, modules, device tree files, and the bootloader:
# Use the same WORK_DIR for all scripts
# Example: $ ./build.sh work_dir xavier all all
$ ./build.sh <WORK_DIR> <TARGET_BOARD> <BUILD_OPTIONS> <COMPONENTS> <OPTIONS>
-
Create a tarball with the kernel image and modules.
$ ./deploy.sh <WORK_DIR> <TARGET_BOARD> tarball
-
Copy the tarball to the target board. On the target board, extract the tarball and run the included install script.
Reboot the board. Now you can use the driver.