Qualcomm Device Loader (QDL) 是面向 Qualcomm 设备的跨平台命令行刷写工具。当你需要完全掌控刷写过程、在无图形界面(headless)环境中运行,或希望编写自动化刷写脚本时,请使用此方法。
如需基于 GUI 的替代方案,参见 使用 Qualcomm Launcher 刷写 Qualcomm Linux。
刷写会擦除设备上的所有数据。开始之前请备份所有重要内容。
所需物品
- 配备 12 V 电源的 IQ-9075 EVK
- USB Type-C 线缆(EVK 上的 USB0 端口 → 主机电脑)
- 运行 Ubuntu、Windows 或 macOS 的主机电脑
选择主机操作系统并按照完整流程操作
从 Qualcomm Software Center 下载适用于你主机操作系统的 QDL。
下载 Qualcomm Linux 镜像
-
下载 Qualcomm Linux 镜像。
-
解压 zip 文件
可刷写的产物位于:
其中
<path-to-image> 是解压镜像 zip 时创建的文件夹。
下载 QDL
-
下载 适用于 Linux (x64) 的 QDL 工具 并解压。解压后的文件夹包含
qdl 二进制文件 — 下文称为 <qdl_dir>。
-
安装所需的库(如已安装可跳过):
建议将镜像和 QDL 解压到同一个父文件夹中。这样所有路径都在同一根目录下,便于在 provision、SAIL 和镜像文件夹之间切换。
设置 QDL 驱动
Ubuntu 需要一条 udev 规则,使内核在设备进入 EDL 模式时授予你的用户与设备通信的权限。
-
检查规则是否已存在:
-
如果该文件不存在,用一条命令创建它:
如果文件已存在,确认规则是否已包含在内:
-
重新加载 udev 以应用规则:
如果 USB 线缆已经连接,请断开并重新连接。
设置 QDL 路径
-
使 QDL 可执行:
-
验证 QDL 是否正常工作:
你应该看到 QDL 的用法输出。如果出现错误,请检查路径。
使设备进入 EDL 模式
-
使用 SW2 DIP 拨码开关使设备进入 EDL 模式:将开关 1、2 和 4 拨到 OFF,开关 3 拨到 ON。
-
将 12 V 电源连接到 EVK。
-
将 USB Type-C 线缆从 EVK 的 USB0 连接到主机。
-
拨动电源开关打开设备。
-
确认设备处于 EDL 模式:
预期输出:
如果设备未出现,请重新检查 SW2-3 和 USB-C 线缆。
配置 UFS(Provision UFS)
UFS(Universal Flash Storage)provisioning 将内部存储划分为多个独立的逻辑单元号(LUN),每个 LUN 专用于特定类型的数据(启动、系统、用户数据等)。这可提高访问效率并使分区布局在多次刷写之间保持一致。如果符合以下任一情况,请执行 UFS provisioning:
- 这是一块从未刷写过的全新开发板。
- 你正在升级到新的镜像版本。
- 你正在切换发行版(Qualcomm Linux ↔ Ubuntu)。
-
下载并解压 provision 文件:
-
从解压后的 provision 目录执行 UFS provisioning:
预期输出:
UFS provisioning 完成后,设备会从 USB 断开。请先关闭再打开电源开关,使其重启回到 EDL 模式后再继续。
刷写 SAIL 固件
Safety Island(SAIL)是 IQ-9075 EVK 上一个独立、隔离的处理器,独立于主应用处理器处理安全关键功能。其固件位于专用的 spinor 闪存分区中,必须在主操作系统镜像之前单独刷写。
-
进入解压后镜像中的
sail_nor 子文件夹:
-
刷写 SAIL 固件:
预期输出:
刷写 Qualcomm Linux
-
进入主镜像文件夹:
-
刷写镜像:
当最后一行显示如下内容时,刷写完成:
刷写过程中出现的任何扇区截断(sector-truncation)警告都是无害的。
下载 Qualcomm Linux 镜像
-
下载 Qualcomm Linux 镜像
-
解压 zip 文件
可刷写的产物位于:
其中
<path-to-image> 是解压镜像 zip 时创建的文件夹。
下载 QDL
-
下载 适用于 Windows 的 QDL 工具 并解压。
建议将镜像和 QDL 解压到同一个父文件夹中(例如 C:\Users\you\Downloads\qualcomm-flash\)。这样所有路径都在同一根目录下,便于在 provision、SAIL 和镜像文件夹之间切换。
设置 QDL 驱动
-
卸载任何现有的 Qualcomm USB 驱动(QUD)— 它们会与 QDL 驱动冲突。打开设备管理器,找到你的设备并卸载所有现有驱动。设备不应出现在 COM 端口下。
-
从解压后的 QDL 文件夹运行
install_driver.bat 以安装 WinUSB 驱动。
使设备进入 EDL 模式
-
使用 SW2 DIP 拨码开关使设备进入 EDL 模式:将开关 1、2 和 4 拨到 OFF,开关 3 拨到 ON。
-
将 12 V 电源连接到 EVK。
-
将 USB Type-C 线缆从 EVK 的 USB0 连接到主机。
-
拨动电源开关打开设备。
-
打开设备管理器并确认出现一个 Qualcomm USB 设备(不在 COM 端口下)。
配置 UFS(Provision UFS)
UFS(Universal Flash Storage)provisioning 将内部存储划分为多个独立的逻辑单元号(LUN),每个 LUN 专用于特定类型的数据(启动、系统、用户数据等)。这可提高访问效率并使分区布局在多次刷写之间保持一致。如果符合以下任一情况,请执行 UFS provisioning:
- 这是一块从未刷写过的全新开发板。
- 你正在升级到新的镜像版本。
- 你正在切换发行版(Qualcomm Linux ↔ Ubuntu)。
-
下载 provision.zip 并解压。
-
进入解压后的 provision 文件夹:
-
执行 UFS provisioning(将
<qdl_dir> 替换为你的 QDL 文件夹路径):
命令提示符(Command Prompt):
PowerShell:
预期输出:
UFS provisioning 完成后,设备会从 USB 断开。请先关闭再打开电源开关,使其重启回到 EDL 模式后再继续。
刷写 SAIL 固件
Safety Island(SAIL)是 IQ-9075 EVK 上一个独立、隔离的处理器,独立于主应用处理器处理安全关键功能。其固件位于专用的 spinor 闪存分区中,必须在主操作系统镜像之前单独刷写。
-
进入镜像目录中的
sail_nor 子文件夹:
-
刷写 SAIL 固件(将
<qdl_dir> 替换为你的 QDL 文件夹路径):
命令提示符(Command Prompt):
PowerShell:
预期输出:
刷写 Qualcomm Linux
-
进入主镜像文件夹:
-
刷写镜像(将
<qdl_dir> 替换为你的 QDL 文件夹路径 — Windows 不支持通配符,需显式列出所有文件):
命令提示符(Command Prompt):
PowerShell:
当最后一行显示如下内容时,刷写完成:
下载 Qualcomm Linux 镜像
-
下载 Qualcomm Linux 镜像。
-
解压 zip 文件
可刷写的产物位于:
其中
<path-to-image> 是解压镜像 zip 时创建的文件夹。
下载 QDL
-
下载 适用于 macOS (Apple Silicon) 的 QDL 工具 并解压。解压后的文件夹包含
qdl 二进制文件 — 下文称为 <qdl_dir>。有关工具使用详情,参见该文件夹中的 QDL_User_Guide。
建议将镜像和 QDL 解压到同一个父文件夹中。这样所有路径都在同一根目录下,便于在 provision、SAIL 和镜像文件夹之间切换。
设置 QDL 路径
- 通过 Homebrew 安装所需的库(如已安装可跳过):
brew install 失败?安装 Homebrew 工具
Brew(正式名称为 Homebrew)是一个软件包管理器,可让你在 Mac 终端中使用文本命令安装、更新和删除程序。按照以下步骤安装 homebrew。1. 安装 xcode2. 运行 homebrew 安装命令3. 将 Homebrew 添加到 shell 的 PATH添加以下行4. 应用更改5. 验证安装预期输出:
-
使 QDL 可执行,并清除 macOS 隔离标志(quarantine flag),以便 Gatekeeper 允许其运行:
需要 sudo,因为一些捆绑的库是只读的。如果此步骤之后 macOS 仍然阻止该工具,请在系统设置 → 隐私与安全性中允许它。
-
验证 QDL 是否正常工作:
你应该看到 QDL 的用法输出。如果出现错误,请检查路径。
使设备进入 EDL 模式
-
使用 SW2 DIP 拨码开关使设备进入 EDL 模式:将开关 1、2 和 4 拨到 OFF,开关 3 拨到 ON。
-
将 12 V 电源连接到 EVK。
-
将 USB Type-C 线缆从 EVK 的 USB0 连接到主机。
-
拨动电源开关打开设备。
-
确认设备处于 EDL 模式:
预期输出:
Product ID: 0x9008 确认设备处于 EDL 模式。如果未出现,请重新检查 SW2-3 和 USB-C 线缆。
配置 UFS(Provision UFS)
UFS(Universal Flash Storage)provisioning 将内部存储划分为多个独立的逻辑单元号(LUN),每个 LUN 专用于特定类型的数据(启动、系统、用户数据等)。这可提高访问效率并使分区布局在多次刷写之间保持一致。如果符合以下任一情况,请执行 UFS provisioning:
- 这是一块从未刷写过的全新开发板。
- 你正在升级到新的镜像版本。
- 你正在切换发行版(Qualcomm Linux ↔ Ubuntu)。
-
下载 provision.zip 并解压:
-
将 provision 文件和 QDL 二进制文件移动到同一文件夹中,然后在该文件夹中运行:
在 macOS 上,qdl 二进制文件及其支持库必须与 provision 文件位于同一目录中。将 provision 文件复制到 <qdl_dir> 中,然后在那里运行命令。
预期输出:
UFS provisioning 完成后,设备会从 USB 断开。请先关闭再打开电源开关,使其重启回到 EDL 模式后再继续。
刷写 SAIL 固件
Safety Island(SAIL)是 IQ-9075 EVK 上一个独立、隔离的处理器,独立于主应用处理器处理安全关键功能。其固件位于专用的 spinor 闪存分区中,必须在主操作系统镜像之前单独刷写。
-
进入解压后镜像中的
sail_nor 子文件夹:
-
刷写 SAIL 固件:
预期输出:
刷写 Qualcomm Linux
-
进入主镜像文件夹:
-
刷写镜像:
当最后一行显示如下内容时,刷写完成:
刷写过程中出现的任何扇区截断(sector-truncation)警告都是无害的。
如果刷写在任何环节失败,请断开 USB 线缆和电源,重新连接后从 EDL 模式步骤开始重试。
- 关闭 SW2-3 DIP 开关 — 将其拨下。
- 重新上电设备。它将启动进入新刷写的 Qualcomm Linux 镜像。
后续步骤
继续阅读 设置设备,连接调试 UART、验证软件版本,并启用网络、SSH 和显示。