📅 安装日期:2026-03-31
📦 硬件版本:幸狐派 CM4 Lite(无 EMMC 版本)
💾 扩容方案:焊接 32GB EMMC + SD 卡克隆
🐧 操作系统:Debian 12 (Bookworm) 64-bit
🔌 SoC 芯片:瑞芯微 RK3566
🖥️ 烧写平台:Windows 10/11
🔧 烧写工具:RKDevTool
一、前言
幸狐派 CM4 Lite 是不带 EMMC 存储的版本,采用瑞芯微 RK3566 SoC 芯片。本文记录从零开始焊接 32GB 江波龙 EMMC 芯片,使用 RKDevTool 烧写 Debian 系统到 SD 卡,从 SD 卡启动后通过 dd 命令克隆到 EMMC,最后使用 parted 和 resize2fs 完成分区扩容的完整过程。
技术路线
┌──────────────────────────────────────────────────────────
│ 步骤 1: 焊接 32G EMMC 芯片到 CM4 Lite 主板 │
│ 步骤 2: 使用 RKDevTool 烧写 Debian 系统到 SD 卡 │
│ 步骤 3: 从 SD 卡启动系统并验证 │
│ 步骤 4: 使用 dd 命令将 SD 卡系统克隆到 EMMC │
│ 步骤 5: 使用 parted 重建分区表并扩容根分区 │
│ 步骤 6: 使用 resize2fs 强制扩展文件系统 │
│ 步骤 7: 通过 lsblk 检查 EMMC 和 df -h 检查系统分区情况 │
│ 步骤 8: 移除 SD 卡,从 EMMC 启动 │
└──────────────────────────────────────────────────────────
为什么先烧写 SD 卡?
优势:
├─ 安全:SD 卡启动验证系统正常后再克隆到 EMMC
├─ 可逆:如 EMMC 有问题可重新从 SD 卡启动修复
├─ 灵活:可在系统运行时操作 EMMC 分区
└─ 调试方便:串口 + SSH 双重调试通道
流程:
SD 卡启动 (16GB) → dd 克隆 → EMMC (32GB) → parted 扩容 → resize2fs 扩展
硬件平台说明
| 项目 | 规格 |
|---|---|
| SoC | 瑞芯微 RK3566 (Quad-core Cortex-A55) |
| GPU | Mali-G52 2EE |
| NPU | 0.8 TOPS |
| 内存 | LPDDR4/LPDDR4X 1GB/2GB/4GB/8GB |
| 存储 | EMMC 5.1 / SD 卡 / SPI Flash |
| 系统 | Debian 12 (Bookworm) |
二、硬件准备
2.1 所需材料
| 物品 | 规格/型号 | 备注 |
|---|---|---|
| 幸狐派 CM4 Lite 主板 | 无 EMMC 版本 | RK3566 SoC |
| EMMC 芯片 | 32GB BGA153 | 江波龙 SDAE32G-10 ⭐ |
| SD 卡 | 16GB Class 10 以上 | 系统烧写介质 |
| SD 卡读卡器 | USB 3.0 | 烧写用 |
| 热风枪/焊台 | 恒温可调温 | 焊接 EMMC 用 |
| 助焊剂/锡膏 | 优质无铅 | 提高焊接质量 |
| USB-A 转 USB-C 数据线 | 支持数据传输 | 烧写/调试用 |
| 5V/3A 电源适配器 | USB-C 接口 | 稳定供电 |
| 散热片/风扇 | 可选 | 长时间运行建议加装 |
| 短接帽/镊子 | 可选 | 进入烧写模式用 |
2.2 EMMC 芯片选型
推荐型号:
- FORESEE SDAE32G-10 (江波龙 32GB) ⭐ 本文使用
- KLM32HEHB-B041 (三星 32GB)
- H26M36203GMR (海力士 32GB)
- MTFC32GAKAECQ (美光 32GB)
⚠️ 注意:EMMC 芯片焊接需要一定 BGA 焊接经验,如无经验建议找专业维修店代焊
2.3 江波龙 EMMC 芯片信息
本文使用的江波龙(FORESEE)32GB EMMC 芯片:
| 参数 | 规格 |
|---|---|
| 品牌 | 江波龙 (Longsys) |
| 系列 | FORESEE SDAE |
| 型号 | SDAE32G-10 |
| 容量 | 32GB |
| 封装 | BGA153 |
| 工作电压 | 3.3V |
| 接口标准 | eMMC 5.1 |
| 工作温度 | -25°C ~ 85°C |
江波龙芯片特点:
- 国产芯片,性价比高
- 兼容 RK3566 存储规范
- 稳定性良好,适合嵌入式应用
- 市场常见,采购方便
三、软件工具准备
3.1 烧写工具(Windows)
瑞芯微创建磁盘工具(本文使用)⭐
工具信息:
- 工具名称:瑞芯微创建磁盘工具(Rockchip Create Disk Tool)
- 版本:v2.86 或更高版本
- 来源:瑞芯微官方 / 幸狐派提供的资料包 / 厂商技术支持
- 文件大小:约 10-20 MB
- 用途:创建可启动磁盘/烧写系统镜像
功能特点:
├─ 支持 RK3566 平台
├─ 支持 SD 卡/EMMC 烧写
├─ 图形界面操作简单
├─ 支持自定义镜像文件
└─ 自动验证写入数据
3.2 Windows 驱动安装(首次使用必备)⭐
Rockchip 驱动安装步骤:
方法一:使用驱动助手(推荐)
├─ 下载:Rockchip_Driver_Assistant_v1.9.zip
├─ 解压后运行:DriverInstall.exe
├─ 点击 "安装" 按钮
├─ 等待驱动安装完成
└─ 显示 "驱动安装成功"
方法二:手动安装
├─ 设备进入烧写模式并连接电脑
├─ 打开设备管理器
├─ 找到 "未知设备" 或 "Rockchip USB Device"
├─ 右键 → 更新驱动程序
├─ 选择 "浏览我的电脑以查找驱动程序"
├─ 指向驱动文件夹(包含 usb_driver.inf)
└─ 完成安装
验证驱动安装:
├─ 设备管理器 → 通用串行总线设备
├─ 应看到 "Rockchip USB Device" 或 "Rockchip Composite Device"
└─ 无黄色感叹号表示驱动正常
3.3 系统镜像
Debian 12 for RK3566:
从幸狐派官方或社区获取适配 RK3566 的 Debian 镜像
文件名示例:2023-09-13-debian-arm64+HDMI-lite.img
⚠️ 重要:必须使用适配 RK3566 和幸狐派 CM4 Lite 的镜像,通用 Debian 镜像无法启动!
四、系统烧写步骤
4.1 步骤一:焊接 32G EMMC 芯片
┌────────────────────────────────────────┐
│ EMMC 焊接流程 │
├────────────────────────────────────────┤
│ 1. 清理主板焊盘,去除氧化层 │
│ 2. 植锡球到 EMMC 芯片底部 │
│ 3. 涂抹助焊剂,对齐芯片方向(注意 Pin1)│
│ 4. 热风枪 280-300°C 加热焊接 │
│ 5. 冷却后检查短路和虚焊 │
│ 6. 万用表测试电源对地阻值 │
└────────────────────────────────────────┘
焊接完成后检查:
测量 EMMC 电源引脚对地阻值
VCC (eMMC 电源) 正常阻值:约 100-500Ω
如短路(接近 0Ω)需重新焊接
4.2 步骤二:使用瑞芯微创建磁盘工具烧写系统到 SD 卡
步骤 1:准备工具
├─ 确保已下载瑞芯微创建磁盘工具
├─ 解压工具包(如为压缩格式)
└─ 以管理员身份运行工具
步骤 2:连接 SD 卡
├─ SD 卡插入 USB 读卡器
├─ 读卡器连接电脑 USB 端口
└─ 电脑识别 SD 卡盘符(如 G: 盘)
步骤 3:选择镜像文件
├─ 点击 "选择镜像" 或 "Browse" 按钮
├─ 找到并选择解压后的 .img 镜像文件
│ └─ 文件名示例:debian10-rk3566-幸狐派-cm4-lite.img
└─ 确认镜像加载成功
步骤 4:选择目标磁盘
├─ 在磁盘列表中选择 SD 卡
│ └─ 根据容量识别(16GB 卡显示约 14.9GB)
│ └─ 或根据盘符识别
└─ ⚠️ 确认选择正确的设备(避免选错硬盘!)
步骤 5:开始烧写
├─ 点击 "创建" 或 "Start" 按钮
├─ 确认警告提示(将擦除 SD 卡数据)
├─ 等待烧写完成(约 5-10 分钟)
│ ├─ 擦除 SD 卡
│ ├─ 写入镜像
│ ├─ 验证数据
│ └─ 完成
└─ 显示 "创建成功" 或 "Success"
步骤 6:安全移除
├─ 等待工具提示完成
├─ 在 Windows 中安全移除 USB 设备
└─ 拔出 SD 卡
工具界面说明:
┌─────────────────────────────────────────────────────────┐
│ 瑞芯微创建磁盘工具 - □ × │
├─────────────────────────────────────────────────────────┤
│ │
│ 镜像文件:[C:\images\debian10-rk3566.img] [浏览] │
│ │
│ 目标磁盘: │
│ ┌──────────────────────────────────────────────────┐ │
│ │ ☐ 本地磁盘 (C:) 232GB NTFS │ │
│ │ ☑ 可移动磁盘 (G:) 14.9GB FAT32 │ │ ← SD 卡
│ │ ☐ 本地磁盘 (H:) 931GB NTFS │ │
│ └──────────────────────────────────────────────────┘ │
│ │
│ [开始创建] [退出] [帮助] │
│ │
│ 进度: │
│ └──────────────────────────────────────────────────┘ │
│ 状态:准备就绪 │
└─────────────────────────────────────────────────────────┘
4.3 步骤三:从 SD 卡启动系统(本地 HDMI+ 键盘操作)⭐
连接方式说明:
本文采用本地直连方式操作,无需 SSH:
├─ HDMI 显示器:输出图像
├─ USB 键盘:输入控制
├─ 网线/WiFi:网络连接(可选)
└─ 5V/3A 电源:供电
步骤 1:插入 SD 卡
├─ 将烧写好的 SD 卡插入幸狐派 CM4 Lite
└─ 确保插入到位(听到"咔哒"声)
步骤 2:连接显示器
├─ HDMI 线连接幸狐派和显示器
├─ 打开显示器电源
└─ 切换到对应 HDMI 输入源
步骤 3:连接键盘
├─ USB 键盘插入幸狐派 USB 端口
└─ 如使用无线键盘,插入接收器
步骤 4:连接网络(可选)
├─ 插入网线(有线网络)
└─ 或使用 WiFi(如镜像已配置)
步骤 5:上电启动
├─ 连接 5V/3A 电源
├─ 等待系统启动(约 1-2 分钟)
└─ 观察屏幕输出:
├─ U-Boot 启动信息
├─ Linux 内核加载
├─ 系统服务启动
└─ 登录提示符
步骤 6:登录系统
├─ 看到登录提示后输入用户名
├─ 输入密码(不显示)
└─ 成功进入命令行界面
默认登录凭据(参考镜像说明):
常见默认账户:
└─ 用户名:linaro 密码:linaro
⚠️ 首次登录后建议立即修改密码!
首次登录验证:
# 确认启动设备(应为 SD 卡)
lsblk
# 输出:
# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
# mmcblk0 179:0 0 14.9G 0 disk # SD 卡
# ├─mmcblk0p1 179:2 0 ***** 0 part /boot
# ├─mmcblk0p2 179:2 0 ***** 0 part
# ├─mmcblk0p3 179:2 0 ***** 0 part
# ├─mmcblk0p4 179:2 0 ***** 0 part
# ├─mmcblk0p5 179:2 0 ***** 0 part
# ├─mmcblk0p6 179:2 0 ***** 0 part
# ├─mmcblk0p7 179:2 0 ***** 0 part
# ├─mmcblk0p8 179:2 0 ***** 0 part / # 根分区
# mmcblk1 179:8 0 29.1G 0 disk # EMMC (32GB, 未使用)
本地操作优势:
├─ 无需网络配置,开机即用
├─ 可以看到完整启动日志
├─ 调试更方便,无网络延迟
├─ 适合系统安装和故障排查
└─ 操作响应更快
4.4 步骤四:使用 dd 命令将 SD 卡系统克隆到 EMMC ⭐
确认存储设备:
# 本地登录后,查看存储设备
lsblk
# 输出示例
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 14.9G 0 disk # SD 卡
├─mmcblk0p1 179:2 0 ***** 0 part /boot
├─mmcblk0p2 179:2 0 ***** 0 part
├─mmcblk0p3 179:2 0 ***** 0 part
├─mmcblk0p4 179:2 0 ***** 0 part
├─mmcblk0p5 179:2 0 ***** 0 part
├─mmcblk0p6 179:2 0 ***** 0 part
├─mmcblk0p7 179:2 0 ***** 0 part
├─mmcblk0p8 179:2 0 15.5GB 0 part / # 根分区
mmcblk1 179:8 0 29.1G 0 disk # EMMC 32GB (目标)
# ⚠️ 重要:确认设备名称!
# mmcblk0 = SD 卡 (源)
# mmcblk1 = EMMC (目标)
# 切勿搞反!
执行 dd 克隆:
# 先清空emmc
sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1M status=progress conv=fsync
# 完整克隆整个 SD 卡到 EMMC(推荐)
sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress conv=fsync
# 参数说明:
# if=/dev/mmcblk0 = 输入文件(SD 卡,源)
# of=/dev/mmcblk1 = 输出文件(EMMC,目标)
# bs=4M = 块大小 4MB,提高速度
# status=progress = 显示进度
# conv=fsync = 完成后强制同步写入
# 输出示例
# 100+0 records in
# 100+0 records out
# 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 180 s, 23.9 MB/s
# 100% [========================================] 14.9 GB / 14.9 GB
# 耗时参考:约 5-10 分钟(取决于数据量)
克隆完成后同步:
# 确保所有数据写入完成
sync
# 重新读取分区表
sudo partprobe /dev/mmcblk1
# 验证克隆
lsblk
# 应看到 mmcblk1 的分区结构与 mmcblk0 相同
mmcblk0 179:0 0 14.9G 0 disk # SD 卡
├─mmcblk0p1 179:2 0 ***** 0 part /boot
├─mmcblk0p2 179:2 0 ***** 0 part
├─mmcblk0p3 179:2 0 ***** 0 part
├─mmcblk0p4 179:2 0 ***** 0 part
├─mmcblk0p5 179:2 0 ***** 0 part
├─mmcblk0p6 179:2 0 ***** 0 part
├─mmcblk0p7 179:2 0 ***** 0 part
├─mmcblk0p8 179:2 0 15.5GB 0 part / # 根分区
mmcblk1 179:8 0 29.1G 0 disk # EMMC 32GB (目标)
├─mmcblk1p1 179:2 0 ***** 0 part /boot
├─mmcblk1p2 179:2 0 ***** 0 part
├─mmcblk1p3 179:2 0 ***** 0 part
├─mmcblk1p4 179:2 0 ***** 0 part
├─mmcblk1p5 179:2 0 ***** 0 part
├─mmcblk1p6 179:2 0 ***** 0 part
├─mmcblk1p7 179:2 0 ***** 0 part
├─mmcblk1p8 179:2 0 28.5GB 0 part / # 根分区
4.5 步骤五:使用 parted 重建分区表并扩容根分区 ⭐
查看当前 EMMC 分区:
# 查看 EMMC 分区表
sudo parted /dev/mmcblk1 print
# 输出示例(克隆后,分区大小与 SD 卡相同)
Model: MMC SDAE32G (sd/mmc)
Disk /dev/mmcblk1: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4MB 537MB 520MB fat32 boot boot, esp
...
8 ***** 16.0GB 15.5GB ext4 rootfs
⚠️ 此时 EMMC 根分区只有 15.5GB(与 SD 卡相同),需要扩容到 32GB
删除并重建分区(扩容):
# 进入 parted 交互模式
sudo parted /dev/mmcblk1
# 在 parted 提示符下执行:
(parted) print # 查看当前分区 会提示是否把GPT标记放到磁盘最末端 不停输入Fix
(parted) resize # 调整分区大小
(parted) 8 # 指定分区序号
(parted) 100% # 设定分区大小
(parted) print # 验证新分区表
(parted) quit # 退出
# 新分区表应显示:
# Number Start End Size File system Name Flags
# 1 17.4MB 537MB 520MB fat32 boot boot, esp
# ...
# 8 ***** 32.0GB 31.5GB ext4 rootfs
重新加载分区表:
# 通知内核重新读取分区表
sudo partprobe /dev/mmcblk1
# 验证新分区
lsblk
# 输出:
# mmcblk1 179:8 0 29.1G 0 disk
# ├─mmcblk1p1 179:9 0 512M 0 part
# ├─......
# └─mmcblk1p8 179:10 0 28.6G 0 part # 已扩容到 28.6GB
4.6 步骤六:使用 resize2fs 强制扩展文件系统 ⭐
检查文件系统:
# 检查文件系统完整性
sudo e2fsck -f /dev/mmcblk1p2
# 输出示例
# e2fsck 1.47.0 (5-Feb-2023)
# Pass 1: Checking inodes, blocks, and sizes
# Pass 2: Checking directory structure
# Pass 3: Checking directory connectivity
# Pass 4: Checking reference counts
# Pass 5: Checking group summary information
# /dev/mmcblk1p2: 12345/123456 files (0.5% non-contiguous), 1234567/12345678 blocks
扩展文件系统:
# 强制扩展 ext4 文件系统到分区最大容量
sudo resize2fs -f /dev/mmcblk1p2
# 输出示例
# resize2fs 1.47.0 (5-Feb-2023)
# Resizing the filesystem on /dev/mmcblk1p2 to 7628800 (4k) blocks.
# The filesystem on /dev/mmcblk1p2 is now 7628800 (4k) blocks long.
# 耗时:约 1-2 分钟
验证文件系统:
# 查看文件系统信息
sudo dumpe2fs -h /dev/mmcblk1p2 | grep "Block count"
# 输出
# Block count: 7628800
4.7 步骤七:通过 lsblk 检查 EMMC 和 df -h 检查系统分区 ⭐
lsblk 检查 EMMC 分区:
# 查看块设备
lsblk
# 预期输出(扩容完成后)
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 14.9G 0 disk # SD 卡 (源)
├─mmcblk0p1 179:1 0 512M 0 part /boot
├─......
└─mmcblk0p8 179:2 0 14.4G 0 part /
mmcblk1 179:8 0 29.1G 0 disk # EMMC 32GB
├─mmcblk1p1 179:9 0 512M 0 part # boot 分区
├─......
└─mmcblk1p8 179:10 0 28.6G 0 part # 根分区(已扩容)
# 详细信息
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,LABEL
# 输出
# NAME SIZE TYPE FSTYPE MOUNTPOINT LABEL
# mmcblk0 14.9G disk
# ├─mmcblk0p1 512M part vfat /boot boot
# ├─......
# └─mmcblk0p2 14.4G part ext4 / rootfs
# mmcblk1 29.1G disk
# ├─mmcblk1p1 512M part vfat boot
# ├─......
# └─mmcblk1p2 28.6G part ext4 rootfs
4.8 步骤八:切换到 EMMC 启动
移除 SD 卡测试:
# 1. 安全关闭系统
sudo shutdown now
# 2. 移除 SD 卡
# 3. 重新上电
# 4. 本地登录验证(HDMI+ 键盘)
# 直接在显示器上看到启动过程
# 输入用户名密码登录
# 5. 确认从 EMMC 启动
lsblk
# 应只显示 mmcblk1(EMMC),mmcblk0(SD 卡)不应出现
df -h
# /dev/root 应显示 28GB(EMMC 容量)
验证启动设备:
# 查看根设备
cat /proc/mounts | grep " / "
# 输出应为
/dev/mmcblk1p2 / ext4 rw,relatime 0 0
# 查看内核启动信息
dmesg | grep mmc
# 确认 EMMC 为启动设备
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
五、江波龙 EMMC 芯片验证
5.1 内核识别信息
# 查看 EMMC 识别信息
dmesg | grep -i mmc
# 输出示例(江波龙芯片)
[ 1.234567] mmc_host mmc0: Bus speed (slot 0) = 400000Hz
[ 1.345678] mmc0: new HS200 MMC card at address 0001
[ 1.356789] mmcblk0: mmc0:0001 SDAE32G 29.1 GiB
[ 1.367890] mmcblk0boot0: mmc0:0001 SDAE32G 16.0 MiB
[ 1.378901] mmcblk0boot1: mmc0:0001 SDAE32G 16.0 MiB
[ 1.389012] mmcblk0rpmb: mmc0:0001 SDAE32G 4.0 MiB, chardev (242:0)
5.2 芯片详细信息
# 查看 EMMC 芯片名称
cat /sys/class/mmc_host/mmc0/mmc0:0001/name
# 输出:SDAE32G (江波龙 32GB 标识)
# 查看生产日期
cat /sys/class/mmc_host/mmc0/mmc0:0001/date
# 输出:生产日期代码(如 052023 表示 2023 年 5 月)
# 查看 CID 寄存器(芯片唯一标识)
cat /sys/class/mmc_host/mmc0/mmc0:0001/cid
# 输出:1301334544453207204635203247ff
江波龙 SDAE32G 识别特征:
- 内核标识:
SDAE32G - 显示容量:约 29.1GB(实际 32GB,二进制换算)
- 启动分区:boot0/boot1 各 16MB
- RPMB 分区:4MB(安全存储区)
- CID 前缀:
13(江波龙厂商 ID)
