资讯动态

Atmosphère emuMMC 完全上手:从原理到故障恢复

发布时间:2026/10/20 1:52:17 来源:尧图企业网站定制
Atmosphère emuMMC 完全上手从原理到故障恢复【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere物理 eMMCSwitch 的内置闪存用久了或者你想拿实验系统练手又不想动真系统最稳妥的办法是把整套系统搬到 SD 卡上。Atmosphère 的 emuMMC 组件干的就是这件事它替换系统存储驱动让主机从 SD 卡读写虚拟 eMMC物理 eMMC 原封不动。这篇讲清楚它的三种存储模式、配置要点以及出故障时的排查路径。 原理与概念它到底做了什么可以把 emuMMC 理解成一个存储交换机主机启动后文件系统服务FS向 eMMC 控制器发读写的每一笔请求都被 emuMMC 拦截并重定向到 SD 卡。主机以为自己在读写内置存储实际动的全是 SD 卡。这意味着你可以在虚拟系统上随意折腾——装自制程序、降级、试错——物理 NAND 上的原始系统始终可以回退。三种存储模式模式定义在emummc/source/emuMMC/emummc_ctx.h中由上下文里的EMMC_Type字段决定enum emuMMC_Type { // EMMC Device raw emuMMC_EMMC 0, // SD Device raw emuMMC_SD_Raw, // SD Device File emuMMC_SD_File, emuMMC_MAX };emuMMC_EMMC直接读写真实 eMMC不做替换等价于原样启动。emuMMC_SD_Raw在 SD 卡上划一块裸分区按扇区偏移直接读写EMMC_StoragePartitionOffset指定起点。开销小、速度快但分区不能随意移动。emuMMC_SD_File整个虚拟 eMMC 是一组普通文件存放在/emuMMC/eMMC/目录下包含BOOT0、BOOT1和若干GPP00、GPP01… 分区文件。兼容 hekate 导出的备份镜像拆分或非拆分均可拷来拷去最方便。两个配套能力/Nintendo目录重定向游戏存档等用户数据默认写在/Nintendo下emuMMC 支持把它重定向到任意路径没有 8 字符长度限制。多份 emuMMC 镜像配置上下文由 exosphère 下发可以同时维护多套虚拟系统按需切换。 上手前准备项目要求说明SD 卡足够容量、文件系统正常文件模式需容纳完整 emuMMC 镜像hekate 备份格式裸分区模式需要专用分区Atmosphere发行版 emummc.kip在 emummc 目录执行make产物放到/atmosphere/emummc.kip经 fusée 注入Hekate可选kipm文件执行./build.sh产物复制到/bootloader/sys/固件版本Horizon 1.0.0 – 19.0.0官方支持范围新版本表现以官方文档为准配置文件/emuMMC/emummc.ini位于 SD 卡的/emuMMC/目录具体配置项以 emuMMC 官方文档为准各组件的定位和相互关系可以参考 emummc 组件文档 和 项目主文档。⚙️ 核心操作编译并放置 emummc.kip编译后的 KIP 由 fusée 在启动早期注入是整个功能生效的前提。按 emuMMC README 给出的方式构建Atmosphere 侧在 emummc 目录执行make把生成的 KIP 放到/atmosphere/emummc.kip如果同时用 Hekate则运行./build.sh并把kipm放到/bootloader/sys/。启动后主机从 SD 卡启动虚拟系统、真 eMMC 不再变动即说明注入成功。配置 emummc.iniemummc.ini 是 emuMMC 组件的唯一配置文件放在 SD 卡根目录的/emuMMC/下见 系统配置指南。文件里的上下文决定运行哪种模式文件模式要填镜像所在路径storagePath裸分区模式要填分区扇区偏移EMMC_StoragePartitionOffset。各字段的具体名称和取值以 emuMMC 官方文档为准改完后重启一次能正常进桌面且游戏数据完整即可确认配置生效。切换裸分区与文件模式两种模式的读写路径完全不同看源码最能理解差别。文件模式emummc/source/emuMMC/emummc.c逐个打开分区文件// Open BOOT0 physical partition. memcpy(path path_len, BOOT0, 6); if (f_open(f_emu.fp_boot0, path, FA_READ | FA_WRITE) ! FR_OK) fatal_abort(Fatal_FatfsFileOpen);任何一个分区文件打不开都会直接触发 fatal。裸分区模式则按偏移直接读扇区sector emuMMC_ctx.EMMC_StoragePartitionOffset; if (!sdmmc_storage_read(sd_storage, sector, num_sectors, buf)) return 0;日常搬家、换卡推荐文件模式追求读写性能、SD 卡容量充足时选裸分区。重定向 /Nintendo 目录存档数据默认落在/Nintendo/下路径受 8 字符限制时容易踩坑。emuMMC 支持将其重定向到任意路径且无长度限制。重定向后首次启动新路径下会生成完整的Nintendo目录结构游戏存档和系统数据从此写入新位置——老路径的历史数据不会自动迁移需要的话自行拷贝。开启 nogc 保护stratosphere.ini的nogc项控制是否禁用游戏卡带读取器。在 4.0.0 / 9.0.0 以下版本启动时若不禁用它后续系统更新可能刷新卡带读取器固件并烧断保险丝fuse导致不可逆1 强制启用 nogc始终禁用 Game Card reader0 强制禁用 nogc。在/atmosphere/config/stratosphere.ini中加入模板见 config_templates/stratosphere.ini[stratosphere] nogc 1Atmosphère 默认已自动保护改这个值是为了显式锁定行为需要读卡带时再改回 0。⚠️ 故障排查emuMMC 内部出错时统一走fatal_abortemummc/source/utils/fatal.c错误上下文写入内存后直接重启回 RCM 模式。所以 emummc 相关故障的典型现象是黑屏/重启进 RCM错误码在emummc/source/utils/fatal.h的FatalReason枚举里按序号对应错误现象可能原因解决方法重启进 RCM错误码Fatal_InitSDSD 卡初始化失败重新插拔、换卡槽、重新格式化 SD 卡错误码Fatal_InvalidAccessor存储后端类型与配置不匹配核对EMMC_Type与对应的路径/偏移配置是否一致错误码Fatal_FatfsMount/Fatal_FatfsFileOpen文件模式下 FAT 挂载或分区文件打开失败检查/emuMMC/eMMC/下BOOT0、BOOT1、GPP*文件是否齐全、完整错误码Fatal_FatfsMemExhaustion扩展 FAT 簇表时内存耗尽确认镜像文件未被截断重启重试错误码Fatal_UnknownVersion固件版本的 FS 不在支持范围核对支持的 Horizon 版本1.0.0–19.0.0以官方文档为准换过 SD 卡后启动异常裸分区残留的巡检元数据指向无效偏移见下方说明针对最后一项emuMMC 内置了自愈逻辑emummc.cif (nand_patrol.offset sd_storage.sec_cnt) { memset(nand_patrol, 0, sizeof(fs_nand_patrol_t)); sdmmc_storage_write(sd_storage, nand_patrol_sector, 1, nand_patrol); }即当记录的 patrol 偏移超出当前 SD 卡容量时自动清零并回写巡检元数据不需要手动擦除那个扇区。排查时记住顺序先确认emummc.kip版本与 Atmosphere 发行版一致再核对 emummc.ini 的模式字段最后才怀疑 SD 卡本身。RCM 状态下可重新注入 payload真系统未动过所以恢复成本很低。行动清单用 Hekate 先把原始系统 NAND 完整备份到 SD 卡作为最终回退点确认/atmosphere/emummc.kip与当前发行版匹配必要时重新make在/emuMMC/下创建 emummc.ini模式Raw/File与路径、偏移配置一致按需在stratosphere.ini中显式设置nogc 1首次启用后完整过一遍游戏存档读写确认/Nintendo重定向生效保留一张备用 SD 卡镜像文件同步存放第二份【免费下载链接】AtmosphereAtmosphère is a work-in-progress customized firmware for the Nintendo Switch.项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑