Skip to main content

100ASK T113S3 Pro 主线系统故障定位与恢复

本章目标

先判断失败发生在哪个阶段,再收集该阶段的证据。不要用修改后续 UBI 参数的方式处理前面的 USB、SPL 或 SPI 控制器问题。

故障定位入口

最后看到的标志所属阶段
1f3a:efe8BootROM FEL/USB
无 SPL 串口SPL 未执行或 UART 错误
DRAM: 128 MiB 后 USB 失败SPL 返回 FEL
ram_handoff_complete 后无 installerU-Boot/installer FIT/Linux UART
installer_failedLinux RAM installer
installer 100% 后无登录温重启/冷启动链
Unknown boot source 4冷启动 SPL 介质识别
U-Boot 读到全 ffU-Boot SPI NAND 传输模式
cannot open mtd rootfsMTD/UBI 命名错误

FEL 设备找不到

现象

no Allwinner FEL/FES USB device found

检查

lsusb | grep -i '1f3a:efe8'
OPENIXCLI_BIN=../OpenixCLI/target/release/openixcli \
../OpenixCLI/target/release/openixcli --output jsonl scan

处理

  • 确认连接的是 SoC OTG 数据口,不只是调试串口;
  • 虚拟机中重新连接 USB 到 guest;
  • 停止占用 libusb endpoint 的后台扫描程序;
  • 重新让板卡进入 FEL。

多个 Allwinner 设备

auto 会拒绝猜测。根据 scan 输出选择明确的 libusb:BUS:PORT,并核对物理板卡。

SPL 没有输出

依次检查:

  1. UART3 PB6/PB7 接线和 115200;
  2. CONFIG_CONS_INDEX=4 是否进入最终 .config
  3. SPL 是否为 24576 字节精确 eGON 文件;
  4. eGON magic、长度和 checksum;
  5. DDR 参数和板卡版本。

SPL 返回 FEL 失败

典型错误:

MAINLINE_SPL_RETURN_READ_FAILED
MAINLINE_SPL_RETURN_RECONNECT_FAILED

检查 SRAM swap 地址、SPL stack、return thunk、PLL_PERI0 保留、250 ms 等待以及原物理 USB 端点是否重新出现。禁止回退到直接跳 BootROM 0x20 的历史实验。

Unknown boot source 4

确认 0004-sunxi-recognize-r528-spinand-boot-source.patch 已进入 U-Boot 构建。R528 的值 4 表示 SPI NAND。

Loading Environment 时复位

确认:

CONFIG_ENV_IS_NOWHERE=y
# CONFIG_ENV_IS_IN_FAT is not set
# CONFIG_ENV_IS_IN_SPI_FLASH is not set

U-Boot 从 NAND 读到全 ff

U-Boot 专用 DTS 不得强制 quad width。Linux DTS 可以保留 quad 属性,两套 DTS 不应简单复制覆盖。

主机停在 50% 或 RAM handoff

OpenixCLI 只负责 RAM 交接。立即查看独立 UART:

  • 是否出现 installer_started
  • payload 哈希是否通过;
  • /proc/mtd 是否正确;
  • 是否进入写入 phase;
  • 是否进入 emergency shell。

没有 UART installer 证据时,writtenBytes 只是 RAM 传输字节,不是 NAND 写入量。

安装器进入 emergency shell

在 UART3 shell 中保存:

cat /proc/mtd
for f in /sys/class/mtd/mtd*/name \
/sys/class/mtd/mtd*/size \
/sys/class/mtd/mtd*/writesize \
/sys/class/mtd/mtd*/erasesize \
/sys/class/mtd/mtd*/bad_blocks; do
echo "$f=$(cat "$f" 2>/dev/null)"
done
dmesg
失败位置优先检查
payload SHA-256分片顺序、地址、同一构建身份
MTD geometryNAND 型号、DTS、页和擦除块大小
bad block 拒绝厂坏块与旧 ee ee OOB 元数据
nandwrite写保护、供电、MTD 驱动
readback SHA坏块处理、长度、产物混用
ubiformatPEB、VID/OOB/ECC
UBIFS mountUBI 卷名、LEB 和 rootfs 完整性

cannot open mtd rootfs

正确关系:

MTD 分区:sys
bootargs:ubi.mtd=sys
UBI 卷: rootfs
root: ubi0:rootfs

安装完成但没有登录

检查顺序:

  1. U-Boot 是否读到 boot.itb
  2. FIT kernel/FDT 哈希;
  3. earlycon 和 UART3;
  4. ubi.mtd=sys
  5. UBI attach;
  6. UBIFS mount;
  7. /sbin/init 和 ttyS3 getty。

手工 setenv 能启动只用于定位,不能作为验收结果。

串口监控被其他程序打断

一个历史失败任务是诊断客户端关闭了 LYNX/UI 共用的 /dev/ttyACM0。安装期间只允许一个串口所有者;状态查询不能额外打开或关闭串口。

恢复 Tina 或已验证主线系统

  1. 完全停止当前安装任务;
  2. 保存所有 host/UART 错误记录;
  3. 让板卡重新进入 BootROM FEL;
  4. 选择已验证且哈希完整的恢复 bundle;
  5. 使用与介质匹配的 NAND-aware 恢复方式;
  6. 恢复后重新执行完整冷启动验收。

禁止用 dd 烧写 256 MiB 逻辑 raw 文件到 SPI NAND。raw 文件不包含正确的 OOB、ECC 和坏块处理语义。

故障记录模板

日期:
板卡/NAND:
源码提交:
artifact SHA-256:
USB 物理位置:
最后成功阶段:
原始错误:
UART 最后 100 行:
是否发生 NAND 擦写:
是否能够重新进入 FEL:
下一步: