您好,NXP团队,
我需要帮助将 IMX95LPD5EVK-19CM 从工厂 BSP 升级到 LF_v6.18.2-1.0.0,以便进行 eIQ Neutron NPU YOLO 推理。UUU eMMC 刷写在 Linux 和 Windows 系统上均失败,在 SDPS:启动 处出现不同的 libusb 错误。详情如下。
---
1. 硬件
| 项目 | 详情 |
|------|--------|
| 板 | IMX95LPD5EVK-19CM(i.MX 95 19×19 EVK,SOM + 基板)|
| Yocto 机器/主机名 | imx95-a1-19x19-lpddr5-evk |
| 硅 | i.MX 95 A1 |
| 存储 | 64 GB eMMC(出厂预装 Linux 系统) |
| 电源 | J5 接 12V,SW4 打开 |
| 调试 | J31 USB-C → 主机(串口,115200) |
| 闪存端口 | J8 USB1 OTG USB-C → 主机 |
| 摄像头 | 罗技 C920,J7 接口 (/dev/video13) |
---
2. 软件版本
### 当前版本(出厂 eMMC — Linux 正常启动)
| 元器件 | 版本 |
|-----------|---------|
| BSP | LF6.12.34_2.1.0|
| 内核 | 6.12.34-lts-next-gbe78e49cb433 |
| 启动命令行 | root=/dev/mmcblk0p2 |
| Neutron 委托 | v1.0.0-be8bf399 |
| libneutron_delegate.so | /usr/lib/libneutron_delegate.so |
|主机变流器(旧)| eIQ 工具包 1.17 / 中子变流器 2.1.3|
### 目标(已下载,尚未刷写到 eMMC)
| 组件 | 版本/文件 |
|-----------|----------------|
| BSP 版本 | LF_v6.18.2-1.0.0 (SCR-6.18.2-1.0.0) |
| 内核(预期) | 6.18.2-1.0.0 |
| 图像包 | LF_v6.18.2-1.0.0_images_IMX95 |
| 启动镜像 | imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all|
| 根文件系统 | imx-image-full-imx95evk.wic (约 11 GB) |
| Neutron 委托(预期) | v1.0.0-7399a58e |
| 主机变流器(主机端已准备就绪) | eIQ Neutron SDK 3.0.1(变流器 3.0.1+0Xd5d7918e)|
参考:NXP 论坛工程师 (Zhiming_Liu) 在 i.MX95 上使用 L6.18.2 + eIQ Neutron SDK 3.0.1 + delegate 7399a58e 验证了 YOLOv8m。
---
3. 应用目标
使用 YOLO (v8n / v11n) 进行 USB 网络摄像头人脸检测:
- INT8 TFLite 导出(Ultralytics)
- 中子变流器 --target imx95
- 板载 tflite_runtime + libneutron_delegate.so
基于当前 BSP (6.12.34):
- NXP 论坛 yolov8m_full_integer_quant_converted.tflite → NPU 调用时发生段错误(退出代码 139)
- 自定义 yolov8n_neutron.tflite → 调用成功,但未检测到任何人
- 无头骨架构在 NPU 上运行 → 持续输出垃圾数据(~1.13);CPU拆分流水线工作正常(检测率56%–90%)
结论:在验证使用 SDK 3.0.1 转换的 NPU 模型之前,需要在 eMMC 上使用 L6.18.2 BSP。
---
4. 主机设置
| 主机 | UUU 版本 | 路径 |
|------|-------------|------|
| Ubuntu 24.04 (x86_64) | Ubuntu 24.04 (x86_64) libuuu_1.5.243-0-g230f1b1 | /usr/local/bin/uuu | /usr/local/bin/uuu | /usr/local/bin/uuu
| Windows 10/11 | libuuu_1.5.243-0-g230f1b1 | uuu.exe(来自 mfgtools uuu_1.5.243 版本) |
两台主机上的镜像目录:
LF_v6.18.2-1.0.0_images_IMX95
---
## 5. 启动开关 SW7(根据 IMX95LPD5EVK-19CM 快速入门指南,1=开,0=关)
| 模式 | SW7-1 | SW7-2 | SW7-3 | SW7-4 |
|------|-------|-------|-------|-------|
|串行下载 (UUU) | 1 | 0 | 0 | 1 |
| eMMC 启动(正常) | 1 | 0 | 1 | 0 |
eMMC 启动(SW7=1010)工作正常。每次更改SW7之前,都需执行完整的电源循环。
---
## 6. 闪存程序(通过 UUU 的 eMMC)
板准备(Linux 和 Windows 系统相同):
- SW7 = 1001(序列号下载)
- J8(USB1 OTG)连接到主机(不是 J31)
- J31 连接可选的串行控制台
- J5 已连接 12V 电源
- 当 uuu 显示“等待已知的 USB 设备”时,板已通电
命令:
uuu -b emmc_all imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_allimx-image-full-imx95evk.wic
(Linux:sudo uuu ... | Windows:uuu.exe ... 从镜像目录运行)
---
## 7. UUU 错误 — Linux (Ubuntu 24.04)
sudo /usr/local/bin/uuu -b emmc_all \
imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all\
imx-image-full-imx95evk.wic
输出:
适用于 NXP imx 芯片的 uuu(通用更新实用程序)-- libuuu_1.5.243-0-g230f1b1
成功 0 失败 1
1:6-E3C50910 1/1 [HID(W): LIBUSB_ERROR_NO_DEVICE (-4)] SDPS: boot -scanterm -f imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all...
笔记:
- lsusb 命令短暂显示 NXP USB 设备 (1fc9:015d) 处于 SDP 模式
- uuu 有时会打印“已连接新 USB 设备”,然后在 SDPS: 启动时失败。
- 未使用 sudo:权限被拒绝(错误号=13)
- eMMC 未修改(闪存未完成)
---
## 8. UUU 错误 — Windows
主机:Windows 10/11,PowerShell,uuu.exe 1.5.243
工作目录:C:\Users\Hardware.Team\Downloads\LF_v6.18.2-1.0.0_images_IMX95
### 尝试 — flash_all(预期正确的启动映像)
PS C:\Users\Hardware.Team\Downloads\LF_v6.18.2-1.0.0_images_IMX95> & '..\uuu (2).exe' -b emmc_all imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_allimx-image-full-imx95evk.wic
适用于 NXP imx 芯片的 uuu(通用更新实用程序)-- libuuu_1.5.243-0-g230f1b1
成功 0 失败 1
1:3-E3C50910 1/1 [HID(W): LIBUSB_ERROR_PIPE (-9)] SDPS: boot -scanterm -f imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all...
各主机USB错误汇总:
| 主机 | 启动映像 | libusb 错误 |
|------|------------|--------------|
| Ubuntu 24.04 | flash_all | LIBUSB_ERROR_NO_DEVICE (-4) |
| Windows | flash_all | LIBUSB_ERROR_PIPE (-9) |
所有故障都发生在同一步骤:SDPS:启动(在 eMMC 写入进度之前)。
---
9. 如今哪些方法行之有效
- SW7=1010 → 正常启动出厂 eMMC Linux (6.12.34)。
- 通过 eth0 进行 SSH 连接正常
检测到 USB 网络摄像头 (/dev/video13)
- libneutron_delegate.so 存在 (be8bf399)
- CPU端推理已验证;当前电路板支持包。上的NPU输出不正确
---
10.向恩智浦提出的问题
1.对于在 IMX95LPD5EVK-19CM (A1) 上,使用 uuu 1.5.243 版本,设备 1fc9:015d,SW7=1001,J8 时 SDPS:启动 失败的情况,Linux 上出现 LIBUSB_ERROR_NO_DEVICE (-4) 错误的原因是什么?而 Windows 上出现 LIBUSB_ERROR_PIPE (-9) / LIBUSB_ERROR_IO (-1) 错误的原因又是什么?
2. 是否有已知的 uuu 1.5.243+ IMX95 A1 兼容性要求(驱动程序、Windows 上的 WinUSB/Zadig、Linux 上的 udev 规则)?
3. 确认 imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all + imx-image-full-imx95evk.wic 是 IMX95LPD5EVK-19CM eMMC 闪存的正确配对(除非是 ECC RAM,否则不是 sd-ecc)。
4. be8bf399 (6.12.34) 和 7399a58e (6.18.2) 之间是否存在已知的中子代表差异,从而影响 YOLOv8 INT8 模型?
5. 如果在 Linux 和 Windows 系统上 UUU USB 路径均失败,是否有其他受支持的方法将 L6.18.2 刷写到 eMMC?
---
11.日志可应要求提供
- 完整的 uuu 详细日志:uuu -v -b emmc_all ...(Linux 和 Windows)
- 当主板进入 SDP 模式时,运行主机 lsusb / 设备管理器 / dmesg 命令
- 串口控制台日志(工厂 eMMC 启动 — 正常)
- 板:uname -r,字符串 libneutron_delegate.so,NPU 测试结果(版本 6.12.34)
感谢您对 Neutron NPU 开发中 eMMC 升级到 L6.18.2-1.0.0 的指导。
顺祝商祺!
i.MX 95 的 A1 芯片已不再受我们最新的 BSP 支持,6.12.34 似乎是最后一个支持 A1 的版本。
没有变通办法,你不能让最新的 电路板支持包。 在 A1 芯片上运行,你需要用新的子卡升级你的 EVK。A1硅卡为蓝色,B0硅卡为绿色。
我没有使用 6.18.2 .wic 文件在旧款 EVK 上测试过 UUU 下载。图片显示正常,但我预计它在您那边出现的问题与之前一样。我会在接下来的几天里完成这件事。你可以用SD卡做个测试,对.wic文件进行编程。将电脑上的镜像文件复制到 SD 卡上,然后尝试在 EVK 上运行该镜像文件,并将启动模式设置为 SD 卡。
问候,
伯恩哈德。
你好,
谢谢回复。我还有关于同一板的另一个问题。
我正在尝试运行一个 M7 应用程序 IMX95LPD5EVK-19 下列的 AN14748 ,但我无法刷机。 flash.bin 用 UUU。短暂检测到电路板后,SDPS 启动立即失败。
硬件: IMX95LPD5BB-19 修订版 A1 (2024 NXP BV)
启动开关(SW7[1:4]): 1001(序列号下载)
目标: eMMC
主持人: Ubuntu Linux
UUU: libuuu_1.5.243-0-g230f1b1
尝试过的 SDK(MCUXpresso SDK Builder):
两者产生的结果相同。
命令:
错误:
执行步骤(根据 AN14748):
问题: