树莓派IMX415摄像头驱动适配技术指南


适配背景

微雪代工了一个22pin的imx415摄像头(IMX415-98 IR-CUT Camera),我在宣传图中看到了该摄像头连接了树莓派5,于是以为已经适配了,但是买到手后发现并非如此,此摄像头在便利性上较树莓派官方摄像头有较大差距,树莓派官方内核未包含IMX415传感器驱动,经代码审查发现内核上游存在适配版本(drivers/media/i2c/imx415.c)。需要自己手动编译驱动,本指南记录完整适配流程及验证方法。

2025年11月更新:

本文撰写时描述的白平衡问题(图像偏色),实质是IMX415传感器驱动存在的三个耦合性bug

  1. 时序计算错误 - hmax_min参数不正确,导致像素时钟频率偏差
  2. 电源管理泄漏 - 错误处理路径缺少pm_runtime_put,造成资源未释放
  3. 曝光控制缺陷 - VBLANK到EXPOSURE控制流错误,设置错误的曝光值

这些问题通过以下三个关联补丁在主线Linux内核中修复:

树莓派维护的Linux内核于4月合并这些补丁

当前不需要手动编译模块,直接参考微雪官方教程即可。

请注意,本次编辑发现libcamera-*命令已被树莓派弃用,请使用rpicam-*系列命令。

保留以下原文作为技术探索见证,其中的模块编译流程仍有参考价值。


环境准备

  1. 硬件要求:

    • 树莓派5(BCM2712芯片)

    • IMX415摄像头模组

    • 可用存储空间≥2GB

  2. 系统要求:

    • Raspberry Pi OS (Bookworm) 64-bit

    • 安装构建工具链:

sudo apt install build-essential git bc bison flex libssl-dev

驱动适配流程

1. 内核源码获取

git clone --depth=1 https://github.com/raspberrypi/linux
cd linux

2. 内核配置

make bcm2712_defconfig
make menuconfig

配置路径:

Device Drivers 
  → Multimedia support 
    → Media ancillary drivers 
      → Camera sensor devices 
        → <M> Sony IMX415 sensor

3. 设备树编译

make -j$(nproc) dtbs
sudo cp arch/arm64/boot/dts/overlays/imx415*.dtb* /boot/firmware/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/

4. 驱动模块编译

make -C /home/rpi/linux modules_prepare
sudo make CONFIG_VIDEO_IMX415=m -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
sudo cp /home/rpi/linux/drivers/media/i2c/imx415.ko /lib/modules/$(uname -r)/kernel/drivers/media/i2c/
sudo xz -z /lib/modules/$(uname -r)/kernel/drivers/media/i2c/imx415.ko
sudo depmod -a

5. 驱动加载配置

编辑/boot/firmware/config.txt

dtoverlay=imx415
camera_auto_detect=0

6. 依赖模块加载

echo -e "v4l2-async\nv4l2-fwnode\nregmap-i2c" | sudo tee /etc/modules-load.d/imx415.conf

驱动验证

1. 系统重启

sudo reboot

2. 驱动状态检查

# 模块加载验证
lsmod | grep imx415

# 内核日志检查
dmesg | grep -i imx415

# 设备节点检测
v4l2-ctl --list-devices

3. 功能测试

# 静态图像捕获
libcamera-still -o test.jpg
# 视频流测试
libcamera-vid -t 10000 -o test.h264

调用以上命令拍照时,默认白平衡设置可能错误,可参考以下文章配置 DIY相机(一)libcamera库 DIY相机(二)picamera2库

Comments

Leave a comment