> ## 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.

# 使用 PCAT 烧录

## 简介

使用 PCAT 烧录是 QDL 的替代方案，可提供更集成、更友好的烧录体验。如果您是能够访问 Qualcomm 合作伙伴工具的注册用户，则可以使用此流程。

要使用 PCAT 烧录预构建镜像，需要执行以下步骤：

* 安装烧录镜像所需的软件包 – [安装所需软件包](#install-required-packages)
* 获取可烧录镜像 – [获取可烧录镜像](#obtain-flashable-image)
* 确定设备的正确存储配置 – [确定存储配置](#identify-storage-configuration)
* 根据参考套件选择合适的 CDT – [配置 CDT](#configure-cdt)
* 将设备切换到紧急下载 (EDL) 模式 – [将设备切换到 EDL 模式](#switch-device-to-edl-mode)
* 使用 PCAT 烧录软件 – [烧录软件镜像](#flash-software-image)

## 安装所需软件包

`qsc-cli` 是 Qualcomm 提供的命令行工具，为访问、管理和构建
Qualcomm 软件提供端到端的工作流。按照以下步骤在你的系统上安装
`qsc-cli`：

* 访问 [Qualcomm 支持页面](https://www.qualcomm.com/support/working-with-qualcomm)注册你的 Qualcomm 电子邮件 ID。

* 下载 `qsc-cli` 的 Debian 软件包：

  <CodeGroup>
    ```bash x86 theme={null}
    wget https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Software_Center/Linux/Debian/latest.deb -O qsc_installer.deb
    ```

    ```bash ARM64 theme={null}
    wget https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Software_Center/Linux/ARM64/Debian/latest.deb -O qsc_installer.deb
    ```
  </CodeGroup>

* 安装 `qsc-cli` Debian 软件包：
  ```bash theme={null}
  sudo apt update
  sudo apt install ./qsc_installer.deb
  ```

* 使用你的 Qualcomm ID 登录 `qsc-cli`。对大多数用户而言，Qualcomm ID 就是你的
  电子邮件地址。此命令会打开浏览器窗口以完成身份验证。如果浏览器
  没有自动打开，请复制终端中打印的链接并粘贴到浏览器中
  完成身份验证。
  ```bash theme={null}
  qsc-cli login
  ```

`pcat` 是 Qualcomm 提供的刷写工具，为将软件镜像烧录到
Qualcomm 设备提供了引导式的集成界面。按照以下
步骤在你的系统上安装 `pcat`：

* 在主机上安装以下工具：
  ```bash theme={null}
  qsc-cli tool install --name quts --activate-default-license
  qsc-cli tool install --name qud --activate-default-license
  qsc-cli tool install --name pcat --activate-default-license
  ```
  <Note>
    如果在安装 QUD 时遇到需要在 Linux 主机上注册公钥的问题，请参阅位于 `/opt/QTI/sign/signReadme.txt` 的 README 文件中的说明。
  </Note>

* 确认已安装目录中是否存在 `QTI_HS-USB_QDLoader` 驱动：

  ```bash theme={null}
  ls –la /dev/Q*
  ```

  ```text Sample output theme={null}
  crw-rw-rw- 1 root 242 0 Dec 10 10:51 /dev/QTI_HS-USB_QDLoader_9008_3-8:1.0
  ```

## 获取可烧录镜像

在烧写之前，您的主机上需要有一个可烧写的镜像目录。
根据获取镜像的方式，选择以下路径之一。

<Tabs>
  <Tab title="预构建镜像">
    预构建镜像以压缩包的形式分发。从[获取预构建镜像](/zh/Key-Documents/Flash-Guide/obtain-prebuilts)
    部分下载适用于您设备的压缩包，解压后进入解压出的目录。

    * 解压压缩包：

      ```bash theme={null}
      unzip <prebuilt-image>.zip
      ```

    * 进入解压后的目录：

      ```bash theme={null}
      cd <unzipped-image-directory>/images/<machine>/<image>-<machine>
      ```
  </Tab>

  <Tab title="编译的镜像">
    构建成功后，可烧写的镜像目录已存在于您的构建输出中。直接进入该目录即可。

    ```bash theme={null}
    cd build/tmp/deploy/images/<machine>/<image>-<machine>.rootfs.qcomflash
    ```
  </Tab>
</Tabs>

<Warning>
  除非另有说明，后续所有指令都应在此目录中运行。
</Warning>

## 确定存储配置

机器配置默认启用 UFS 或 eMMC 存储，这些设置也反映在预构建镜像中。如果需要修改存储类型，则必须更新配置并重新构建镜像，因为预构建二进制文件中无法更改此设置。

支持平台的默认存储配置如下

| 机器           | 存储类型       |
| :----------- | :--------- |
| IQ-9075-EVK  | UFS        |
| IQ-8275-EVK  | UFS        |
| QCS6490      | UFS        |
| IQ-615-EVK   | EMMC       |
| IQ-X7181-EVK | UFS/SPINOR |
| IQ-X5121-EVK | UFS/SPINOR |

## 配置 CDT

配置数据表 (CDT) 包含正确进行平台初始化所需的
设备特定信息。刷写之前，你需要根据参考套件
选择正确的 CDT 文件。

<Tabs>
  <Tab title="QCS6490/QCS5430">
    * qcomflash tarball 中提供了多个 CDT 二进制文件。
      为你的套件选择正确的 CDT 二进制文件，并用它替换默认的
      `cdt.bin`。

          <CodeGroup>
            ```bash Rb3Gen2 Core Kit theme={null}
            cp cdt_core_kit.bin cdt.bin
            ```

            ```bash Rb3Gen2 Vision Kit theme={null}
            cp cdt_vision_kit.bin cdt.bin
            ```

            ```bash Rb3Gen2 Industrial Kit theme={null}
            cp cdt_industrial_kit.bin cdt.bin
            ```

            ```bash Rb3Gen2 Industrial Mezz Kit theme={null}
            cp cdt_industrial_mezz_kit.bin cdt.bin
            ```
          </CodeGroup>

    * 整个刷写过程成功完成后，你可以通过查看 UEFI 串口日志
      来验证是否加载了正确的 CDT。使用 *Subtype* 字段来识别
      加载到设备上的 CDT。

      ```text Sample output theme={null}
      Platform Init [ 1966] BDS
      Platform : IOT
      Subtype : 2
      Boot Device : UFS
      Chip Name : QCS6490
      Chip Ver : 1.0
      ```

      | Subtype | 平台描述                     |
      | ------- | ------------------------ |
      | 2       | Vision Kit（Moselle 连接）   |
      | 5       | RB3Gen2 Core Kit（HSP 连接） |
      | 7       | Vision Kit（HSP 连接）       |
      | 9       | Industrial Kit           |
      | 13      | Industrial Mezz Kit      |
  </Tab>

  <Tab title="IQ-X7181/IQ-X5121">
    * 从 [CodeLinaro](https://artifacts.codelinaro.org/ui/native/codelinaro-le/Qualcomm_Linux/X1E80100/cdt/) 下载 CDT 二进制文件：

      ```bash theme={null}
      curl -OL https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/X1E80100/cdt/IQ-X.1.4-EVK-CDT.tar.gz
      ```

    * 解压 tarball 归档文件：

      ```bash theme={null}
      tar -xzf IQ-X.1.4-EVK-CDT.tar.gz
      ```

    * 进入解压后的目录：

      ```bash theme={null}
      cd IQ-X.1.4-EVK-CDT
      ```

    * 刷写 CDT：

      ```bash theme={null}
      qdl --storage spinor xbl_s_devprg_ns.melf rawprogram0_BLANK_GPT.xml
      qdl --storage spinor xbl_s_devprg_ns.melf rawprogram0_WIPE_PARTITIONS.xml
      qdl xbl_s_devprg_ns.melf rawprogram0.xml patch0.xml
      ```

    * 返回上一级目录：
      ```bash theme={null}
      cd ..
      ```
  </Tab>

  <Tab title="其他套件">
    * 对于 IQ-9075、IQ-8275 和 IQ-615 套件，qcomflash tarball 中
      包含的默认 `cdt.bin` 已经是适用于你的套件的正确 CDT。刷写前
      无需执行任何选择 CDT 的操作。
  </Tab>
</Tabs>

## 将设备切换到 EDL 模式

在刷写软件镜像之前，设备必须处于 EDL 模式。
默认情况下，Qualcomm 支持的设备在上电后如果设备上没有
镜像或镜像已损坏，会进入 EDL 模式。按照以下
步骤强制设备进入 EDL 模式。

<Tabs>
  <Tab title="QCS6490/QCS5430">
    * 按住 **F\_DL** 按钮。
          <img src="https://mintcdn.com/qualcomm-prod/yUQ5Z3Vx_Ib3ymoN/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/RB3Gen2_device.png?fit=max&auto=format&n=yUQ5Z3Vx_Ib3ymoN&q=85&s=17b1e6d34fbe1bf9db626195064faead" alt="Figure: RB3Gen2_device" width="1001" height="710" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/RB3Gen2_device.png" />
    * 将设备连接到 **+12 V 壁式电源**。
    * 通过 USB Type-C 接口将设备连接到主机系统。
    * 松开 **F\_DL** 按钮。设备此时处于 EDL 模式。
    * 整个刷写过程完成后，拔下电源线以退出 EDL 模式。
  </Tab>

  <Tab title="IQ-9075">
    <Tabs>
      <Tab title="IQ-9 Beta 评估套件 (EVK)">
        * 将设备连接到 **+12 V 壁式电源**。
        * 通过 USB Type-C 接口将设备连接到主机系统。
        * 打开拨码开关 S5-4，使设备进入 EDL 模式。
                  <img src="https://mintcdn.com/qualcomm-prod/yUQ5Z3Vx_Ib3ymoN/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/qcs9075_qdl_mode_manual.png?fit=max&auto=format&n=yUQ5Z3Vx_Ib3ymoN&q=85&s=92813b6ee0591d3d6b88d2426a141c7e" alt="Figure: qcs9075_qdl_mode_manual" width="1094" height="305" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/qcs9075_qdl_mode_manual.png" />
        * 整个刷写过程完成后，关闭 S5-4 拨码开关。
      </Tab>

      <Tab title="IQ-9075 EVK">
        * 将设备连接到 **+12 V 壁式电源**。
        * 通过 USB Type-C 接口将设备连接到主机系统。
        * 打开拨码开关 SW2-3，使设备进入 EDL 模式。
                  <img src="https://mintcdn.com/qualcomm-prod/yUQ5Z3Vx_Ib3ymoN/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/IQ_9075_EVK.png?fit=max&auto=format&n=yUQ5Z3Vx_Ib3ymoN&q=85&s=eea5c7a7f4461b6d662d37f42d40595b" alt="Figure: IQ_9075_EVK" width="1131" height="318" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/IQ_9075_EVK.png" />
        * 整个刷写过程完成后，关闭 SW2-3 拨码开关。
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="IQ-8275">
    <Tabs>
      <Tab title="IQ-8 Beta 评估套件 (EVK)">
        * 将设备连接到 **+12 V 壁式电源**。
        * 通过 USB Type-C 接口将设备连接到主机系统。
        * 打开拨码开关 S5-4，使设备进入 EDL 模式。
                  <img src="https://mintcdn.com/qualcomm-prod/yUQ5Z3Vx_Ib3ymoN/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/qcs9075_qdl_mode_manual.png?fit=max&auto=format&n=yUQ5Z3Vx_Ib3ymoN&q=85&s=92813b6ee0591d3d6b88d2426a141c7e" alt="Figure: qcs9075_qdl_mode_manual" width="1094" height="305" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/qcs9075_qdl_mode_manual.png" />
        * 整个刷写过程完成后，关闭 S5-4 拨码开关。
      </Tab>

      <Tab title="IQ-8275 EVK">
        * 将设备连接到 **+12 V 壁式电源**。
        * 通过 USB Type-C 接口将设备连接到主机系统。
        * 打开拨码开关 S2-8，使设备进入 EDL 模式。
                  <img src="https://mintcdn.com/qualcomm-prod/yUQ5Z3Vx_Ib3ymoN/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/IQ_9075_EVK.png?fit=max&auto=format&n=yUQ5Z3Vx_Ib3ymoN&q=85&s=eea5c7a7f4461b6d662d37f42d40595b" alt="Figure: IQ_9075_EVK" width="1131" height="318" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/IQ_9075_EVK.png" />
        * 整个刷写过程完成后，关闭 S2-8 拨码开关。
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="IQ-615">
    * 将设备连接到 **+12 V 壁式电源**。
    * 通过 USB Type-C 接口将设备连接到主机系统。
    * 关闭 SW 开关并打开拨码开关 SW3-4，使设备进入 EDL 模式。
          <img src="https://mintcdn.com/qualcomm-prod/yUQ5Z3Vx_Ib3ymoN/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/qcs615_qdl_mode_manual.png?fit=max&auto=format&n=yUQ5Z3Vx_Ib3ymoN&q=85&s=c212e427805d9a1f5e3125e14e008681" alt="Figure: qcs615_qdl_mode_manual" width="800" height="667" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/qcs615_qdl_mode_manual.png" />
    * 整个刷写过程完成后，打开 SW 开关并关闭 SW3-4 拨码开关。
  </Tab>

  <Tab title="IQ-X7181/IQ-X5121">
    * 将设备连接到 **+12 V 壁式电源**。
    * 通过 USB Type-C 接口将设备连接到主机系统。
    * 打开 S2-4 开关，使设备进入 EDL 模式。
          <img src="https://mintcdn.com/qualcomm-prod/Im5W2pUR5LdqxAI6/Key-Documents/Flash-Guide/media/k2c-qli-build-ga/x7181_edl_mode_manual.png?fit=max&auto=format&n=Im5W2pUR5LdqxAI6&q=85&s=9f8837fbba10eeb06d35967ed4db2a57" alt="Figure: x7181_edl_mode_manual" width="1429" height="718" data-path="Key-Documents/Flash-Guide/media/k2c-qli-build-ga/x7181_edl_mode_manual.png" />
    * 整个刷写过程完成后，关闭 S2-4 拨码开关。
  </Tab>
</Tabs>

运行以下命令，验证设备是否处于 EDL 模式：

```bash theme={null}
lsusb
```

```text Expected output theme={null}
Bus 002 Device 014: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
```

## 烧录软件镜像

* 检查 PCAT 是否能识别设备：

  ```bash theme={null}
  pcat -devices
  ```

  ```text Sample output theme={null}
  Searching devices in Device Manager, please wait for a moment…
  ID | DEVICE TYPE | DEVICE STATE | SERIAL NUMBER | ADB SERIAL NUMBER | DESCRIPTION
  NA | NA          | EDL          | BE116704      | be116704          | Qualcomm USB Composite Device:QUSB_BULK_CID:042F_SN:BE116704
  ```

* 选择合适的存储选项，使用 PCAT 刷写软件镜像：

  <CodeGroup>
    ```bash UFS theme={null}
    pcat -PLUGIN SD -DEVICE <device-serial-number> -BUILD $PWD -MEMORYTYPE UFS -FLAVOR asic
    ```

    ```bash EMMC theme={null}
    pcat -PLUGIN SD -DEVICE <device-serial-number> -BUILD $PWD -MEMORYTYPE EMMC -FLAVOR asic -RAWPROG rawprogram0.xml -PATCHPROG patch0.xml
    ```
  </CodeGroup>

* 如果在终端窗口中看到以下消息，则表示刷写成功：
  ```text Sample output theme={null}
  xxxx INFO] [ FIRMWARE DOWNLOAD LOG ] Process Finished
  xxxx INFO] Status - TRUE
  xxxx INFO] Response - Downloading software images completed on the device Qualcomm USB Composite Device:QUSB_BULK_CID:042F_SN:BE116704
  ```

* 刷写操作成功后，运行 `lsusb` 命令，即可在终端窗口中
  看到如下消息所示的设备信息：
  ```text Sample output for QCS6490 theme={null}
  Bus 002 Device 003: ID 05c6:9135 Qualcomm, Inc. qcs6490-rb3gen2-vision-kit
  Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  ```

## 相关主题

* [如何使用 UART 切换到 EDL 模式？](./how-to-trigger-edl-with-uart)
* [如何使用 ADB 切换到 EDL 模式？](./how-to-trigger-edl-with-adb)
