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

RK3576 Android 14 SD卡启动实战:3处源码修改与V1.78工具制作全流程

RK3576 Android 14 SD卡启动全流程实战指南

1. 环境准备与硬件选型

在开始RK3576平台的SD卡启动调试前,确保您已准备好以下硬件和软件环境:

硬件清单:

  • RK3576 EVB开发板(带SD卡槽)
  • 符合规格的SD卡(建议选择工业级产品)
    • 容量:8GB-32GB(实测64GB部分型号也可用)
    • 速度等级:Class10/UHS-I及以上
    • 推荐品牌:SanDisk Extreme、Samsung Pro Endurance

软件工具:

# 工具链验证命令 $ git --version git version 2.25.1 $ repo --version repo version v2.4.3

开发环境配置要点:

  1. 推荐Ubuntu 20.04 LTS作为编译主机
  2. 磁盘空间至少预留200GB(Android源码约150GB)
  3. 安装必要依赖包:
sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev \ libgl1-mesa-dev libxml2-utils xsltproc unzip

2. 源码修改关键步骤

2.1 Android层配置修改

进入device/rockchip/rk3576目录,修改BoardConfig.mk:

# 修改前 PRODUCT_BOOT_DEVICE := 2a2d0000.ufs,2a330000.mmc PRODUCT_SDMMC_DEVICE := 2a310000.mmc # 修改后 PRODUCT_BOOT_DEVICE := 2a2d0000.ufs,2a330000.mmc,2a310000.mmc # PRODUCT_SDMMC_DEVICE := 2a310000.mmc

修改说明:

  1. 在PRODUCT_BOOT_DEVICE中添加SD控制器节点2a310000.mmc
  2. 注释掉PRODUCT_SDMMC_DEVICE定义(避免冲突)
  3. 保留AVB相关配置(如BOARD_AVB_ENABLE)

2.2 Kernel设备树调整

修改内核设备树文件(如rk3576-evb1.dtsi):

&sdmmc { + supports-emmc; status = "okay"; };

关键参数解析:

参数作用推荐值
supports-emmc启用eMMC兼容模式必须添加
max-frequencySD卡工作频率150000000
bus-width数据总线宽度4
cap-sd-highspeed高速模式支持1

3. 固件编译与验证

3.1 完整编译流程

# 初始化repo repo init -u https://github.com/rockchip-linux/manifests -b android-14.0 # 同步代码 repo sync -j8 --no-tags --no-clone-bundle # 应用修改后编译 source build/envsetup.sh lunch rk3576_evb-userdebug make -j$(nproc) update.img

编译产物验证:

$ ls -lh out/target/product/rk3576/update.img -rw-r--r-- 1 user user 1.8G Jul 15 10:30 update.img

3.2 编译常见问题处理

问题1:SD控制器未识别

[ 2.345678] mmc1: error -110 whilst initialising SD card

解决方案:

  1. 检查设备树sdmmc节点配置
  2. 验证硬件原理图电压切换电路
  3. 更换SD卡测试

问题2:启动卡在uboot阶段

MMC: no card present

解决方案:

// 修改uboot配置 + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI_ROCKCHIP=y

4. SD卡制作工具实操

使用瑞芯微SD卡制作工具V1.78的具体步骤:

  1. 工具准备

    • 下载SD_Firmware_Tool_v1.78.zip
    • 解压后以管理员身份运行SD_Firmware_Tool.exe
  2. 制作流程

    1. 插入SD卡到读卡器
    2. 选择正确的磁盘设备(务必确认避免误操作
    3. 勾选"SD启动"模式
    4. 选择编译生成的update.img
    5. 点击"开始创建"按钮

操作界面关键区域说明:

+-----------------------------+ | ① 设备选择下拉框 | | ② 工作模式单选按钮 | | ③ 固件选择按钮 | | ④ 进度条显示区域 | | ⑤ 操作日志输出框 | +-----------------------------+

5. 上电验证与调试

5.1 启动流程检查

正常启动日志应包含以下关键节点:

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [ 0.220000] mmc1: new high speed SDHC card [ 0.250000] mmcblk1: mmc1:0001 SD32G 29.7 GiB [ 1.800000] android: mounting /mnt/runtime/default/emulated

5.2 常见故障排查表

现象可能原因排查方法
卡在uboot设备树配置错误检查sdmmc节点status
反复重启电源不稳定测量3.3V/1.8V电压
识别为只读文件系统损坏重新制作SD卡
速度异常慢时钟配置问题检查max-frequency参数

6. 高级配置与优化

6.1 双启动配置方案

通过修改parameter.txt实现SD卡与eMMC双启动:

FIRMWARE_VER: 1.0 MACHINE_MODEL: RK3576 MACHINE_ID: 007 BOOT_FROM: sdmmc

启动优先级配置:

  1. 同时插入SD卡和eMMC时
  2. 修改BOOT_FROM字段:
    • sdmmc:优先SD卡
    • emmc:优先eMMC
    • auto:自动选择

6.2 性能优化参数

在kernel的dts中添加SD卡性能优化配置:

&sdmmc { clock-frequency = <150000000>; supports-sd; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; sd-uhs-sdr104; vqmmc-supply = <&vccio_sd>; vmmc-supply = <&vcc_sd>; };

7. 工程实践建议

  1. 批量生产方案

    • 使用dd命令制作镜像模板:
    dd if=/dev/sdb of=sd_boot.img bs=4M status=progress
    • 通过USB集线器同时烧录多张SD卡
  2. 温度适应性测试

    • 工业级应用需验证-40℃~85℃工作范围
    • 关注低温下的SD卡初始化成功率
  3. 长期运行稳定性

    • 建议启用内核错误检测:
    CONFIG_MMC_DEBUG=y CONFIG_MMC_BLOCK_DEFERRED_RESUME=y

提示:实际项目中遇到SD卡频繁掉卡的情况,可尝试在电源滤波电路添加100nF+10uF组合电容,这种设计在多个工业现场验证有效。

http://www.jsqmd.com/news/1160129/

相关文章:

  • 香港公司迁册咨询服务排行榜有哪些?
  • 域名定价陷阱揭秘:如何避免建站公司的高价域名套路
  • 登报免责声明怎么办理?2026新办理攻略(附模板+费用)​ - 慧办好
  • 解锁音乐自由:3分钟掌握NCM音乐格式转换的终极方案
  • 如何利用OCRAutoScore智能阅卷系统提升90%批改效率:面向教师的完整指南
  • Claude Code开发流程拆解:3个关键阶段、7个避坑节点、1套可复用Checklist
  • 2026大连沙河口正规卫生间漏水维修推荐 - 谁都没有我好看
  • 2026中山小鹏G6音响升级观察:乌托邦声场为什么要系统搭建?
  • 2026年北京DTSS如何申请?专业的咨询机构攻略
  • 2026年7月最新泉州天梭官方售后客户服务电话及线下网点地址 - 天梭服务中心
  • Kimi LeetCode 3525. 求出数组的 X 值 II Python3实现
  • shell环境变量
  • Muse Image:基于扩散模型的社交媒体图像生成技术解析
  • VB6.0在Windows 10/11上的兼容性安装与运行时修复指南
  • 它们由权重构成:揭秘大模型背后的灵魂架构
  • 市场分析PPT模板推荐哪家?2026年超全选购指南
  • STM32F411RE与L9958实现高性能BLDC电机驱动方案
  • 微机课设核心器件解析:8255与DAC0832在8086波形发生器中的3种典型接口电路
  • 信息素养大赛 C++ 复赛真题精讲:从“滑雪板打包”到“选书方案”的 2 种优化策略
  • ANSYS 2026安装架构深度解析:HPC运行时、许可证机制与Windows部署陷阱
  • 3分钟整理Windows右键菜单:ContextMenuManager让你的桌面效率翻倍
  • 阴阳师自动化脚本终极指南:三步解决模拟器适配难题
  • 基于蓝牙5.4与STM32的高性能无线音频系统设计
  • Creo 10.0教育版合法安装与工程级配置指南
  • 卡地亚中国官方售后服务中心|地址与官方服务热线权威信息公告(2026年7月最新) - 卡地亚服务中心
  • 基础 1 —— Docker 的简介
  • 江西省赣州市兴国县九里蓝湾六层别墅电梯落地:主梁加固后现浇土建井道,木纹定制家用电梯安全交付
  • Ansible远程管理飞牛OS实操:Playbook执行、SSH穿透与固定TCP地址配置
  • 逸程扎根南京秦淮 专业黄金回收鉴定服务 - 融媒生活
  • 2026多商户商城系统哪家好,别被功能清单带偏