yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
IMX 415 Camera Module📖
1. Jetson Orin Nano‑NX Usage Course
  • 1. Camera Driver Course
  • 2.1 Advanced AI Vision-Traffic Detection—DeepStream environment
  • 2.2 Advanced AI Vision-Traffic Detection—Four types of detection(traffic)
  • 3. YOLO11 Object Detection
  • 4. YOLO26 Object Detection
  • 5. Mediapipe Environment
  • 6. Mediapipe Hand Detection
  • 7. MediaPipe Face Detection
  • 8. MediaPipe Face Effects
  • 9. MediaPipe 3D Object Recognition
  • 10. MediaPipe Virtual Brush
  • 11. MediaPipe Gesture Recognition
  • 12. MediaPipe Finger Control
  • 13. MediaPipe Posture Estimation
  • 14. MediaPipe Face Mask
  • 15. MediaPipe Overall Detection
  • 16. MediaPipe Green Scene Rremoval(Human)
  • 17. QR code recognition
2. Raspberry Pi 5 Usage Course
  • 1. Camera Driver Course
  • 2. Advanced AI Vision-Human Pose Estimation
  • 3. Target Detection
  • 4. QR Code
  • 5. Face Detection
  • 6. Color Recognition
  • 7. YOLO11 Object Detection
  • 8. YOLO26 Object Detection
  • 9. MediaPipe Face Effects
  • 10. MediaPipe Face Detection
  • 11. MediaPipe 3D Object Recognition
  • 12. MediaPipe Virtual Brush
  • 13. MediaPipe Finger Control
  • 14. MediaPipe Gesture Recognition
3. RDK X5 Usage Course
  • 1. Camera Driver Course
  • 2. Target Detection Algorithm-FCOS
  • 3. Target Detection Algorithm-YOLOv5s
  • 4. YOLO26 Object Detection
4. Camera Bracket Installation (Optional Video)
  • Installation Video
Download
  • Code
  • SystemFile
  • 3D_Model_File
  • Hardware_Info
Download ZIP

Welcome to IMX 415 Camera Module repository

1. Camera Driver Course

Jetson Orin IMX415 Camera Driver Tutorial

Jetson Orin IMX415 Camera Driver Tutorial1. Scope of Application2. Repository File Description3. Pre-installation Confirmation4. Copy Files to Orin4.1 Copy from PC via SCP4.2 Confirm the Files Have Arrived on the Orin5. Back Up the Original Files6. Install the Device Tree and Driver7. Check the extlinux Configuration7.1 Direct Overwrite Configuration7.2 jetson-io.py Configuration8. Reboot9. Check Whether the Driver Is Loaded10. View Kernel Logs11. Check the Camera Device Node12. Test the Image Stream13. FAQ13.1 nv_imx415 Is Not Loaded13.2 Driver Loaded but No /dev/video*13.3 dmesg Permission Issue13.4 nv_imx415 Shows Used by: 013.5 Overlay Not Loaded After Boot13.6 Switch Back to the Original Configuration14. Notes

Tip: If you need to install a bracket, insert all 4 screws at the same time first, then tighten them.

Notes:

  • Contact surface position: The metal contacts at the end of the ribbon cable must face the spring contacts or contact array inside the FFC connector.

  • Blue reinforcement board: The blue reinforcement board is usually located on the non-contact surface of the ribbon cable. In standard installation, the metal contacts and the blue board are usually on opposite sides of the ribbon cable.

  • Silkscreen marking: The side of the ribbon cable with silkscreen text (such as AWM-20624) is usually the back. During installation, it should face away from the contact surface (the gold or silver metal part).

    The metal must face toward the PCB side, otherwise the ribbon cable may burn out.

    Then connect the other end to the metal contacts of the motherboard.

    04d6c1b405c14f9ca2a52b1d1a4047d2

    8190ba52dc8242a69aa0410b274b12ab

    Note: The IMX415 has a DIP switch on its side called IR-CUT, which controls the infrared function. When set to the ON position, infrared is enabled and the image appears reddish — this is normal. When set to the OFF position, infrared is disabled and the image shows normal colors.

    image-20260826192050072

1. Scope of Application

This tutorial applies to the Jetson Orin environment corresponding to the repository:

  • Kernel version: 5.15.148-tegra.
  • Boot method: extlinux.
  • Carrier board/device tree: Based on kernel_tegra234-p3768-0000+p3767-0005-nv-super-modify.dtb and the HDR40 configuration in the repository.
  • Camera: IMX415, 4-lane MIPI CSI.

Do not directly apply the precompiled files to other kernel versions or other carrier boards. The vermagic of nv_imx415.ko must be 5.15.148-tegra.

If you are using our latest factory image, no action is required. If you are using an old image or another image and want to use the IMX415 camera, follow this guide.

2. Repository File Description

Files required:

jetson_orin/
├── boot/
│   ├── extlinux/
│   │   └── extlinux.conf
│   └── tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo
└── lib/
    └── modules/
        └── 5.15.148-tegra/
            └── updates/
                └── drivers/
                    └── media/
                        └── i2c/
                            └── nv_imx415.ko

Corresponding installation locations:

FileTarget path on Orin
tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo/boot/
extlinux.conf/boot/extlinux/
nv_imx415.ko/lib/modules/5.15.148-tegra/updates/drivers/media/i2c/

3. Pre-installation Confirmation

Run on the Orin terminal:

xxxxxxxxxx
uname -r

Must output:

xxxxxxxxxx
5.15.148-tegra

Confirm that the original boot configuration and base device tree exist:

xxxxxxxxxx
ls -l /boot/extlinux/extlinux.conf
ls -l /boot/dtb/kernel_tegra234-p3768-0000+p3767-0005-nv-super-modify.dtb

It is normal if this kernel_tegra234-p3768-0000+p3767-0005-nv-super-modify.dtb file is different; you should operate based on your actual files.

Confirm that the camera is connected to the Orin's 4-lane MIPI CSI interface, and that the FPC ribbon cable direction is correct and locked firmly.

There are 2 ways to configure this. For details, refer to the files in the corresponding downloaded folder. The operations are roughly the same, but they differ in the final configuration step.

image-20260901111621352

4. Copy Files to Orin

4.1 Copy from PC via SCP

Assuming the Orin's IP is 192.168.11.99 and the user is jetson:

​x
scp jetson_orin/boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo jetson@192.168.11.99:/home/jetson/Desktop/
​
scp jetson_orin/boot/extlinux/extlinux.conf jetson@192.168.11.99:/home/jetson/Desktop/
​
scp jetson_orin/lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko jetson@192.168.11.99:/home/jetson/Desktop/

You can refer to the file transfer tutorial to transfer files. The purpose of this step is mainly to transfer the files to your board for easy operation. Transfer them to the corresponding directories, and adjust the commands in the following steps based on your actual paths.

4.2 Confirm the Files Have Arrived on the Orin

xxxxxxxxxx
ls -l /home/jetson/Desktop/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo
ls -l /home/jetson/Desktop/extlinux.conf
ls -l /home/jetson/Desktop/nv_imx415.ko

5. Back Up the Original Files

Back up before modifying the boot configuration:

xxxxxxxxxx
sudo cp /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.bak

If the target file already exists, back it up first as well:

xxxxxxxxxx
if [ -f /boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo ]; then
    sudo cp /boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo /boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo.bak
fi
​
if [ -f /lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko ]; then
    sudo cp /lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko /lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko.bak
fi

6. Install the Device Tree and Driver

xxxxxxxxxx
sudo cp /home/jetson/Desktop/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo /boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo
​
sudo cp /home/jetson/Desktop/extlinux.conf /boot/extlinux/extlinux.conf
​
sudo cp /home/jetson/Desktop/nv_imx415.ko /lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko
​
sudo depmod -a
​
sudo modprobe nv_imx415

7. Check the extlinux Configuration

7.1 Direct Overwrite Configuration

View the configuration file:

xxxxxxxxxx
cat /boot/extlinux/extlinux.conf

Focus on confirming:

xxxxxxxxxx
DEFAULT JetsonIO

And that the JetsonIO section contains:

xxxxxxxxxx
FDT /boot/dtb/kernel_tegra234-p3768-0000+p3767-0005-nv-super-modify.dtb
OVERLAYS /boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo

The OVERLAYS line must not be commented out, must not be another overlay, and the path must match the file under /boot/.

The kernel_tegra234-p3768-0000+p3767-0005-nv-super-modify.dtb file must be consistent with the file in the boot folder. For example, if the file on the Orin board in the picture is called kernel_tegra234-p3768-0000+p3767-0000-nv-super.dtb, you need to change your FDT line to FDT /boot/dtb/kernel_tegra234-p3768-0000+p3767-0000-nv-super.dtb, otherwise the device tree configuration file cannot be loaded. In severe cases, the system may even fail to boot.

c57458ada20d4aa38b97aac0e314f4dc

7.2 jetson-io.py Configuration

Enter the following command in the terminal:

xxxxxxxxxx
sudo /opt/nvidia/jetson-io/jetson-io.py

image-20250122095925818

Use the arrow keys to select Configure Jetson 24pin CSI Connector, then press Enter to enter configuration:

image-20250122095938796

Select Configure for compatible hardware, then press Enter to enter configuration:

image-20250122095957948

Select Camera IMX219 Dual, then press Enter to enter configuration:

image-20260901112748667

Select Save pin changes, then press Enter to enter configuration:

image-20250122100037447

Select Save and reboot to reconfigure pins, then wait for the system to reboot:

image-20250122100100675

8. Reboot

xxxxxxxxxx
sudo reboot

If JetsonIO appears in the boot menu, select it; if only the default item boots automatically, confirm that DEFAULT JetsonIO is in effect.

9. Check Whether the Driver Is Loaded

After reboot, run:

xxxxxxxxxx
lsmod | grep -E 'nv_imx415|tegra_camera'

Expected output is similar to:

xxxxxxxxxx
nv_imx415              20480  0
tegra_camera          217088  4 nv_imx415,nvhost_isp5,nvhost_nvcsi_t194,nvhost_vi5

The 0 after nv_imx415 indicates that there is currently no camera stream, which is normal. The Used by value only changes after a video stream is opened.

View module information:

xxxxxxxxxx
modinfo nv_imx415 | grep -E 'filename|vermagic|depends'

Should show:

xxxxxxxxxx
filename: /lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko
depends: tegra-camera
vermagic: 5.15.148-tegra SMP preempt mod_unload modversions aarch64

10. View Kernel Logs

xxxxxxxxxx
dmesg | grep -Ei 'imx415|nvcsi|vi5|isp5|tegra-camera'

If the following appears:

xxxxxxxxxx
dmesg: read kernel buffer failed: Operation not permitted

It means the current user has no direct permission to read dmesg. Use sudo:

xxxxxxxxxx
sudo dmesg | grep -Ei 'imx415|nvcsi|vi5|isp5|tegra-camera'

If sudo dmesg still fails, you can temporarily disable the dmesg restriction:

xxxxxxxxxx
sudo sysctl kernel.dmesg_restrict=0
sudo dmesg | grep -Ei 'imx415|nvcsi|vi5|isp5|tegra-camera'

You can also view the kernel logs:

xxxxxxxxxx
journalctl -k -b | grep -Ei 'imx415|nvcsi|vi5|isp5|tegra-camera'

11. Check the Camera Device Node

xxxxxxxxxx
ls /dev/video*

image-20260821120325784

12. Test the Image Stream

First find the device number corresponding to the IMX415, then test using the following method:

xxxxxxxxxx
nvgstcapture-1.0

image-20260821120503792

13. FAQ

13.1 nv_imx415 Is Not Loaded

Load it manually:

xxxxxxxxxx
sudo modprobe nv_imx415

If it fails, check:

xxxxxxxxxx
ls -l /lib/modules/5.15.148-tegra/updates/drivers/media/i2c/nv_imx415.ko
sudo depmod -a
modinfo nv_imx415 | grep vermagic

If the kernel version is not 5.15.148-tegra, you need to find an nv_imx415.ko that matches that kernel; do not use the precompiled file in the repository directly.

13.2 Driver Loaded but No /dev/video*

The most common causes are that the overlay did not take effect or the sensor probe failed. Check:

xxxxxxxxxx
cat /boot/extlinux/extlinux.conf
ls -l /boot/tegra234-p3767-camera-p3768-imx415-C-4lane.dtbo
sudo dmesg | grep -Ei 'imx415|tegra-vi|nvcsi|isp5'

You can also check whether the imx415 node appears in the device tree:

xxxxxxxxxx
find /proc/device-tree -iname '*imx415*'

If dmesg shows an I2C probe failure, first check the ribbon cable, camera power supply, and interface direction.

13.3 dmesg Permission Issue

Use:

xxxxxxxxxx
sudo dmesg

If it still reports Operation not permitted:

xxxxxxxxxx
sudo sysctl kernel.dmesg_restrict=0

This setting is restored after reboot and is only used for temporary log viewing.

13.4 nv_imx415 Shows Used by: 0

This is normal. 0 means the module is loaded but no application is currently opening a camera stream; it does not mean the sensor is not recognized. Run v4l2-ctl or a GStreamer capture once and check again.

13.5 Overlay Not Loaded After Boot

Confirm that neither the DEFAULT JetsonIO line nor the OVERLAYS line in /boot/extlinux/extlinux.conf is commented out, and confirm that the corresponding dtbo filename and path match exactly. A reboot is required after modification.

13.6 Switch Back to the Original Configuration

Restore the backup:

xxxxxxxxxx
sudo cp /boot/extlinux/extlinux.conf.bak /boot/extlinux/extlinux.conf
sudo reboot

14. Notes

  • The dtbo in the repository is prepared for p3767/p3768, HDR40 configuration, and 4-lane IMX415. Do not use it directly on other carrier boards.
  • nv_imx415.ko depends on tegra-camera, so tegra_camera must be loaded.
  • Always back up before modifying extlinux to avoid the Orin failing to boot normally.
Advanced AI Vision-Traffic Detection—DeepStream environment

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文