烧写会擦除设备上的所有数据。开始前请备份所有重要内容。
所需物品
- 带 12 V 电源的 IQ-8275 EVK
- USB Type-C 线缆(EVK 上的 USB0 端口 → 主机计算机)
- 运行 Ubuntu、Windows 或 macOS 的主机计算机
选择您的主机操作系统并按完整流程操作
从 Qualcomm Software Center 为您的主机操作系统下载 QDL。- Ubuntu
- Windows
- macOS
下载 Ubuntu 镜像
从 Canonical Ubuntu 网站下载预构建的 Ubuntu 镜像和启动固件。请务必在 Canonical Ubuntu 网站上确认最新构建的可用性。以下链接固定为最新验证过的版本。
-
运行以下脚本下载并组装可烧写的镜像文件夹。根据所需镜像传入
--server或--desktop:./prepare_iq8275_ubuntu_flashable.sh --server这会在./prepare_iq8275_ubuntu_flashable.sh --desktopiq8275_flash_prep_work/IQ8275_ubuntu_images中生成可烧写的镜像 — 下文称为<path-to-image>。要更新到新的 Canonical 版本,请编辑脚本中的CANONICAL_BASE、SERVER_IMG_XZ、DESKTOP_IMG_XZ和BOOT_FW_URL_DEFAULT。prepare_iq8275_ubuntu_flashable.sh(完整脚本)
#!/usr/bin/env bash set -euo pipefail FLAVOR="${FLAVOR:-server}" # server | desktop OUT_DIR="${OUT_DIR:-IQ8275_ubuntu_images}" WORK_DIR="${WORK_DIR:-$PWD/iq8275_flash_prep_work}" CANONICAL_BASE="https://people.canonical.com/~platform/images/qualcomm-iot/ubuntu-24.04/ubuntu-24.04-x08" SERVER_DIR="${CANONICAL_BASE}/ubuntu-server-24.04" DESKTOP_DIR="${CANONICAL_BASE}/ubuntu-desktop-24.04" SERVER_IMG_XZ="iot-qualcomm-dragonwing-classic-server-2404-x08-20260210.4096b.img.xz" DESKTOP_IMG_XZ="iot-qualcomm-dragonwing-classic-desktop-2404-x08-20260210.4096b.img.xz" BOOT_FW_URL_DEFAULT="https://artifacts.codelinaro.org/artifactory/qli-ci/flashable-binaries/ubuntu-fw/QCS8300/QLI.1.7-Ver.1.1/QLI.1.7-Ver.1.1-ubuntu-QCS8300-nhlos-bins.tar.gz" BOOT_FW_URL="${BOOT_FW_URL:-$BOOT_FW_URL_DEFAULT}" usage() { cat <<EOF Usage: $(basename "$0") [--server|--desktop] [--out <folder>] [--work <folder>] Examples: ./prepare_iq8275_ubuntu_flashable.sh --server ./prepare_iq8275_ubuntu_flashable.sh --desktop --out IQ8275_ubuntu_images_desktop Environment overrides: FLAVOR=server|desktop OUT_DIR=... WORK_DIR=... BOOT_FW_URL=... EOF } while [[ $# -gt 0 ]]; do case "$1" in --server) FLAVOR="server"; shift ;; --desktop) FLAVOR="desktop"; shift ;; --out) OUT_DIR="$2"; shift 2 ;; --work) WORK_DIR="$2"; shift 2 ;; -h|--help) usage; exit 0 ;; *) echo "Unknown option: $1"; usage; exit 1 ;; esac done need_cmd() { command -v "$1" >/dev/null 2>&1 || { echo "ERROR: missing '$1'"; exit 1; }; } need_cmd curl; need_cmd tar; need_cmd unxz; need_cmd file need_cmd find; need_cmd cp; need_cmd head; need_cmd ls; need_cmd mkdir; need_cmd rm download() { local url="$1" dst="$2" echo "Downloading: $url" curl -L --fail --retry 3 --retry-delay 2 -o "$dst" "$url" } mkdir -p "$WORK_DIR" "$OUT_DIR" cd "$WORK_DIR" if [[ "$FLAVOR" == "server" ]]; then BASE_DIR="$SERVER_DIR"; IMG_XZ="$SERVER_IMG_XZ" elif [[ "$FLAVOR" == "desktop" ]]; then BASE_DIR="$DESKTOP_DIR"; IMG_XZ="$DESKTOP_IMG_XZ" else echo "ERROR: FLAVOR must be 'server' or 'desktop'"; exit 1 fi IMG_URL="${BASE_DIR}/${IMG_XZ}" DTB_URL="${BASE_DIR}/dtb.bin" RAWPROGRAM_URL="${BASE_DIR}/rawprogram0.xml" download "$IMG_URL" "$IMG_XZ" echo "Extracting OS image: $IMG_XZ" unxz -f "$IMG_XZ" IMG="${IMG_XZ%.xz}" download "$DTB_URL" "dtb.bin" download "$RAWPROGRAM_URL" "rawprogram0.xml" BOOT_FW_TAR="$(basename "$BOOT_FW_URL")" download "$BOOT_FW_URL" "$BOOT_FW_TAR" if file "$BOOT_FW_TAR" | grep -qi "HTML"; then echo "ERROR: Boot firmware download is HTML, not a tar.gz. Use the direct /artifactory/ endpoint."; exit 1 fi if ! tar -tzf "$BOOT_FW_TAR" >/dev/null 2>&1; then echo "ERROR: Boot firmware is not a valid gzip tarball."; exit 1 fi BOOT_FW_EXTRACT_DIR="$WORK_DIR/boot_fw_extract" rm -rf "$BOOT_FW_EXTRACT_DIR"; mkdir -p "$BOOT_FW_EXTRACT_DIR" tar -xzf "$BOOT_FW_TAR" -C "$BOOT_FW_EXTRACT_DIR" mapfile -t TOP_LEVEL_DIRS < <(find "$BOOT_FW_EXTRACT_DIR" -mindepth 1 -maxdepth 1 -type d) TOP_DIR="${#TOP_LEVEL_DIRS[@]}" && [[ ${#TOP_LEVEL_DIRS[@]} -eq 1 ]] && TOP_DIR="${TOP_LEVEL_DIRS[0]}" || TOP_DIR="$BOOT_FW_EXTRACT_DIR" cp -a "$TOP_DIR"/. "$OUT_DIR"/ cp -a "dtb.bin" "$OUT_DIR"/ && cp -a "rawprogram0.xml" "$OUT_DIR"/ && cp -a "$IMG" "$OUT_DIR"/ echo "✅ Flashable folder ready: $(realpath "$OUT_DIR")" ls -lh "$OUT_DIR" | sed -n '1,200p'
下载 QDL
-
下载 Linux (x64) 版 QDL 工具并解压。解压后的文件夹包含
qdl二进制文件 — 下文称为<qdl_dir>。 -
安装所需的库(如已安装可跳过):
sudo apt-get install libxml2-dev libudev-dev libusb-1.0-0-dev我们建议将镜像文件夹和 QDL 解压到同一个父文件夹中。这样所有路径都在同一个根目录下。
设置 QDL 驱动
Ubuntu 需要一条 udev 规则,以便内核在设备进入 EDL 模式时授予您的用户与设备通信的权限。-
检查规则是否已存在:
ls /etc/udev/rules.d/51-qcom-usb.rules -
如果文件不存在,用一条命令创建它:
如果文件已存在,确认规则已包含在内:
echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0664", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/51-qcom-usb.rulescat /etc/udev/rules.d/51-qcom-usb.rules -
重新加载 udev 以应用规则:
如果 USB 线缆已经连接,请断开并重新连接。
sudo systemctl restart udev
设置 QDL 路径
-
使 QDL 可执行:
chmod +x <qdl_dir>/qdl -
验证 QDL 是否正常工作:
您应看到 QDL 的用法输出。如果出现错误,请检查路径。
<qdl_dir>/qdl --help
使设备进入 EDL 模式
-
打开 SW2-3 DIP 开关 — 向上推。

- 将 12 V 电源连接到 EVK。
-
将 USB Type-C 线缆从 EVK 上的 USB0 连接到您的主机。

- 拨动电源开关打开设备。
-
确认设备处于 EDL 模式:
预期输出:
lsusb如果设备未出现,请重新检查 SW2-3 和 USB-C 线缆。Bus 002 Device 014: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
配置 UFS(Provision)
UFS(通用闪存存储)配置将内部存储划分为独立的逻辑单元号(LUN)。从 Qualcomm Linux 切换到 Ubuntu 时需要此步骤。如果满足以下任一情况,请运行 UFS 配置:- 这是一块从未烧写过的全新板卡。
- 您正在升级到新的镜像版本。
- 您正在切换发行版(Qualcomm Linux ↔ Ubuntu)。
-
下载并解压 provision 文件:
wget https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS8300/provision.zip unzip provision.zip -
在解压后的 provision 目录中执行 UFS 配置:
预期输出:
cd provision <qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf provision_1_3.xmlUFS provisioning succeeded
UFS 配置完成后,设备会与 USB 断开连接。在继续之前,请关闭再打开电源开关,使其重新启动进入 EDL 模式。
烧写 CDT
CDT 提供驱动和固件用于正确初始化平台的平台相关数据。-
下载并解压 CDT 文件:
wget https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS8300/cdt/qcs8275-iq-8275-evk-pro-sku.zip unzip qcs8275-iq-8275-evk-pro-sku.zip -
在解压后的目录中烧写 CDT:
预期输出:
<qdl_dir>/qdl prog_firehose_ddr.elf rawprogram3.xml patch3.xmlflashed "cdt" successfully 13 patches applied
CDT 烧写完成后,设备会与 USB 断开连接。在继续之前,请关闭再打开电源开关,使其重新启动进入 EDL 模式。
烧写 SAIL 固件
安全岛(SAIL)是一个独立、隔离的处理器,独立于主应用处理器处理安全关键功能。其固件位于专用的 spinor 闪存分区上。-
进入镜像文件夹内的
sail_nor子文件夹:cd <path-to-image>/sail_nor -
烧写 SAIL 固件:
预期输出:
<qdl_dir>/qdl --storage spinor prog_firehose_ddr.elf rawprogram0.xml patch0.xmlflashed "SAIL_HYP" successfully flashed "SAIL_SW1" successfully flashed "SAIL_HYP_BKUP" successfully flashed "SAIL_SW1_BKUP" successfully 11 patches applied
烧写 Ubuntu
-
进入主镜像文件夹:
cd <path-to-image> -
烧写镜像:
当最后一行显示如下内容时,烧写完成:
<qdl_dir>/qdl prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch1.xml patch2.xml patch3.xml patch4.xmlpartition 1 is now bootable
下载 Ubuntu 镜像
从 Canonical Ubuntu 网站下载预构建的 Ubuntu 镜像和启动固件。请务必在 Canonical Ubuntu 网站上确认最新构建的可用性。以下链接固定为最新验证过的版本。
-
运行以下脚本下载并组装可烧写的镜像文件夹。传入
server或desktop作为参数:prepare_iq8275_windows_flashable.bat server这会在prepare_iq8275_windows_flashable.bat desktopIQ8275_ubuntu_images中生成可烧写的镜像 — 下文称为<path-to-image>。要更新到新的 Canonical 版本,请编辑脚本中的CANONICAL_BASE、SERVER_IMG_XZ、DESKTOP_IMG_XZ和BOOT_FW_URL。prepare_iq8275_windows_flashable.bat(完整脚本)
@echo on setlocal EnableExtensions EnableDelayedExpansion set "FLAVOR=server" set "OUT_DIR_NAME=IQ8275_ubuntu_images" set "SCRIPT_ROOT=%CD%" set "WORK_DIR=%SCRIPT_ROOT%\iq8275_flash_prep_work" set "OUT_DIR=%SCRIPT_ROOT%\%OUT_DIR_NAME%" set "CURL_FLAGS=--ssl-no-revoke -L --fail --retry 3 --retry-delay 2" if not "%~1"=="" ( if /I "%~1"=="server" set "FLAVOR=server" if /I "%~1"=="desktop" set "FLAVOR=desktop" ) set "CANONICAL_BASE=https://people.canonical.com/~platform/images/qualcomm-iot/ubuntu-24.04/ubuntu-24.04-x08" set "SERVER_DIR=%CANONICAL_BASE%/ubuntu-server-24.04" set "DESKTOP_DIR=%CANONICAL_BASE%/ubuntu-desktop-24.04" set "SERVER_IMG_XZ=iot-qualcomm-dragonwing-classic-server-2404-x08-20260210.4096b.img.xz" set "DESKTOP_IMG_XZ=iot-qualcomm-dragonwing-classic-desktop-2404-x08-20260210.4096b.img.xz" set "BOOT_FW_URL=https://artifacts.codelinaro.org/artifactory/qli-ci/flashable-binaries/ubuntu-fw/QCS8300/QLI.1.7-Ver.1.1/QLI.1.7-Ver.1.1-ubuntu-QCS8300-nhlos-bins.tar.gz" set "BOOT_FW_TAR=QLI.1.7-Ver.1.1-ubuntu-QCS8300-nhlos-bins.tar.gz" if /I "%FLAVOR%"=="server" ( set "BASE_DIR=%SERVER_DIR%" & set "IMG_XZ=%SERVER_IMG_XZ%" ) else ( set "BASE_DIR=%DESKTOP_DIR%" & set "IMG_XZ=%DESKTOP_IMG_XZ%" ) set "IMG_URL=%BASE_DIR%/%IMG_XZ%" set "DTB_URL=%BASE_DIR%/dtb.bin" set "RAWPROGRAM_URL=%BASE_DIR%/rawprogram0.xml" where curl >nul 2>&1 || (echo ERROR: curl.exe not found & goto :FAIL) where tar >nul 2>&1 || (echo ERROR: tar.exe not found & goto :FAIL) where robocopy >nul 2>&1 || (echo ERROR: robocopy not found & goto :FAIL) set "SEVENZIP=" if exist "%ProgramFiles%\7-Zip\7z.exe" set "SEVENZIP=%ProgramFiles%\7-Zip\7z.exe" if exist "%ProgramFiles(x86)%\7-Zip\7z.exe" set "SEVENZIP=%ProgramFiles(x86)%\7-Zip\7z.exe" if not exist "%WORK_DIR%" mkdir "%WORK_DIR%" if not exist "%OUT_DIR%" mkdir "%OUT_DIR%" pushd "%WORK_DIR%" curl %CURL_FLAGS% -o "%IMG_XZ%" "%IMG_URL%" if errorlevel 1 (echo ERROR: download system image failed & popd & goto :FAIL) set "IMG=%IMG_XZ:.xz=%" if defined SEVENZIP ( "%SEVENZIP%" x -y "%IMG_XZ%" ) else ( tar -xf "%IMG_XZ%" if errorlevel 1 (echo ERROR: tar could not extract .xz; install 7-Zip and rerun & popd & goto :FAIL) ) if not exist "%IMG%" (echo ERROR: expected image not found & popd & goto :FAIL) curl %CURL_FLAGS% -o "dtb.bin" "%DTB_URL%" if errorlevel 1 (echo ERROR: download dtb.bin failed & popd & goto :FAIL) curl %CURL_FLAGS% -o "rawprogram0.xml" "%RAWPROGRAM_URL%" if errorlevel 1 (echo ERROR: download rawprogram0.xml failed & popd & goto :FAIL) curl %CURL_FLAGS% -o "%BOOT_FW_TAR%" "%BOOT_FW_URL%" if errorlevel 1 (echo ERROR: download boot firmware failed & popd & goto :FAIL) findstr /I /M "<html" "%BOOT_FW_TAR%" >nul 2>&1 if not errorlevel 1 (echo ERROR: boot firmware is HTML, not tar.gz & popd & goto :FAIL) set "BOOT_EXTRACT=%WORK_DIR%\boot_fw_extract" if exist "%BOOT_EXTRACT%" rmdir /S /Q "%BOOT_EXTRACT%" mkdir "%BOOT_EXTRACT%" tar -xf "%BOOT_FW_TAR%" -C "%BOOT_EXTRACT%" if errorlevel 1 (echo ERROR: extract boot firmware failed & popd & goto :FAIL) set "TOPDIR=" & set "DIRCOUNT=0" for /f "delims=" %%D in ('dir /b /ad "%BOOT_EXTRACT%"') do ( set /a DIRCOUNT+=1 if "!DIRCOUNT!"=="1" set "TOPDIR=%BOOT_EXTRACT%\%%D" ) if "%DIRCOUNT%"=="1" ( robocopy "%TOPDIR%" "%OUT_DIR%" /E /COPY:DAT /R:2 /W:2 ) else ( robocopy "%BOOT_EXTRACT%" "%OUT_DIR%" /E /COPY:DAT /R:2 /W:2 ) if %errorlevel% GEQ 8 (echo ERROR: robocopy failed & popd & goto :FAIL) copy /Y "dtb.bin" "%OUT_DIR%\" & copy /Y "rawprogram0.xml" "%OUT_DIR%\" & copy /Y "%IMG%" "%OUT_DIR%\" popd echo SUCCESS. Flashable folder ready: %OUT_DIR% dir "%OUT_DIR%" /A:-D pause exit /b 0 :FAIL echo FAILED. Check messages above. pause exit /b 1
下载 QDL
-
下载 Windows 版 QDL 工具并解压。解压后的文件夹包含
qdl.exe— 下文称为<qdl_dir>。我们建议将镜像文件夹和 QDL 解压到同一个父文件夹中(例如C:\Users\you\Downloads\qualcomm-flash\)。这样所有路径都在同一个根目录下。
设置 QDL 驱动
- 卸载所有现有的 Qualcomm USB 驱动(QUD)— 它们与 QDL 驱动冲突。打开设备管理器,找到您的设备并卸载所有现有驱动。设备不应出现在 COM 端口下。
-
从解压后的 QDL 文件夹中运行
install_driver.bat以安装 WinUSB 驱动。
使设备进入 EDL 模式
-
打开 SW2-3 DIP 开关 — 向上推。

- 将 12 V 电源连接到 EVK。
-
将 USB Type-C 线缆从 EVK 上的 USB0 连接到您的主机。

- 拨动电源开关打开设备。
-
打开设备管理器并确认出现一个 Qualcomm USB 设备(不在 COM 端口下)。

配置 UFS(Provision)
UFS(通用闪存存储)配置将内部存储划分为独立的逻辑单元号(LUN)。从 Qualcomm Linux 切换到 Ubuntu 时需要此步骤。如果满足以下任一情况,请运行 UFS 配置:- 这是一块从未烧写过的全新板卡。
- 您正在升级到新的镜像版本。
- 您正在切换发行版(Qualcomm Linux ↔ Ubuntu)。
- 下载 provision.zip 并解压。
-
进入解压后的 provision 文件夹并执行 UFS 配置:
命令提示符:
PowerShell:
"<qdl_dir>\qdl.exe" --storage ufs prog_firehose_ddr.elf provision_1_3.xml预期输出:& "<qdl_dir>\qdl.exe" --storage ufs prog_firehose_ddr.elf provision_1_3.xmlUFS provisioning succeeded
UFS 配置完成后,设备会与 USB 断开连接。在继续之前,请关闭再打开电源开关,使其重新启动进入 EDL 模式。
烧写 CDT
CDT 提供驱动和固件用于正确初始化平台的平台相关数据。- 下载 IQ8275 CDT 并解压。
-
在解压后的目录中烧写 CDT:
命令提示符:
PowerShell:
"<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram3.xml patch3.xml预期输出:& "<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram3.xml patch3.xmlflashed "cdt" successfully 13 patches applied
CDT 烧写完成后,设备会与 USB 断开连接。在继续之前,请关闭再打开电源开关,使其重新启动进入 EDL 模式。
烧写 SAIL 固件
安全岛(SAIL)是一个独立、隔离的处理器,独立于主应用处理器处理安全关键功能。其固件位于专用的 spinor 闪存分区上。-
进入镜像文件夹内的
sail_nor子文件夹:cd <path-to-image>\sail_nor -
烧写 SAIL 固件:
命令提示符:
PowerShell:
"<qdl_dir>\qdl.exe" --storage spinor prog_firehose_ddr.elf rawprogram0.xml patch0.xml预期输出:& "<qdl_dir>\qdl.exe" --storage spinor prog_firehose_ddr.elf rawprogram0.xml patch0.xmlflashed "SAIL_HYP" successfully flashed "SAIL_SW1" successfully flashed "SAIL_HYP_BKUP" successfully flashed "SAIL_SW1_BKUP" successfully 11 patches applied
烧写 Ubuntu
-
进入主镜像文件夹:
cd <path-to-image> -
烧写镜像(Windows 不支持通配符 — 需显式列出所有文件):
命令提示符:
PowerShell:
"<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch1.xml patch2.xml patch3.xml patch4.xml当最后一行显示如下内容时,烧写完成:& "<qdl_dir>\qdl.exe" prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch1.xml patch2.xml patch3.xml patch4.xmlpartition 1 is now bootable
下载 Ubuntu 镜像
从 Canonical Ubuntu 网站下载预构建的 Ubuntu 镜像和启动固件。请务必在 Canonical Ubuntu 网站上确认最新构建的可用性。以下链接固定为最新验证过的版本。
-
运行以下脚本下载并组装可烧写的镜像文件夹。根据所需镜像传入
--server或--desktop:./prepare_iq8275_ubuntu_flashable.sh --server这会在./prepare_iq8275_ubuntu_flashable.sh --desktopiq8275_flash_prep_work/IQ8275_ubuntu_images中生成可烧写的镜像 — 下文称为<path-to-image>。完整脚本请参见 Ubuntu 选项卡。
下载 QDL
-
下载 macOS (Apple Silicon) 版 QDL 工具并解压。解压后的文件夹包含
qdl二进制文件 — 下文称为<qdl_dir>。我们建议将镜像文件夹和 QDL 解压到同一个父文件夹中。这样所有路径都在同一个根目录下。
设置 QDL 路径
-
通过 Homebrew 安装所需的库(如已安装可跳过):
brew install libusb libxml2 -
使 QDL 可执行并清除 macOS 隔离标记,以便 Gatekeeper 允许其运行:
chmod +x <qdl_dir>/qdl sudo xattr -dr com.apple.quarantine <qdl_dir>需要sudo,因为部分捆绑的库是只读的。如果此步骤后 macOS 仍然阻止该工具,请在系统设置 → 隐私与安全性中允许它。 -
验证 QDL 是否正常工作:
您应看到 QDL 的用法输出。如果出现错误,请检查路径。
<qdl_dir>/qdl --help
使设备进入 EDL 模式
-
打开 SW2-3 DIP 开关 — 向上推。

- 将 12 V 电源连接到 EVK。
-
将 USB Type-C 线缆从 EVK 上的 USB0 连接到您的主机。

- 拨动电源开关打开设备。
-
确认设备处于 EDL 模式:
预期输出:
system_profiler SPUSBDataType | grep -A4 -i qualcommProduct ID: 0x9008 Vendor ID: 0x05c6 (Qualcomm, Inc) Manufacturer: Qualcomm CDMA Technologies MSMProduct ID: 0x9008确认设备处于 EDL 模式。如果未出现,请重新检查 SW2-3 和 USB-C 线缆。
配置 UFS(Provision)
UFS(通用闪存存储)配置将内部存储划分为独立的逻辑单元号(LUN)。从 Qualcomm Linux 切换到 Ubuntu 时需要此步骤。如果满足以下任一情况,请运行 UFS 配置:- 这是一块从未烧写过的全新板卡。
- 您正在升级到新的镜像版本。
- 您正在切换发行版(Qualcomm Linux ↔ Ubuntu)。
- 下载 provision.zip 并解压。
-
将 provision 文件和 QDL 二进制文件移动到同一个文件夹中,然后在该文件夹中运行:
在 macOS 上,
qdl二进制文件及其支持库必须与 provision 文件位于同一目录。将 provision 文件复制到<qdl_dir>中,然后在那里运行命令。预期输出:<qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf provision_1_3.xmlUFS provisioning succeeded
UFS 配置完成后,设备会与 USB 断开连接。在继续之前,请关闭再打开电源开关,使其重新启动进入 EDL 模式。
烧写 CDT
CDT 提供驱动和固件用于正确初始化平台的平台相关数据。- 下载 IQ8275 CDT 并解压。
-
在解压后的目录中烧写 CDT:
预期输出:
<qdl_dir>/qdl prog_firehose_ddr.elf rawprogram3.xml patch3.xmlflashed "cdt" successfully 13 patches applied
CDT 烧写完成后,设备会与 USB 断开连接。在继续之前,请关闭再打开电源开关,使其重新启动进入 EDL 模式。
烧写 SAIL 固件
安全岛(SAIL)是一个独立、隔离的处理器,独立于主应用处理器处理安全关键功能。其固件位于专用的 spinor 闪存分区上。-
进入镜像文件夹内的
sail_nor子文件夹:cd <path-to-image>/sail_nor -
烧写 SAIL 固件:
预期输出:
<qdl_dir>/qdl --storage spinor prog_firehose_ddr.elf rawprogram0.xml patch0.xmlflashed "SAIL_HYP" successfully flashed "SAIL_SW1" successfully flashed "SAIL_HYP_BKUP" successfully flashed "SAIL_SW1_BKUP" successfully 11 patches applied
烧写 Ubuntu
-
进入主镜像文件夹:
cd <path-to-image> -
烧写镜像:
当最后一行显示如下内容时,烧写完成:
<qdl_dir>/qdl prog_firehose_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml patch1.xml patch2.xml patch3.xml patch4.xmlpartition 1 is now bootable
如果烧写在任何环节失败,请断开 USB 线缆和电源,重新连接后从 EDL 模式步骤开始重试。
完成
- 关闭 SW2-3 DIP 开关 — 向下推。
- 对设备断电重启。它将启动进入新烧写的 Ubuntu 镜像。

