> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 视频问题排查

本节介绍验证 VPU 驱动功能的流程。你可以使用本节提供的命令和示例来：

* 验证 VPU 驱动是否成功加载
* 验证解码/编码是否成功卸载到 VPU
* 调试 VPU 驱动、固件和 GStreamer 视频插件

以下工作流程图展示了验证 VPU 驱动的顺序：

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/h7j64QujhJHkLxyj/Technologies/Video/media/qli-video-technology/Video-Verify-workflow.svg?fit=max&auto=format&n=h7j64QujhJHkLxyj&q=85&s=bdb9e14090065dd146bedca947a254b2" alt="图：验证 VPU 驱动的工作流程" width="806" height="110" data-path="Technologies/Video/media/qli-video-technology/Video-Verify-workflow.svg" />

  <p className="text-sm text-gray-700">
    **图：验证 VPU 驱动的工作流程**
  </p>
</div>

该工作流程图概述了初始化和验证 VPU 驱动所涉及的顺序步骤：

1. 启动驱动以开始启动过程并初始化 VPU 驱动。
2. 验证 VPU 驱动是否成功加载到视频系统中。
3. 验证视频解码和编码任务是否由 VPU 正确处理。
4. 运行用例以验证 VPU 功能。

## **验证 VPU 驱动是否加载到 qcom-multimedia-proprietary-image 上**

内核镜像会加载 VPU 驱动。你可以使用 `lsmod` 或 `udevadm` 命令检查 VPU 驱动是否在 `qcom-multimedia-proprietary-image` 上成功加载。

### **使用 lsmod 命令验证**

1. 在设备 shell 上运行 `lsmod` 命令：
   ```text theme={null}
   lsmod | grep -i "iris_vpu"
   ```
2. 要验证 VPU 驱动是否成功加载，请查看示例输出，并确保在 Module 列下存在 `iris_vpu` 条目：
   ```text theme={null}
   Module    Size    Used by
   iris_vpu   585728    0
   ```

### **使用 udevadm 命令验证**

1. 在设备 shell 上运行 `udevadm` 命令：
   ```text theme={null}
   udevadm info -n /dev/video*
   ```
2. 要验证 VPU 是否成功加载，请确认以下示例输出在 `ID_V4L_PRODUCT` 标签处显示 `msm_vidc_decoder` 和 `msm_vidc_encoder`：
   ```text theme={null}
   P: /devices/platform/soc@0/aa00000.video-codec/video4linux/video32
   M: video32
   R: 32
   U: video4linux
   D: c 81:0
   N: video32
   L: 0
   S: v4l/by-path/platform-aa00000.video-codec-video-index0
   E: DEVPATH=/devices/platform/soc@0/aa00000.video-codec/video4linux/video32
   E: DEVNAME=/dev/video32
   E: MAJOR=81
   E: MINOR=0
   E: SUBSYSTEM=video4linux
   E: USEC_INITIALIZED=3749470
   E: ID_V4L_VERSION=2
   E: ID_V4L_PRODUCT=msm_vidc_decoder
   E: ID_V4L_CAPABILITIES=:
   E: ID_PATH=platform-aa00000.video-codec
   E: ID_PATH_TAG=platform-aa00000_video-codec
   E: ID_FOR_SEAT=video4linux-platform-aa00000_video-codec
   E: DEVLINKS=/dev/v4l/by-path/platform-aa00000.video-codec-video-index0
   E: TAGS=:seat:uaccess:
   E: CURRENT_TAGS=:seat:uaccess:
   |
   P: /devices/platform/soc@0/aa00000.video-codec/video4linux/video33
   M: video33
   R: 33
   U: video4linux
   D: c 81:1
   N: video33
   L: 0
   S: v4l/by-path/platform-aa00000.video-codec-video-index1
   E: DEVPATH=/devices/platform/soc@0/aa00000.video-codec/video4linux/video33
   E: DEVNAME=/dev/video33
   E: MAJOR=81
   E: MINOR=1
   E: SUBSYSTEM=video4linux
   E: USEC_INITIALIZED=3749498
   E: ID_V4L_VERSION=2
   E: ID_V4L_PRODUCT=msm_vidc_encoder
   E: ID_V4L_CAPABILITIES=:
   E: ID_PATH=platform-aa00000.video-codec
   E: ID_PATH_TAG=platform-aa00000_video-codec
   E: ID_FOR_SEAT=video4linux-platform-aa00000_video-codec
   E: DEVLINKS=/dev/v4l/by-path/platform-aa00000.video-codec-video-index1
   E: TAGS=:seat:uaccess:
   E: CURRENT_TAGS=:seat:uaccess:
   ```

<div style={{ borderLeft: '4px solid #3B5BDB', backgroundColor: '#EEF2FF', padding: '12px 16px', borderRadius: '4px', marginTop: '12px', marginBottom: '16px' }}>
  <p style={{ margin: '0 0 6px 0', fontWeight: 'bold', color: '#1E3A8A' }}>注意：</p>
  <p style={{ margin: 0 }}>要识别设备节点，请查看 <code>DEVNAME</code> 标签。在前面的示例中，<code>/dev/video32</code> 对应 VPU 解码器节点，<code>/dev/video33</code> 对应 VPU 编码器节点。</p>
</div>

## **验证 VPU 驱动是否加载到 qcom-multimedia-image 上**

内核镜像会加载 VPU 驱动。你可以使用 `lsmod` 和 `udevadm` 命令检查 VPU 驱动是否在 `qcom-multimedia-image` 上成功加载。

### **使用 lsmod 命令验证**

1. 针对 Dragonwing IQ-8275、Dragonwing IQ-9075、QCS6490，在设备 shell 上运行以下 `lsmod` 命令：
   ```text theme={null}
   lsmod | grep -i "qcom_iris"
   ```
2. 要验证 VPU 驱动是否成功加载，请查看示例输出，并确保在 Module 列下存在 `qcom_iris` 条目：
   ```text theme={null}
   Module    Size    Used by
   qcom_iris   585728    0
   ```
3. 针对 QCS615，在设备 shell 上运行以下 `lsmod` 命令：
   ```text theme={null}
   lsmod | grep -i "venus"
   ```
4. 要验证 VPU 驱动是否成功加载，请查看示例输出，并确保在 Module 列下存在 `venus` 条目：
   ```text theme={null}
   Module    Size    Used by
   venus_enc   28672    0
   venus_dec   28672    0
   ```

### **使用 udevadm 命令验证**

1. 在设备 shell 上运行 `udevadm` 命令：
   ```text theme={null}
   udevadm info -a -n /dev/video*
   ```
   <div style={{ borderLeft: '4px solid #3B5BDB', backgroundColor: '#EEF2FF', padding: '12px 16px', borderRadius: '4px', marginTop: '12px', marginBottom: '12px' }}>
     <p style={{ margin: '0 0 6px 0', fontWeight: 'bold', color: '#1E3A8A' }}>注意：</p>
     <p style={{ margin: 0 }}>请对所有可用的视频节点运行 <code>udevadm info -a -n /dev/video\<0 to 27></code> 命令。</p>
   </div>
2. 要验证 VPU 是否在 Dragonwing IQ-8275/Dragonwing IQ-9075/QCS6490 上成功加载，请确认示例输出针对可用的视频设备显示 `qcom-iris-decoder` 和 `qcom-iris-encoder`：
   > ```text theme={null}
   > '/devices/platform/soc@0/aa00000.video-codec/video4linux/video0':
   > KERNEL=="video0"
   > SUBSYSTEM=="video4linux"
   > DRIVER==""
   > ATTR{dev_debug}=="0"
   > ATTR{index}=="0"
   > ATTR{name}=="qcom-iris-decoder"
   > ATTR{power/control}=="auto"
   > ATTR{power/runtime_active_time}=="0"
   > ATTR{power/runtime_status}=="unsupported"
   > ATTR{power/runtime_suspended_time}=="0"
   > ```
3. 要验证 VPU 是否在 QCS615 上成功加载，请确认示例输出针对可用的视频设备显示 `qcom-venus-decoder` 和 `qcom-venus-encoder`：
   > ```text theme={null}
   > '/devices/platform/soc@0/aa00000.video-codec/video4linux/video0':
   > KERNEL=="video0"
   > SUBSYSTEM=="video4linux"
   > DRIVER==""
   > ATTR{dev_debug}=="0"
   > ATTR{index}=="0"
   > ATTR{name}=="qcom-venus-decoder"
   > ATTR{power/control}=="auto"
   > ATTR{power/runtime_active_time}=="0"
   > ATTR{power/runtime_status}=="unsupported"
   > ATTR{power/runtime_suspended_time}=="0"
   > ```

## **验证解码和编码是否卸载到 qcom-multimedia-proprietary-image 上的 VPU**

要确认视频解码或编码是否成功卸载到 VPU：

1. 循环运行以下命令：

> ```text theme={null}
> cat /proc/interrupts | grep "msm-vidc"
> ```
>
> 示例输出：
>
> ```text theme={null}
> 253: 4        0        0        0        0        0        0        0     GICv3 206 Level  msm-vidc
> ```

2. 验证在运行解码或编码用例时，任意 CPU 上来自 `msm-vidc` 的中断计数是否增加。

## **验证解码/编码是否卸载到 qcom-multimedia-image 上的 VPU**

要确认视频解码或编码是否成功卸载到 VPU：

1. 针对 Dragonwing IQ-8275/Dragonwing IQ-9075/QCS6490，循环运行以下命令：

> ```text theme={null}
> cat /proc/interrupts | grep "iris"
> ```
>
> 示例输出：
>
> ```text theme={null}
> 253: 4        0        0        0        0        0        0        0     GICv3 206 Level  iris
> ```

2. 验证在运行解码或编码用例时，任意 CPU 上来自 `iris` 的中断计数是否增加。
3. 针对 QCS615，循环运行以下命令：

> ```text theme={null}
> cat /proc/interrupts | grep "venus"
> ```
>
> 示例输出：
>
> ```text theme={null}
> 253: 4        0        0        0        0        0        0        0     GICv3 206 Level  venus
> ```

4. 验证在运行解码或编码用例时，任意 CPU 上来自 `venus` 的中断计数是否增加。

## **调试视频**

如果在运行视频解码或编码用例时遇到问题，调试可以帮助定位根本原因。

### **调试 VPU 驱动**

本节提供用于调试 VPU 驱动和固件的命令、调试日志级别以及日志值信息。

以下工作流程图展示了调试 VPU 驱动和固件的顺序：

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/h7j64QujhJHkLxyj/Technologies/Video/media/qli-video-technology/Debug-vpu-workflow.svg?fit=max&auto=format&n=h7j64QujhJHkLxyj&q=85&s=e296e6974d3f9f02c7b517c099e4914a" alt="图：调试 VPU 工作流程" width="1100" height="191" data-path="Technologies/Video/media/qli-video-technology/Debug-vpu-workflow.svg" />

  <p className="text-sm text-gray-700">
    图：调试 VPU 工作流程
  </p>
</div>

该工作流程概述了从 VPU 捕获调试日志的步骤：

1. 挂载调试文件系统以开始调试过程。
2. 选择所需的日志级别。
3. 根据需要为 VPU 驱动和/或固件配置日志级别。
4. 使用 `debugfs` 节点应用所选的日志级别。
5. 开始捕获 VPU 驱动和固件的日志。

按照以下步骤调试 VPU 驱动和固件：

1. 使用以下命令挂载 `debugfs` 节点：
   ```text theme={null}
   mount -t debugfs none /sys/kernel/debug/
   ```
2. 按照下表列出的内容选择 VPU 驱动调试日志级别和调试日志值。你也可以通过调试日志值的位掩码来选择多个调试日志级别。

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div
    style={{
  borderRadius: '12px',
  overflow: 'hidden',
  border: '2px solid #0050D8',
  width: '100%'
}}
  >
    <div
      style={{
    background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
    color: 'white',
    padding: '14px',
    textAlign: 'center',
    fontWeight: 'bold'
  }}
    >
      表：VPU 驱动调试日志级别和值
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      display: 'table',
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'fixed',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '50%' }} />

          <col style={{ width: '50%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
            border: '1px solid #E5E7EB',
            padding: '16px',
            textAlign: 'center',
            fontWeight: 'bold',
            color: '#111827',
            verticalAlign: 'top',
            boxSizing: 'border-box'
          }}
            >
              调试日志级别
            </th>

            <th
              style={{
            border: '1px solid #E5E7EB',
            padding: '16px',
            textAlign: 'center',
            fontWeight: 'bold',
            color: '#111827',
            verticalAlign: 'top',
            boxSizing: 'border-box'
          }}
            >
              调试日志值
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_ERR
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000001
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_HIGH
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000002
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_LOW
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000004
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_PERF
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000008
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_PKT
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000010
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_BUS
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000020
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_STAT
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000040
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_ENCODER
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000100
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_DECODER
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000200
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_PRINTK
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x10000000
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                VIDC\_FTRACE
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x20000000
              </span>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>

  <div><br /> **注意：** VPU 驱动的默认调试级别设置为 `VIDC_ERR`，调试日志仅限于错误场景。 </div>
</div>

3. 将 VPU 驱动调试日志值设置到 `/sys/module/iris_vpu/parameters/msm_vidc_debug` 节点。激活所有消息级别的示例命令：
   ```text theme={null}
   echo 0x1000037F > /sys/module/iris_vpu/parameters/msm_vidc_debug
   ```
4. 按照下表列出的内容选择 VPU 固件调试日志级别和调试日志值。你也可以通过调试日志值的位掩码来选择多个调试日志级别。

<div
  style={{
border: '2px solid #0050D8',
borderRadius: '16px',
padding: '24px',
marginTop: '25px',
backgroundColor: '#FFFFFF',
boxShadow: '0 0 25px rgba(0, 80, 216, 0.15)'
}}
>
  <div
    style={{
  borderRadius: '12px',
  overflow: 'hidden',
  border: '2px solid #0050D8',
  width: '100%'
}}
  >
    <div
      style={{
    background: 'linear-gradient(90deg, #0050D8 0%, #0037A5 100%)',
    color: 'white',
    padding: '14px',
    textAlign: 'center',
    fontWeight: 'bold'
  }}
    >
      表：VPU 固件调试日志级别和值
    </div>

    <div style={{ width: '100%', display: 'block' }}>
      <table
        style={{
      display: 'table',
      width: '100%',
      minWidth: '100%',
      maxWidth: '100%',
      borderCollapse: 'collapse',
      backgroundColor: 'white',
      tableLayout: 'fixed',
      boxSizing: 'border-box'
    }}
      >
        <colgroup>
          <col style={{ width: '55%' }} />

          <col style={{ width: '45%' }} />
        </colgroup>

        <thead>
          <tr style={{ backgroundColor: '#F8FAFC' }}>
            <th
              style={{
            border: '1px solid #E5E7EB',
            padding: '16px',
            textAlign: 'center',
            fontWeight: 'bold',
            color: '#111827',
            verticalAlign: 'top',
            boxSizing: 'border-box'
          }}
            >
              调试日志级别
            </th>

            <th
              style={{
            border: '1px solid #E5E7EB',
            padding: '16px',
            textAlign: 'center',
            fontWeight: 'bold',
            color: '#111827',
            verticalAlign: 'top',
            boxSizing: 'border-box'
          }}
            >
              调试日志值
            </th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_LOW
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000001
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_MED
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000002
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_HIGH
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000004
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_ERROR
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000008
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_FATAL
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000010
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_PERF
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000020
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_CACHE\_LOW
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000100
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_CACHE\_MED
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000200
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_CACHE\_HIGH
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000400
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_CACHE\_ERROR
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00000800
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_CACHE\_FATAL
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00001000
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_CACHE\_PERF
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x00002000
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_PRINTK
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x10000000
              </span>
            </td>
          </tr>

          <tr>
            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                FW\_FTRACE
              </span>
            </td>

            <td style={{ border: '1px solid #E5E7EB', padding: '14px 16px', verticalAlign: 'top', boxSizing: 'border-box' }}>
              <span style={{ fontFamily: 'monospace', fontSize: '13px', backgroundColor: '#F3F4F6', padding: '4px 8px', borderRadius: '6px', color: '#111827', display: 'inline-block' }}>
                0x20000000
              </span>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>

  <div><br />**注意：** VPU 固件的调试日志仅限于错误（error）和致命（fatal）场景，默认调试级别设置为 \`FW\_ERROR | FW\_FATAL\`。 </div>
</div>

5. 将 VPU 固件调试日志值设置到 `/sys/module/iris_vpu/parameters/msm_fw_debug` 节点。激活所有消息级别的示例命令：
   ```text theme={null}
   echo 0x1000037F > /sys/module/iris_vpu/parameters/msm_fw_debug
   ```
6. 在设备 shell 中使用以下命令开始捕获 VPU 驱动和固件的内核消息，并运行用例：
   ```text theme={null}
   cat /proc/kmsg or dmesg -w
   ```

<div style={{ borderLeft: '4px solid #3B5BDB', backgroundColor: '#EEF2FF', padding: '12px 16px', borderRadius: '4px', marginTop: '12px', marginBottom: '16px' }}>
  <p style={{ margin: '0 0 6px 0', fontWeight: 'bold', color: '#1E3A8A' }}>注意：</p>

  <ul style={{ margin: 0, paddingLeft: '20px' }}>
    <li>本节提供的视频调试说明仅适用于 <code>qcom-multimedia-prop-image</code>。</li>
    <li>Adreno VPU 驱动的 <code>qcom-multimedia-image</code> 中没有可用的调试日志。</li>
    <li>要在 <code>qcom-multimedia-image</code> 上调试 Adreno 视频驱动，请在驱动源码中添加 <code>dev\_err</code> 日志并构建 <code>qcom-multimedia-image</code>。</li>
    <li>更多信息，请参阅 <a href="https://dragonwingdocs.qualcomm.com/Technologies/Video/build-video-source-components#vpu-driver-build-instructions-qcom-multimedia-image" style={{ color: '#1D4ED8', textDecoration: 'none' }}>适用于 qcom-multimedia-image 的 VPU 驱动构建说明</a>。</li>
  </ul>
</div>

### **调试 GStreamer 插件**

Qualcomm GStreamer 视频插件符合标准 GStreamer 框架。有关调试这些 GStreamer 插件的信息，请参阅 [调试工具](https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html)。
