好消息:SD 卡启动成功!
从日志看,SD 卡已经成功启动并加载内核:
Found U-Boot script /boot/boot.scr
fdtfile = x5-md-v1p2.dtb ← 正确的 X5 Module 设备树
Loading kernel: /boot/Image
Starting kernel ...
这说明你的编译配置是正确的(使用了 board_x5_soc_*.mk),问题确实在 eMMC 烧录环节。
问题定位
| 测试项 | 结果 | 结论 |
|---|---|---|
| SD 卡启动 | 镜像本身没问题 | |
| eMMC 启动 | eMMC 分区/标志位有问题 | |
| 多个 Module | 排除硬件故障 |
eMMC 烧录问题解决方案
方案 1:在 U-Boot 中清除 UMS 标志(推荐先试)
串口连接,上电后快速按任意键进入 U-Boot 命令行:
# 1. 查看当前环境变量
printenv
# 2. 清除 UMS 相关变量
setenv ums_active 0
setenv update_mode 0
setenv bootcmd 'run bootcmd_mmc1'
# 3. 保存并重启
saveenv
reset
方案 2:检查 xburn 烧录配置
xburn V1.1.9 烧录 eMMC 时,确认以下设置:
| 配置项 | 正确设置 |
|---|---|
| 设备型号 | X5 Module / SOC |
| 烧录目标 | eMMC |
| 烧录模式 | 完整烧录(非增量) |
| 分区表 | 使用镜像默认 |
| 烧录后操作 | 不自动启动 |
关键:xburn 中是否有「烧录后进入更新模式」或类似选项?如有请取消勾选。
方案 3:通过 SD 卡修复 eMMC 分区标志
如果 SD 卡能成功进入 Ubuntu 系统:
# 1. 查看 eMMC 设备
lsblk # 确认 eMMC 是 /dev/mmcblk0
# 2. 查看分区表
sudo fdisk -l /dev/mmcblk0
# 3. 清除 eMMC 前 1MB(分区表区域)
sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=1
sudo sync
# 4. 重新使用 xburn 烧录 eMMC
验证步骤
1. 确认 SD 卡能否进入 Ubuntu 桌面/命令行
└─ 如果能 → 继续修复 eMMC
└─ 如果不能 → 检查编译打包流程
2. 使用 xburn 重新烧录 eMMC(完整烧录模式)
3. 烧录完成后断电,拔掉 SD 卡,再上电测试
需要你确认
- SD 卡启动后能否进入 Ubuntu 系统?(串口登录或 HDMI 显示)
- xburn 烧录界面的截图(特别是设备选择和选项部分)
- SDK 版本号(
cat /path/to/sdk/version或目录名)
参考资源
- X5 Module 编译配置 - 确认使用 SOC 配置
- 你的烧录问题帖子 - 之前遇到的类似问题
- 硬件问题自查 List - 电源/启动检查
建议将 SD 卡成功启动的日志和 eMMC 修复方案更新到你的原帖子,这对其他 X5 Module 开发者会很有帮助!