Skip to content

Commit

Permalink
[RELEASETOOL] Release r36.3.0-avt1.0.0-beta1
Browse files Browse the repository at this point in the history
  • Loading branch information
dlangenkamp-avt committed Sep 25, 2024
0 parents commit 4fcc5d2
Show file tree
Hide file tree
Showing 8 changed files with 184 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[submodule "alvium-csi2-driver"]
url = https://github.com/alliedvision/alvium-csi2-driver.git
path = alvium-csi2-driver
[submodule "nvidia-oot"]
url = https://github.com/alliedvision/nvidia-oot.git
path = nvidia-oot
[submodule "nvidia-hwpm"]
url = https://github.com/alliedvision/nvidia-hwpm.git
path = nvidia-hwpm
[submodule "nvidia-nvethernetrm"]
url = https://github.com/alliedvision/nvidia-nvethernetrm.git
path = nvidia-nvethernetrm
[submodule "nvidia-nvgpu"]
url = https://github.com/alliedvision/nvidia-nvgpu.git
path = nvidia-nvgpu
107 changes: 107 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
MAKEFILE_DIR := $(abspath $(shell dirname $(lastword $(MAKEFILE_LIST))))
NVIDIA_CONFTEST ?= $(MAKEFILE_DIR)/out/nvidia-conftest

all: nvidia-nvgpu-modules nvidia-oot-modules alvium-driver-modules
install: nvidia-modules-install alvium-driver-modules-install

alvium-driver-modules: nvidia-oot-modules
$(MAKE) \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/nvidia-oot/Module.symvers \
CONFIG_TEGRA_OOT_MODULE=y \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
srctree.alvium-csi2-driver=$(MAKEFILE_DIR)/alvium-csi2-driver \
M=$(MAKEFILE_DIR)/alvium-csi2-driver \
-C $(KERNEL_SRC)

alvium-driver-modules-install: alvium-driver-modules
$(MAKE) \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/nvidia-oot/Module.symvers \
CONFIG_TEGRA_OOT_MODULE=y \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
KERNEL_SRC=$(KERNEL_SRC) \
-C $(MAKEFILE_DIR)/alvium-csi2-driver install


nvidia-oot-conftest:
mkdir -p $(NVIDIA_CONFTEST)/nvidia;
cp -av $(MAKEFILE_DIR)/nvidia-oot/scripts/conftest/* $(NVIDIA_CONFTEST)/nvidia
$(MAKE) -j $(NPROC) ARCH=arm64 \
src=$(NVIDIA_CONFTEST)/nvidia obj=$(NVIDIA_CONFTEST)/nvidia \
CC=$(CROSS_COMPILE)gcc LD=$(CROSS_COMPILE)ld \
NV_KERNEL_SOURCES=$(KERNEL_SRC) \
NV_KERNEL_OUTPUT=$(KERNEL_SRC) \
-f $(NVIDIA_CONFTEST)/nvidia/Makefile

nvidia-hwpm-modules: nvidia-oot-conftest
$(MAKE) \
CONFIG_TEGRA_OOT_MODULE=m \
srctree.hwpm=$(MAKEFILE_DIR)/nvidia-hwpm \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
M=$(MAKEFILE_DIR)/nvidia-hwpm/drivers/tegra/hwpm \
-C $(KERNEL_SRC) \
modules

nvidia-hwpm-modules-install: nvidia-hwpm-modules
$(MAKE) \
CONFIG_TEGRA_OOT_MODULE=m \
srctree.hwpm=$(MAKEFILE_DIR)/nvidia-hwpm \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
M=$(MAKEFILE_DIR)/nvidia-hwpm/drivers/tegra/hwpm \
-C $(KERNEL_SRC) \
modules_install


nvidia-oot-modules: nvidia-oot-conftest nvidia-hwpm-modules
cp -av $(MAKEFILE_DIR)/nvidia-nvethernetrm $(MAKEFILE_DIR)/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm
$(MAKE) \
CONFIG_TEGRA_OOT_MODULE=m \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
srctree.hwpm=$(MAKEFILE_DIR)/nvidia-hwpm \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/nvidia-hwpm/drivers/tegra/hwpm/Module.symvers \
M=$(MAKEFILE_DIR)/nvidia-oot \
-C $(KERNEL_SRC) \
modules

nvidia-oot-modules-install: nvidia-oot-modules
$(MAKE) \
CONFIG_TEGRA_OOT_MODULE=m \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
srctree.hwpm=$(MAKEFILE_DIR)/nvidia-hwpm \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/nvidia-hwpm/drivers/tegra/hwpm/Module.symvers \
M=$(MAKEFILE_DIR)/nvidia-oot \
-C $(KERNEL_SRC) \
modules_install

nvidia-nvgpu-modules: nvidia-oot-modules nvidia-oot-conftest
$(MAKE) \
CONFIG_TEGRA_OOT_MODULE=m \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/nvidia-oot/Module.symvers \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvidia=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
M=$(MAKEFILE_DIR)/nvidia-nvgpu/drivers/gpu/nvgpu \
-C $(KERNEL_SRC) \
modules

nvidia-nvgpu-modules-install: nvidia-nvgpu-modules
$(MAKE) \
CONFIG_TEGRA_OOT_MODULE=m \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/nvidia-oot/Module.symvers \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvidia=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
M=$(MAKEFILE_DIR)/nvidia-nvgpu/drivers/gpu/nvgpu \
-C $(KERNEL_SRC) \
modules_install

nvidia-modules-install: nvidia-nvgpu-modules-install nvidia-oot-modules-install nvidia-hwpm-modules-install

clean:
rm -rf out/
$(MAKE) \
srctree.nvidia-oot=$(MAKEFILE_DIR)/nvidia-oot \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
srctree.hwpm=$(MAKEFILE_DIR)/nvidia-hwpm \
M=$(MAKEFILE_DIR)/nvidia-oot -C $(KERNEL_SRC) clean
57 changes: 57 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Allied Vision Alvium CSI driver for Jetpack 6

## Compatibility
### SoMs + Carrier Boards
- Jetson AGX Orin DevKit
- Jetson Orin Nano DevKit
- Jetson Orin NX + Jetson Orin Nano DevKit carrier
### Cameras
- All Alvium C cameras with Firmware 13 or newer

## Installation
1. Download the two debian packages from the releases section to our target board
2. Install the packages by running:
```shell
sudo apt install ./alvium-csi2-driver-<version>.deb ./avt-nvidia-l4t-kernel-oot-modules-<version>.deb
```
3. Configure the device tree
1. Start the jetson-io tool
```shell
sudo /opt/nvidia/jetson-io/jetson-io.py
```
2. Select the CSI connector configuration
- For AGX Orin: "Jetson AGX CSI Connector"
- For Orin Nano / NX: "Jetson 24pin CSI Connector"
3. Select "Configure for compatible hardware"
4. Select the "Allied Vision Alvium Dual" configuration
5. Select "Save pin changes"
6. Select "Save and reboot to reconfigure pins"
4. After the board has reboot the camera can be access with V4L2 and Vimba X

## Building
1. Clone this repository including all submodules
2. Download the Jetson Linux driver package and cross compiler from: [Jetson Linux Downloads](https://developer.nvidia.com/embedded/jetson-linux)
3. Extract the driver package:
```shell
tar -xf jetson_linux_r36*.bz2
```
4. Extract the kernel headers from the driver package:
```shell
cd Linux_for_Tegra/kernel/
tar -xf kernel_headers.tbz2
```
5. Extract the cross compiler
6. Build the modules:
```shell
export ARCH=arm64
export CROSS_COMPILE=<path to cross compiler>/bin/aarch64-buildroot-linux-gnu-
export KERNEL_SRC=Linux_for_Tegra/kernel/linux-headers-*-linux_x86_64/3rdparty/canonical/linux-jammy/kernel-source/
make all
```
7. Install the driver modules
```shell
export INSTALL_MOD_PATH=<path to install directory>
make install
```


1 change: 1 addition & 0 deletions alvium-csi2-driver
Submodule alvium-csi2-driver added at 740058
1 change: 1 addition & 0 deletions nvidia-hwpm
Submodule nvidia-hwpm added at 1e751f
1 change: 1 addition & 0 deletions nvidia-nvethernetrm
Submodule nvidia-nvethernetrm added at 1150fc
1 change: 1 addition & 0 deletions nvidia-nvgpu
Submodule nvidia-nvgpu added at 53708f
1 change: 1 addition & 0 deletions nvidia-oot
Submodule nvidia-oot added at 7046c8

0 comments on commit 4fcc5d2

Please sign in to comment.