今天给大家分享一套超实用的 ARM 板级排查方法:只靠 4 条 Linux 命令,就能确认板子内核从哪启动、根文件系统在哪、到底是 eMMC 还是 SD 卡。内容全是实战验证,可直接写进笔记或公众号。
一、实战背景
在调试串口驱动、修改设备树、升级系统时,必须先搞清楚:板子从哪里启动?存储是 eMMC 还是 SD 卡?本文基于真实 ARM 嵌入式平台验证,命令可直接复用。
二、4 条核心判断命令
1. cat /proc/cmdline # 查看内核启动参数
2. lsblk # 查看块设备与分区
3. cat /sys/block/mmcblk1/device/type # 判断是eMMC还是SD
4. findmnt / # 查看根目录真实挂载点
三、实战输出与逐行分析
1. 查看内核启动参数
/proc/cmdline
输出:console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=ecfdc711-02 rw rootwait ...
关键信息:
• 控制台串口:ttyS0,波特率 115200
• 串口驱动:uart8250/ns16550(标准工业串口)
• 根文件系统:通过PARTUUID指定分区挂载
2. 查看存储设备结构
lsblk
输出:
mmcblk1 179:0 0 7.3G 0 disk
|-mmcblk1p1 179:1 0 170M 0 part /run/media/mmcblk1p1
`-mmcblk1p2 179:2 0 7G 0 part /
mmcblk1boot0 179:32 0 8M 1 disk
mmcblk1boot1 179:64 0 8M 1 disk
关键判断:
• 出现mmcblk1boot0、mmcblk1boot1
• 这是 eMMC 独有特征,SD 卡绝对没有
3. 判断是 eMMC 还是 SD 卡
/sys/block/mmcblk1/device/type
输出:
MMC
结论:
• 输出MMC → eMMC
• 输出SD → SD 卡
4. 查看根目录真实挂载点
findmnt /
输出:
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mmcblk1p2 ext4 rw,relatime
重点说明:
• df -h /显示/dev/root只是系统别名,不是真实设备
• findmnt /读取内核挂载信息,结果 100% 准确
• 根文件系统实际在/dev/mmcblk1p2
四、最终结论
1. 板子存储:eMMC,非 SD 卡
2. 启动方式:eMMC 本地启动
3. 内核从 eMMC boot 分区加载
4. 根文件系统挂载在/dev/mmcblk1p2
5. 调试串口:ttyS0,使用 8250/ns16550 驱动
五、通用判断流程
1. 看lsblk是否有boot0/boot1 → 有就是 eMMC
2. 看/sys/block/mmcblkX/device/type → MMC=eMMC
3. 用findmnt /确认根分区真实设备
4. 用/proc/cmdline核对启动参数与串口配置
这套方法适用于:ARM 嵌入式 Linux、工业网关、IoT 设备、机顶盒、ARM 开发板。