Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
e750cd7
d4xx: hwmc return success on ioctl
Mar 20, 2024
cf7fe64
PR #189 from dmipx: d4xx: hwmc return success on ioctl
Nir-Az Mar 21, 2024
9dc4365
vi: channel: verify s/g callbacks for JP5.1.2
Mar 31, 2024
0663a91
PR #191 from dmipx: JP 5.1.2 vi s/g parm callbacks
Nir-Az Apr 1, 2024
60de23b
add more GHA builds
Nir-Az Apr 1, 2024
49fce0d
update build names
Nir-Az Apr 1, 2024
f6feb11
d4xx: bump to version 1.0.1.22
Apr 3, 2024
eb2657f
remove broken package
Nir-Az Apr 4, 2024
556c146
PR #193 from Nir-Az: Add GHA JP5.12 & JP6 builds
Nir-Az Apr 4, 2024
f4f590d
PR #195 from dmipx: D4xx ver 1.0.1.22
Nir-Az Apr 4, 2024
960472a
d4xx: return hwmc error code to lrs sdk.
Apr 1, 2024
b021b17
Merge pull request #192 from dmipx/hwmc-response-buffer
Nir-Az Apr 4, 2024
b82b6bb
Merge remote-tracking branch 'origin/master' into dev
Nir-Az Apr 7, 2024
41456c7
PR #200 from Nir-Az: merge master back to dev
Nir-Az Apr 8, 2024
3a56193
Add permissions restriction
Nir-Az Apr 16, 2024
c854969
PR #201 from IntelRealSense: Add permissions restriction
Nir-Az Apr 17, 2024
c6284d2
add permissions to GHA flow
Nir-Az Apr 17, 2024
6cbc548
PR #203 from Nir-Az: Add permissions to GHA flow
Nir-Az Apr 18, 2024
0b99e99
jp5: tegra-i2c fix return value for tegra_i2c_change
May 13, 2024
a679ec4
PR #204 from dmipx: Tegra i2c patch
Nir-Az May 13, 2024
00ef0e4
d4xx: add recovery string to dfu device
May 20, 2024
c771904
Jetpack 6.0 offirical release support.
May 20, 2024
cd95945
jp6: fix nvidia-oot patch
May 22, 2024
d6b7649
jp6 official: Readme instructions
May 23, 2024
38c2e6f
jp6 - remove kernel image dependency for iio
May 23, 2024
7d047a1
jp6 - kernel config build iio as modules
May 26, 2024
9acac75
jp6 - fix jp5 build
May 26, 2024
06678a1
d4xx: improve commentary
May 27, 2024
3e7cdb7
PR #205 from dmipx: d4xx: add recovery string to dfu device
Nir-Az May 29, 2024
8e977c7
README: split documentation for each jp
May 30, 2024
0690e48
Update README_JP6.md
dmipx May 30, 2024
7a9e997
readme: R-TM branding
Jun 2, 2024
86d43e0
readme: update links and references
Jun 3, 2024
8fa4397
Update README_driver.md
dmipx Jun 3, 2024
49b4564
PR #206 from dmipx: Jetpack 6.0 official release support.
Nir-Az Jun 6, 2024
9535e99
readme fix
Arun-Prasad-V Jun 27, 2024
9beea21
readme: set modules and boot files location
Jun 25, 2024
c09b453
JP4 - updated manual build steps to remove BUILD_NUMBER env dependenc…
Arun-Prasad-V Jul 1, 2024
9380633
PR #211 from dmipx: readme: set modules and boot files location
Nir-Az Jul 1, 2024
55ccc03
Updated AE_SETPOINT_GET control's range
Arun-Prasad-V Jul 2, 2024
efc0149
PR #213 from Arun-Prasad-V: Updated AE_SETPOINT_GET control's range
Nir-Az Jul 2, 2024
ddcafa5
PR #212 from Arun-Prasad-V: readme fix
Nir-Az Jul 2, 2024
9dd602e
basic test infra
Arun-Prasad-V Jul 4, 2024
22e4d0f
added run_ci.py script
Arun-Prasad-V Jul 10, 2024
9b2d2d3
fixing typo
Arun-Prasad-V Jul 10, 2024
9793d82
Check FW version from DFU device info as well
Arun-Prasad-V Jul 11, 2024
bc82cc4
Porting stride alignment patch from JP 5.0.2 to 5.1.2 & 6.0
Arun-Prasad-V Jul 12, 2024
bd44de8
PR #217 from Arun-Prasad-V: Porting stride alignment patch from JP 5.…
Nir-Az Jul 16, 2024
8b96d30
Print test summary in console
Arun-Prasad-V Jul 16, 2024
a45edcc
printing pytest logs on console
Arun-Prasad-V Jul 23, 2024
29c0bb4
PR #214 from Arun-Prasad-V: basic test for validating fw version
Nir-Az Jul 23, 2024
a5e8ae8
Update README.md
Nir-Az Jul 23, 2024
c4d1c08
Enabling dev_dbg() logs support for JP5
Arun-Prasad-V Jul 25, 2024
1aeea5c
Enabling dev_dbg() logs support for JP6
Arun-Prasad-V Jul 27, 2024
16e4021
Updated Readme
Arun-Prasad-V Jul 27, 2024
6085c80
Added comments
Arun-Prasad-V Jul 31, 2024
b1eb164
Merge pull request #220 from Arun-Prasad-V/dev_dbg
Nir-Az Aug 1, 2024
1f88db9
Jp6 - dual camera configuration
Aug 2, 2024
6f284d4
JP6 dual camera configuration documentation.
Aug 4, 2024
c1c9a9e
disabling dev_dbg() logs by default
Arun-Prasad-V Aug 13, 2024
0ce945f
Bump D4xx version for dev branch
Nir-Az Aug 13, 2024
81c2304
PR #224 from Arun-Prasad-V: disabling dev_dbg() logs by default
Nir-Az Aug 13, 2024
c750ae7
d4xx: Locking on open dfu device
Aug 13, 2024
67d7bbb
Merge branch 'dual-jp6' into jp6-dual
Nir-Az Sep 2, 2024
b32fe4b
Merge pull request #229 from dmipx/jp6-dual
Nir-Az Sep 2, 2024
6226701
Merge pull request #225 from IntelRealSense/version-update
Nir-Az Sep 3, 2024
0d7a3b6
add missing attribution: reg, vc-id
Sep 2, 2024
e7f37e5
PR #230 from mengyui: JP6 - Support dual camera configuration
Nir-Az Sep 3, 2024
53e499e
PR #231 from dmipx: JP6 - Dual camera configuration support
Nir-Az Sep 3, 2024
d9e458a
jp6 - dual camera configuration
Arun-Prasad-V Sep 4, 2024
e975cee
PR #234 from Arun-Prasad-V: jp6 - dual camera configuration
Nir-Az Sep 4, 2024
47cf14d
PR #226 from dmipx: d4xx: Locking on open dfu device
Nir-Az Sep 21, 2024
dd7e77c
replace plugins versions withe commit hash
Noy-Zini Sep 24, 2024
315b6ae
PR #236 from Noy-Zini: replace plugins versions withe commit hash
Nir-Az Sep 24, 2024
63e3c09
d4xx: Locking on mux open and close
Arun-Prasad-V Oct 30, 2024
f740b0a
Update d4xx version to 1.0.1.26
Nir-Az Oct 31, 2024
ce601bc
Support for dynamic change of i2c bus_clk_rate
Arun-Prasad-V Nov 4, 2024
dc873d7
PR #241 from Arun-Prasad-V: d4xx: Locking on mux open and close
Nir-Az Nov 11, 2024
61afe61
PR #242 from Arun-Prasad-V: Support for dynamic change of i2c bus_clk…
Nir-Az Nov 11, 2024
dddb7db
Updated JP6 README
Arun-Prasad-V Jan 2, 2025
eb59750
PR #248 from Arun-Prasad-V: Updated JP6 README
Nir-Az Jan 9, 2025
12e8bac
cherry-pick commit 38fc023
remibettan Feb 20, 2025
5813280
PR #256 from remibettan: enabling_mipi_ir_md
remibettan Feb 24, 2025
6dade37
PR #257 from IntelRealSense: MIPI Enabling IR metadata - [BREAKING CH…
Nir-Az Mar 24, 2025
9e93862
add more HW dts
Nir-Az Feb 3, 2025
2ede6f9
fix missing imu on jp6
Nir-Az Apr 10, 2025
da775eb
PR #260 from Nir-Az: Fix IMU for JP6
Nir-Az Apr 10, 2025
059690b
bump version to 1.0.1.27
Nir-Az Apr 10, 2025
d98bc26
PR #261 from Nir-Az: R/1.0.1.27 version update
Nir-Az Apr 10, 2025
13ff493
Merge remote-tracking branch 'origin/master' into r/1.0.1.27
Nir-Az Apr 10, 2025
c536995
PR #263 from Nir-Az: merge master to R/1.0.1.27 to avoid conflicts
Nir-Az Apr 10, 2025
ca9ece9
Update build-jp502.yml
ymodlin Jun 7, 2025
498ca09
Update build-jp512.yml
ymodlin Jun 7, 2025
7876205
Update build-jp6.yml
ymodlin Jun 7, 2025
ab1956f
Update README.md (#268)
Nir-Az Jun 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: C/C++ CI
name: Build JP 5.0.2

on:
push:
Expand All @@ -8,13 +8,15 @@ on:
pull_request:
branches: ['**']

permissions: read-all

jobs:
build:

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 #v3
- name: setup workspace
run: yes | ./setup_workspace.sh 5.0.2
- name: apply patches
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/build-jp512.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build JP 5.1.2

on:
push:
branches:
- master
- dev
pull_request:
branches: ['**']

permissions: read-all

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 #v3
- name: setup workspace
run: yes | ./setup_workspace.sh 5.1.2
- name: apply patches
run: git config --global user.email "builder@example.com" && git config --global user.name "builder" && ./apply_patches.sh apply 5.1.2
- name: build
run: ./build_all.sh 5.1.2
25 changes: 25 additions & 0 deletions .github/workflows/build-jp6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build JP 6.0

on:
push:
branches:
- master
- dev
pull_request:
branches: ['**']

permissions: read-all

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 #v3
- name: setup workspace
run: yes | ./setup_workspace.sh 6.0
- name: apply patches
run: git config --global user.email "builder@example.com" && git config --global user.name "builder" && ./apply_patches.sh apply 6.0
- name: build
run: ./build_all.sh 6.0
239 changes: 40 additions & 199 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,234 +1,75 @@
# Intel® RealSense™ camera driver for GMSL* interface

# D457 MIPI on Jetson AGX Xavier
The RealSense MIPI platform driver enables the user to control and stream RealSense 3D MIPI cameras.
# D457 MIPI on NVIDIA® Jetson AGX Xavier™ and AGX Orin™
The RealSense MIPI platform driver enables the user to control and stream RealSense 3D MIPI cameras.
The system shall include:
* Jetson platform (Currently Supported JetPack versions are: 6.0, 5.1.2, 5.0.2, 4.6.1)
* RealSense De-Serialize board (https://store.intelrealsense.com/buy-intel-realsense-des457.html)
* NVIDIA® Jetson platform (Currently Supported JetPack versions are: 6.0, 5.1.2, 5.0.2, 4.6.1)
* De-Serialize board
* NVIDIA® Jetson AGX Orin™ Passive adapter board from [Leopard Imaging LI-JTX1-SUB-ADPT](https://leopardimaging.com/product/accessories/adapters-carrier-boards/for-nvidia-jetson/li-jtx1-sub-adpt/)
* RS MIPI camera (e.g. https://store.intelrealsense.com/buy-intel-realsense-depth-camera-d457.html)

> Note: This MIPI reference driver is based on RealSense de-serialize board. For other de-serialize boards, modification might be needed.

![image](https://user-images.githubusercontent.com/64067618/216807681-ed679a79-71d6-43ab-bfde-e0abb019b72d.png)


## Jetson AGX Xavier board setup
# Documentation

Please follow the [instruction](https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html) to flash JetPack to the Jetson AGX Xavier with NVIDIA SDK Manager or other methods NVIDIA provides. Make sure the board is ready to use.

## Build kernel, dtb and D457 driver

The developers can set up the source code with NVIDIA's Jetson git repositories by using the provided setup script:

```
# Using setup script, recommended for developers. If JetPack version is not given, default version will be chosen.
./setup_workspace.sh [JetPack_version]
```

Or download Jetson Linux source code tarball from
- [JetPack 6.0-DP BSP sources](https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/sources/public_sources.tbz2)
- [JetPack 5.1.2 BSP sources](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v4.1/sources/public_sources.tbz2)
- [JetPack 5.0.2 BSP sources](https://developer.nvidia.com/embedded/l4t/r35_release_v1.0/sources/public_sources.tbz2)
- [JetPack 4.6.1 BSP sources](https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/sources/t186/public_sources.tbz2)

```
# JetPack 6.0
mkdir -p l4t-gcc/6.0
cd ./l4t-gcc/6.0
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/toolchain/aarch64--glibc--stable-2022.08-1.tar.bz2 -O aarch64--glibc--stable-final.tar.bz2
tar xf aarch64--glibc--stable-final.tar.bz2 --strip-components 1
cd ../..
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/sources/public_sources.tbz2
tar xjf public_sources.tbz2
cd Linux_for_Tegra/source
tar xjf kernel_src.tbz2
tar xjf kernel_oot_modules_src.tbz2
tar xjf nvidia_kernel_display_driver_source.tbz2

# JetPack 5.1.2
mkdir -p l4t-gcc/5.1.2
cd ./l4t-gcc/5.1.2
wget https://developer.nvidia.com/embedded/jetson-linux/bootlin-toolchain-gcc-93 -O aarch64--glibc--stable-final.tar.gz
tar xf aarch64--glibc--stable-final.tar.gz
cd ../..
wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v4.1/sources/public_sources.tbz2
tar xjf public_sources.tbz2
cd Linux_for_Tegra/source/public
tar xjf kernel_src.tbz2

# JetPack 5.0.2
mkdir -p l4t-gcc/5.0.2
cd ./l4t-gcc/5.0.2
wget https://developer.nvidia.com/embedded/jetson-linux/bootlin-toolchain-gcc-93 -O aarch64--glibc--stable-final.tar.gz
tar xf aarch64--glibc--stable-final.tar.gz --strip-components 1
cd ../..
wget https://developer.nvidia.com/embedded/l4t/r35_release_v1.0/sources/public_sources.tbz2
tar xjf public_sources.tbz2
cd Linux_for_Tegra/source/public
tar xjf kernel_src.tbz2

# JetPack 4.6.1
mkdir -p l4t-gcc/4.6.1
cd ./l4t-gcc/4.6.1
wget http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz --strip-components 1
cd ../..
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/sources/t186/public_sources.tbz2
tar xjf public_sources.tbz2
cd Linux_for_Tegra/source/public
tar xjf kernel_src.tbz2
```
- NVIDIA® Jetson AGX Orin™ board setup - AGX Orin™ [JetPack 6.0](./README_JP6.md) setup guide
- NVIDIA® Jetson AGX Xavier™ board setup - AGX Xavier™ [JetPack 5.x.2](./README_JP5.md) setup guide
- NVIDIA® Jetson AGX Xavier™ board setup - AGX Xavier™ [JetPack 4.6.1](./README_JP4.md) setup guide
- Build Tools manual page [Build Manual page](./README_tools.md)
- Driver API manual page [Driver API page](./README_driver.md)

Apply D457 patches and build the kernel image, dtb and D457 driver.
## NVIDIA® Jetson AGX Xavier™ and AGX Orin™ board setup

```
# if using setup script
./apply_patches.sh [--one-cam | --dual-cam] apply [JetPack_version]

# or, if using direct download method
# ./apply_patches_ext.sh [--one-cam | --dual-cam] ./Linux_for_tegra/source/public [JetPack_version]
# for JP6.0, source path is ./Linux_for_tegra/source :
# ./apply_patches_ext.sh ./Linux_for_tegra/source 6.0

Note: The `--one-cam` and `--dual-cam` option applies only for JetPack 5.0.2,
compatible with adapter: https://store.intelrealsense.com/buy-intel-realsense-des457.html.
By setting the `--one-cam` option it builds DT with only camera on GMSL link A (default).
By setting the `--dual-cam` option it builds DT with dual cameras on GMSL link A and B.
The default is to single camera configuration for JetPack 5.0.2.

# build kernel, dtb and D457 driver
# install dependencies
sudo apt install build-essential bc flex bison
# method 1: build kernel Debian packages
./build_all_deb.sh [--no-dbg-pkg] [JetPack_version] [JetPack_source_dir]
# method 2: build kernel and modules only
./build_all.sh [JetPack_version] [JetPack_source_dir]

# remove our patches from JetPack kernel source code if using setup script
# ./apply_patches.sh reset [JetPack_version]
```

Debian packages will be generated in `images` folder.
Please follow the [instruction](https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html) to flash JetPack to the Jetson AGX Xavier with NVIDIA SDK Manager or other methods NVIDIA provides. Make sure the board is ready to use.

## Install kernel and D457 driver to Jetson Orin
<details>
<summary>JP6.0 build results</summary>
**NOTE** : On Jetsons with modified factory setup modifications to build and deploy steps should be made by developer.

- kernel image (not modified): `images/6.0/rootfs/boot/Image`
- dtb overlay: `images/6.0/rootfs/boot/tegra234-camera-d4xx-overlay.dtbo`
- oot modules: `images/6.0/rootfs/lib/modules/5.15.122-tegra/extra`
# JetPack build

Following steps required:
- [JetPack 6.0](./README_JP6.md#build-environment-prerequisites)
- [JetPack 5.1.2](./README_JP5.md#build-kernel-dtb-and-d457-driver)
- [JetPack 5.0.2](./README_JP5.md#build-kernel-dtb-and-d457-driver)
- [JetPack 4.6.1](./README_JP4.md#build-kernel-dtb-and-d457-driver)

1. Copy entire directory `images/6.0/rootfs/lib/modules/5.15.122-tegra/extra/` from host to `/lib/modules/5.15.122-tegra/extra/` on Orin
2. Copy `tegra234-camera-d4xx-overlay.dtbo` from host to `/boot/tegra234-camera-d4xx-overlay.dtbo` on Orin
3. Run $ `sudo /opt/nvidia/jetson-io/jetson-io.py`
1. Configure Jetson AGX CSI Connector
2. Configure for compatible hardware
3. Jetson RealSense Camera D457
4. $ `sudo depmod`
5. $ `echo "d4xx" | sudo tee /etc/modules-load.d/d4xx.conf`
4. Reboot
### Verify driver after installation
- Driver API manual page [Driver API page](./README_driver.md)

Copy them to the right places:
**NOTE**

```
scp -r images/6.0/rootfs/boot/tegra234-camera-d4xx-overlay.dtbo nvidia@10.0.0.116:~/
scp -r images/6.0/rootfs/lib/modules/5.15.122-tegra/extra nvidia@10.0.0.116:~/
# RealSense metadata patched kernel modules
scp -r images/6.0/rootfs/lib/modules/5.15.122-tegra/kernel/drivers/media/v4l2-core/videodev.ko nvidia@10.0.0.116:~/
scp -r images/6.0/rootfs/lib/modules/5.15.122-tegra/kernel/drivers/media/usb/uvc/uvcvideo.ko nvidia@10.0.0.116:~/
# Kernel Image with SENSOR_HID support for RealSense USB cameras with IMU
scp -r images/6.0/rootfs/boot/Image nvidia@10.0.0.116:~/
```
- Each JetPack version's kernel may be different, the user needs to change the kernel version in file names and paths accordingly, for example for JetPack 4.6.1 the version is `4.9.253-d457` or `4.9.253-tegra`, depending on the build method applied.
- For JetPack 4.6.1, the dtb file is not included in the deb package. User needs to manually copy `images/4.6.1/arch/arm64/boot/dts/tegra194-p2888-0001-p2822-0000.dtb` file to board and edit `extlinux.conf` to point to it.
- It's recommended to save the original kernel image as backup boot option in `/boot/extlinux/extlinux.conf`.

on target:

## Available directives on max9295/max9296 register setting

- Dump registers
```
sudo cp ~/tegra234-camera-d4xx-overlay.dtbo /boot/
# backup:
sudo tar -cjf /lib/modules/$(uname -r)/modules_$(uname -r)_extra.tar.bz2 /lib/modules/$(uname -r)/extra
sudo cp -r ~/extra /lib/modules/$(uname -r)/
# enable RealSense metadata:
sudo cp uvcvideo.ko /lib/modules/5.15.122-tegra/kernel/drivers/media/usb/uvc/uvcvideo.ko
sudo cp videodev.ko /lib/modules/5.15.122-tegra/kernel/drivers/media/v4l2-core/videodev.ko
# backup kernel (better to have additional boot entry in extlinux.conf)
sudo cp /boot/Image /boot/Image.orig
sudo cp Image /boot/Image
cat /sys/bus/i2c/drivers/max9295/30-0040/register_dump
cat /sys/bus/i2c/drivers/max9296/30-0048/register_dump
```

Enable d4xx overlay:

With Jetson-IO tool:
`sudo /opt/nvidia/jetson-io/jetson-io.py`
- Dump setting version

1. Configure Jetson AGX CSI Connector
2. Configure for compatible hardware
3. Jetson RealSense Camera D457

With command line

`sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="Jetson RealSense Camera D457"`

Expected:
```
nvidia@ubuntu:~$ sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="Jetson RealSense Camera D457"
Configuration saved to /boot/tegra234-camera-d4xx-overlay.dtbo.
Reboot system to reconfigure.
cat /sys/module/max9295/parameters/max9295_setting_verison
cat /sys/module/max9296/parameters/max9296_setting_verison
```
Enable d4xx autoload:

`echo "d4xx" | sudo tee /etc/modules-load.d/d4xx.conf`

`sudo depmod`

---

</details>

## Install kernel and D457 driver to Jetson AGX Xavier

1. Install the kernel and modules

1.1 If building with `build_all_deb.sh`

Copy the Debian package `linux-image-5.10.104-d457_5.10.104-d457-1_arm64.deb` to the Jetson AGX Xavier board and install with `sudo dpkg -i linux-image-5.10.104-d457_5.10.104-d457-1_arm64.deb`. The header, libc-dev, dbg and firmware packages are optional.
- Disable updating setting dynamically (updating setting manually by running script).
**0** means disable updating setting dynamically, while **1** means enable updating setting dynamically.

1.2 If building with `build_all.sh`

The necessary files are:

- kernel image `images/<JetPack_version>/arch/arm64/boot/Image`
- dtb `images/<JetPack_version>/arch/arm64/boot/dts/nvidia/tegra194-p2888-0001-p2822-0000.dtb`, or `images/4.6.1/arch/arm64/boot/dts/tegra194-p2888-0001-p2822-0000.dtb` for JetPack 4.6.1.
- D457 driver `images/<JetPack_version>/drivers/media/i2c/d4xx.ko`
- UVC Video driver `images/<JetPack_version>/drivers/media/usb/uvc/uvcvideo.ko`
- V4L2 Core Video driver `images/<JetPack_version>/drivers/media/v4l2-core/videobuf-core.ko`
- V4L2 VMalloc Video driver `images/<JetPack_version>/drivers/media/v4l2-core/videobuf-vmalloc.ko`

And copy them to the right places:
```
sudo cp Image /boot
sudo cp tegra194-p2888-0001-p2822-0000.dtb /boot/dtb
sudo cp d4xx.ko /lib/modules/5.10.104-tegra/kernel/drivers/media/i2c/
sudo cp uvcvideo.ko /lib/modules/5.10.104-tegra/kernel/drivers/media/usb/uvc/
sudo cp videobuf-core.ko /lib/modules/5.10.104-tegra/kernel/drivers/media/v4l2-core/
sudo cp videobuf-vmalloc.ko /lib/modules/5.10.104-tegra/kernel/drivers/media/v4l2-core/
sudo depmod
echo 0 | sudo tee /sys/module/max9295/parameters/max9295_dynamic_update
echo 0 | sudo tee /sys/module/max9296/parameters/max9296_dynamic_update
```

2. Edit `/boot/extlinux/extlinux.conf` primary boot option's LINUX/FDT lines to use built kernel image and dtb file:
- Refresh max9295/max9295 register values, this is used for forcely set serdes setting when necessary

```
LINUX /boot/Image-5.10.104-d457
FDT /usr/lib/linux-image-5.10.104-d457/tegra194-p2888-0001-p2822-0000.dtb
echo 1 | sudo tee /sys/bus/i2c/drivers/max9295/30-0040/refresh_setting
echo 1 | sudo tee /sys/bus/i2c/drivers/max9296/30-0048/refresh_setting
```

3. Make D457 I2C module autoload at boot time: `echo "d4xx" | sudo tee /etc/modules-load.d/d4xx.conf`

After rebooting Jetson, the D457 driver should work.

**NOTE**

- Each JetPack version's kernel may be different, the user needs to change the kernel version in file names and paths accordingly, for example for JetPack 4.6.1 the version is `4.9.253-d457` or `4.9.253-tegra`, depending on the build method applied.
- For JetPack 4.6.1, the dtb file is not included in the deb package. User needs to manually copy `images/4.6.1/arch/arm64/boot/dts/tegra194-p2888-0001-p2822-0000.dtb` file to board and edit `extlinux.conf` to point to it.
- It's recommended to save the original kernel image as backup boot option in `/boot/extlinux/extlinux.conf`.
Loading