当前位置: 首页 > news >正文

【RK3506实战-03】Linux eMMC 实战全攻略

前言

RK3506 是工业级高性价比三核 A7 平台,广泛用于网关、工控、物联网终端。eMMC 作为板载默认存储,相比 SD 卡更稳定、速度更快、适合量产。本文从零开始,完整实战:环境搭建 → 内核 / DTS 配置 → eMMC 分区规划 → Windows/Linux 双平台烧录 → 启动验证 → 性能测试 → 常见问题 → 量产备份。全程可直接复现,适合作为 CSDN 高分实战博文。


一、开发环境准备

1.1 硬件平台

  • 主控:RK3506(3×A7 + M0)
  • 存储:板载 4GB/8GB/16GB eMMC 5.1
  • 调试:USB 转串口、双 USB 线、DC 电源

1.2 Ubuntu 依赖安装(20.04 / 22.04)

sudo apt update sudo apt install -y git repo gcc-arm-linux-gnueabihf \ device-tree-compiler libncurses5-dev bison flex \ libssl-dev bc lzop zip unzip p7zip-full

1.3 RK3506 SDK 说明

本文基于瑞芯微官方 / Firefly / 触觉智能 RK3506 Linux SDK 通用流程。

# 以 repo 方式为例 repo init -u git://xxx/rk3506/manifest.git -b linux repo sync -j8

二、内核 eMMC 驱动配置(核心)

2.1 内核 menuconfig 开启 MMC/eMMC

cd kernel make firefly_rk3506_linux_defconfig make menuconfig

开启如下配置:

Device Drivers ---> <*> MMC/SD/SDIO card support ---> <*> Rockchip SD/MMC Host Controller support <*> Rockchip SDIO eMMC 5.1 support [*] Enable HS200 [*] Enable HS400 [*] Support for eMMC HW Reset

2.2 设备树 DTS 配置(关键)

路径:arch/arm64/boot/dts/rockchip/rk3506-xxx.dts

&sdmmc { bus-width = <8>; non-removable; cap-mmc-highspeed; mmc-hs200-1_8v; mmc-hs400-1_8v; disable-wp; max-frequency = <200000000>; status = "okay"; };

要点:

  • bus-width = <8>:eMMC 必须 8bit
  • non-removable:板载存储不可热插拔
  • mmc-hs400-1_8v:开启高速模式

2.3 编译内核与设备树

./build.sh kernel ./build.sh dtbo

生成:

  • boot.img
  • kernel.img
  • resource.img
  • rootfs.ext4

三、eMMC 分区规划(parameter.txt)

RK3506 启动依赖 GPT 分区表,必须规范,否则无法启动。

典型分区表示例:

FIRMWARE_VER: 1.0 MACHINE_MODEL: RK3506 MAGIC: 0x52414B50 TYPE: GPT CMDLINE: console=ttyS0,115200 root=/dev/mmcblk0p3 rw rootwait PARTITION_LIST: uboot 0x4000 0x2000 boot 0x10000 0x40000 rootfs 0x40000 0x0

分区说明:

表格

分区名起始 LBA大小用途
uboot0x40004MBSPL + U-Boot
boot0x1000064MBKernel + DTB
rootfs0x40000剩余根文件系统

四、Windows 下 eMMC 烧录(RKDevTool 实战)

4.1 工具准备

  • RKDevTool v3.32 及以上
  • DriverAssitant 驱动安装工具

4.2 进入烧录模式

方式 1:MaskRom 模式(全新 / 救砖)

  1. 断电
  2. 按住MaskRom 键
  3. 上电 → 松开按键
  4. RKDevTool 显示:发现一个 MASKROM 设备

方式 2:Loader 模式(已有 U-Boot)

  1. 按住 Recovery 键
  2. 上电 → 松开
  3. 显示 LOADER 设备

4.3 完整镜像烧录

  1. 切换到【升级固件】
  2. 选择update.img
  3. 存储选择:eMMC
  4. 点击【升级】

4.4 单独分区烧录(开发高效)

  1. 切换到【下载镜像】
  2. 添加镜像:
    • uboot → uboot.img
    • boot → boot.img
    • rootfs → rootfs.ext4
  3. 点击【执行】

五、Linux 命令行烧录(rkdeveloptool)

适合无 GUI 服务器、自动化烧录。

sudo apt install rkdeveloptool # 查看设备 rkdeveloptool ld # 烧录完整镜像 rkdeveloptool write-flash update.img # 单独烧录分区 rkdeveloptool write-partition boot boot.img rkdeveloptool write-partition rootfs rootfs.ext4 # 重启 rkdeveloptool reboot

六、eMMC 启动验证

6.1 启动拨码开关

将启动模式设置为eMMC 启动(一般为 ON)。

6.2 串口日志关键信息

mmc0: new HS400 MMC card at address 0001 mmcblk0: mmc0:0001 8G eMMC 7.3 GiB mmcblk0boot0: mmc0:0001 8G eMMC 4 MiB mmcblk0boot1: mmc0:0001 8G eMMC 4 MiB mmcblk0: p1 p2 p3

看到/dev/mmcblk0即识别成功。

6.3 查看分区

fdisk -l /dev/mmcblk0

6.4 eMMC 性能测试

# 写入测试 dd if=/dev/zero of=/test bs=1M count=1000 conv=fsync # 读取测试 dd if=/test of=/dev/null bs=1M count=1000

正常 HS400 模式:

  • 读:160MB/s~220MB/s
  • 写:60MB/s~90MB/s

6.5 查看 eMMC 寿命

mmc extcsd read /dev/mmcblk0 | grep LIFE

输出0x01表示健康。


七、常见问题与排错(高分文必备)

7.1 设备无法识别

  • 换 USB 2.0 接口
  • 重装驱动
  • 重新进入 MaskRom

7.2 烧录成功但无法启动

  • DTS 中sdmmc未使能
  • 分区表 LBA 冲突
  • 启动拨码未切到 eMMC
  • Kernel 未开启 MMC 支持

7.3 eMMC 读写速度慢

  • 未开启 HS200/HS400
  • DTSbus-width不是 8
  • eMMC 剩余空间不足

7.4 系统挂载只读

  • eMMC 坏块
  • 文件系统异常
  • 电源不稳定

八、量产实战:eMMC 备份与批量烧录

8.1 从开发板备份完整镜像

用 SD 卡启动系统后执行:

dd if=/dev/mmcblk0 of=/mnt/udisk/rk3506_emmc.img bs=4M conv=fsync

8.2 压缩镜像

xz -z rk3506_emmc.img

8.3 批量烧录方案

  1. SD 卡自动量产烧录
  2. RK 多口量产工具
  3. 工厂自动化夹具

九、总结

本文完整覆盖RK3506 Linux eMMC 全流程实战

  • 内核驱动配置
  • DTS 设备树适配
  • eMMC 分区规划
  • Windows/Linux 双平台烧录
  • 启动验证、性能测试、寿命查看
  • 量产备份与常见问题
后续预告
下一篇文章:【RK3506实战-04】RK3506 Linux U 盘调试全攻略:从识别到优化,嵌入式场景必看
原创不易,如果本文对你有帮助,欢迎点赞、收藏、关注三连!有任何问题都可以在评论区留言,我会及时回复。
http://www.jsqmd.com/news/758745/

相关文章:

  • Quectel RM255C系列5G RedCap模块技术解析与应用
  • 2026 年最佳手机杀毒软件排名公布,多维度对比助你选到合适之选!
  • 【设计模式】命令模式
  • 终极指南:Microsoft REST API中的可空属性设计与可选字段处理策略
  • 强力淘金币自动化:彻底解放淘宝用户的时间与精力
  • 即梦怎么去水印?2026最新 最全去水印手机方法和工具盘点 - 爱上科技热点
  • 2026年OpenClaw如何部署?阿里云及Coding Plan配置保姆级指南
  • 从爬虫到文件下载:Hutool HttpUtil在Java项目中的5个实战场景(含进度监控与代理配置)
  • AI就业影响研究报告:哪些工作最危险? - AI Prism 智棱
  • 2026 武汉GEO服务商全景评测:五大头部机构实力解析 - GEO优化
  • 2026最新年抖音视频怎么提取无水印版本?官方下载无水印视频的全方法盘点 - 爱上科技热点
  • 英雄联盟智能助手终极指南:5大高效功能提升你的游戏体验 [特殊字符]
  • 自参考强化学习SRPO在多模态任务中的高效优化
  • 061、Python图像处理基础:PIL/Pillow库实战笔记
  • Unity UI实战:用Slider组件5分钟搞定一个音量调节面板(附完整C#脚本)
  • 在线去本地视频水印的工具有哪些?免费在线去除视频水印工具怎么挑?2026最新 在线去本地视频水印工具推荐 - 爱上科技热点
  • 从CentOS停服倒计时到信创达标验收:Docker 27引擎国产化适配的27天极速通关路径(附工信部认证测试用例集)
  • GME-Qwen2-VL-2B-Instruct图文检索教程:消费级GPU(RTX 3090/4090)适配指南
  • 抖音视频怎么在线去水印?2026最新 抖音视频在线去水印方法,抖音视频在线去水印工具推荐 - 爱上科技热点
  • 2026最新年免费一键去水印工具盘点|一键去水印工具推荐排行榜 - 爱上科技热点
  • 即梦AI去除水印怎么做?2026最新实测教程+工具对比指南 - 爱上科技热点
  • 2026最新年抖音图片去水印最新方法|抖音保存图片怎样去掉水印?4款工具实测对比 - 爱上科技热点
  • 去水印工具免费版哪个好用?2026最新 免费去水印工具对比,免费好用的去水印工具推荐盘点 - 爱上科技热点
  • Trestle高级特性解析:作用域、工具栏和模态框
  • 2026 苏州GEO服务商全景评测:五大头部机构实力解析 - GEO优化
  • 终极RPG Maker资源解密工具:专业解锁加密游戏档案的完整指南
  • 抖音视频怎么去水印?2026最新年最新去水印方法和工具实测对比 - 爱上科技热点
  • Maple Mono字体深度解析:如何通过开源等宽字体提升编程效率与视觉体验
  • 机械臂厂家采购必看!大件设备包装选错,全是运输损耗
  • [LabVIEW随笔-13] -ActorFramework-创建第一个Actor