You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RK3328 SOC启动卡滞:等待根设备/dev/mmcblk1p2求助

RK3328内核启动卡根设备故障排查方案

1. 确认U-Boot中MMC设备映射与启动参数

  • 在U-Boot命令行执行mmc list,查看SD卡对应的设备序号(比如mmc@ff500000: 0或mmc@ff520000: 1),RK3328通常内置eMMC对应mmc0,SD卡对应mmc1;无eMMC时SD卡会变为mmc0。
  • 执行printenv bootargs,确认根设备参数为root=/dev/mmcblkXp2(X对应上述序号),必须添加rootwait参数(等待存储设备初始化完成),完整示例:root=/dev/mmcblk1p2 rootwait rw console=ttyS2,1500000。

2. 检查自定义DTS的SDMMC配置

  • 确认SDMMC控制器节点(如&sdmmc)的status = "okay";未被注释,且引脚配置与rock-pi-e.dts一致(避免精简时误删引脚复用、电气属性配置)。
  • 检查时钟配置:确保SDMMC节点正确引用时钟源(如clocks = <&cru HCLK_SDMMC>, <&cru CLK_SDMMC>;),且clock-frequency设置合理(RK3328 SDMMC默认支持50MHz或更高)。
  • 若开发板SD卡有独立电源使能引脚,需在DTS中配置对应GPIO并设置默认高电平(如pinctrl-names = "default"; pinctrl-0 = <&sdmmc_pwr>;,并定义对应的引脚节点)。

3. 验证SD卡分区与根文件系统完整性

  • 用fdisk -l /dev/sdX(X为SD卡本地设备号)确认p2分区为ext4格式,且分区表无损坏。
  • 执行e2fsck -f /dev/sdX2检查根文件系统完整性,修复可能的损坏。
  • 核对Buildroot输出目录output/images/rootfs.ext4的大小与写入SD卡的p2分区大小一致,确认镜像生成无异常。

4. 检查内核SD/MMC相关编译配置

  • 进入Buildroot执行make linux-menuconfig,确认以下配置开启:
    • CONFIG_MMC=y
    • CONFIG_MMC_ROCKCHIP=y(RK3328 SDMMC控制器驱动)
    • CONFIG_MMC_BLOCK=y(SD块设备支持)
    • CONFIG_EXT4_FS=y(根文件系统格式支持)
    • CONFIG_MMC_DEBUG=y(可选,用于调试)

5. 启用内核调试信息定位问题

  • 在bootargs中添加earlyprintk=serial,ff130000,1500000(对应UART2节点地址),让内核更早输出初始化日志,查看SDMMC控制器初始化、卡识别阶段的报错。
  • 开启CONFIG_DEBUG_FS=y后,内核启动后可通过cat /sys/kernel/debug/mmc0/ios(对应设备序号)查看SD卡的工作状态。

内容的提问来源于stack exchange,提问作者David Welshon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:15:20