# 摄像头故障排查

如果摄像头应用程序不工作，请检查以下内容：

1. 检查摄像头模块连接和 DIP 开关设置。请参阅[入门指南](https://docs.qualcomm.com/doc/80-70018-17SC/topic/stream-cameras.html#getting-started)。
2. 重新启动 cam-server：

# systemctl restart cam-server
        
        or:
        
        # pkill cam-server
        Copy to clipboard
3. 运行单流视频录制用例：

# mount -o rw,remount /usr
        
        gst-launch-1.0 -e qtiqmmfsrc name=camsrc camera=0 ! \
        video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,\
        interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc \
        capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
        video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/mux_avc.mp4
        Copy to clipboard
4. 检查传感器探头。

    1. 使用以下命令收集日志：

# journalctl -f > /opt/log.txt
            Copy to clipboard
    2. 在日志中搜索 “probe success”。Probe success 意味着摄像头模块已通电并响应 I2C 控制。如果特定传感器没有“probe success”日志，则可能是柔性线连接或摄像头模块的问题。

        以下日志指示探测到一个 IMX577 (0x34)、一个 OV9282 (0xc0) 和两个 GMSL 解串器 (0x90)：

Jun 20 02:12:42 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
            cam_sensor_driver_cmd: 938: Probe success,slot:0,slave_addr:0x34,sensor_id:0x577, is always on: 0 Jun 20 02:12:42 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
            cam_sensor_driver_cmd: 938: Probe success,slot:1,slave_addr:0xc0,sensor_id:0x9281, is always on: 0 Jun 20 02:12:43 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
            cam_sensor_driver_cmd: 938: Probe success,slot:4,slave_addr:0x90,sensor_id:0x94, is always on: 0 Jun 20 02:12:43 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
            cam_sensor_driver_cmd: 938: Probe success,slot:5,slave_addr:0x90,sensor_id:0x94, is always on: 0
            Copy to clipboard
5. 检查摄像头传感器驱动程序命令。

    收集日志并搜索 `cam_sensor_driver_cmd`。`CAM_START_DEV Success` 表示摄像头传感器流传输开始。`CAM_STOP_DEV Success` 表示摄像头传感器流传输停止。例如：

Jun 20 02:12:50 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
        cam_sensor_driver_cmd: 1017: CAM_ACQUIRE_DEV Success, sensor_id:0x577,sensor_slave_addr:0x34, is always on: 0 Jun 20 02:12:50 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
        cam_sensor_driver_cmd: 1128: CAM_START_DEV Success, sensor_id:0x577,sensor_slave_addr:0x34
        Jun 20 02:12:53 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
        cam_sensor_driver_cmd: 1156: CAM_STOP_DEV Success,
        sensor_id:0x577,sensor_slave_addr:0x34
        Jun 20 02:12:53 qcm6490 kernel: CAM_INFO: CAM-SENSOR:
        cam_sensor_driver_cmd: 1070: CAM_RELEASE_DEV Success, sensor_id:0x577,sensor_slave_addr:0x34
        Copy to clipboard
6. 检查传感器流传输。

    1. 启用 CSID SOF/EOF IRQ 日志：

# mount -o rw,remount /usr
            # mount -t debugfs none /sys/kernel/debug/
            # echo 0x8 > /sys/module/camera/parameters/debug_mdl
            # echo 3 >/sys/kernel/debug/camera_ife/ife_csid_debug
            # echo 1 > /sys/kernel/tracing/tracing_on
            # echo 1 > /sys/kernel/tracing/events/camera/cam_log_debug/enable # echo 2 > /sys/module/camera/parameters/debug_type
            # cat /sys/kernel/tracing/trace_pipe > trace.txt
            Copy to clipboard
    2. 捕获的日志有助于提供有关 SOF 和 EOF 的详细信息。在日志 (`trace.txt`) 中搜索 `irq_status_ipp`。BIT12 (0x1000) 表示 SOF 数据包，BIT9 (0x200) 表示 EOF 数据包。日志如下所示：

<idle>-0       [000] d.h1. 19287.546764: cam_log_debug:
            CAM_DBG: CAM-ISP: cam_ife_csid_irq: 4996: irq_status_ipp = 0x1110 cam-server-25604     [000] dNH.. 19287.561705: cam_log_debug:
            CAM_DBG: CAM-ISP: cam_ife_csid_irq: 4996: irq_status_ipp = 0xee8
            Copy to clipboard

Last Published: May 06, 2025

[Previous Topic
自动切换 Linear 与 SHDR 模式](https://docs.qualcomm.com/bundle/publicresource/80-70018-17SC/topics/auto-linear-vs-shdr-mode-switch.md)