数码之家

 找回密码
 立即注册
搜索
查看: 1640|回复: 50

[外设] 用机顶盒打造一个低成本的EMMC编程器,实现BOOT分区读写

[复制链接]
发表于 2024-5-27 23:32:26 | 显示全部楼层 |阅读模式
本帖最后由 yhky 于 2024-5-28 00:14 编辑

目前emmc常见于旧款安卓手机、平板电脑、机顶盒、路由器等设备,虽然emmc读写较为简单,使用一个普通的读卡器就能搞定,但在维修或者扩容等操作时,需要读写boot或者rpmb分区,普通读卡器则无能为力。


先在桃宝上找找emmc编程器,价格嘛,对新手还是不够友好。


这种价格比较友好的,其实只是普通读卡器,支持mmc卡的读卡器,它们能读取的只有userdata分区,也就是大部分设备存放系统和文件的地方,用于提取资料或者数据恢复还是可以的。


下面正式开工,某机顶盒主板,本次的编程器就是它,需要扩容的也是它,只不过是几台不同的机器而已。


先拆下旁边的晶振,根据经验判断这种元件不能承受风枪加热的高温,但操作失误直接将焊盘拆掉了,直接无视吧。还是拆emmc,焊接过程省略。


用这种emmc转tf卡,也可以用emmc转sd卡,根据机器上的卡槽来选择,一般建议转tf卡,因为这种用途更广泛。


选择一台能够root的机顶盒,打开终端模拟器,也可以使用adb操作
输入命令 ls /dev/block
查看是否能识别外置的mmc卡,内置卡的设备名通常为mmcblk0,外置卡为mmcblk1。一般可以在插卡之前查看一遍,插卡后再查看一遍,这样就能判断有没有识别到卡了。
查看到识别到了4个设备,其中mmcblk1为整个设备,mmcblk1p1为userdata部分的第一个分区,mmcblk1boot0和mmcblk1boot1为两个boot分区
插入原有芯片,备份原有数据,输入命令 dd if=/dev/block/mmcblk1 of=/storage/emulated/0/mmc.bin
插入替换芯片,写入备份数据,输入命令 dd if=/storage/emulated/0/mmc.bin of=/dev/block/mmcblk1
擦除芯片,输入命令 dd if=/dev/zero of=/dev/block/mmcblk1,用全0擦除
记住if=输入文件,of=输出文件,linux系统将所有设备都视为文件,只需对文件进行操作即可。这里的顺序不能颠倒,否则dd=destory data~
也可以使用这个命令,单独对boot0/boot1/rpmb分区进行读写。


看到这里,表示已经写入成功。


装回芯片验证,系统成功启动,不过容量并没有改变,在这里需要进rec双清一下,或者使用线刷工具重刷固件,才能正确识别容量。

成本统计:盒子35,转接卡3.5,供参考。本盒子为Aml S905D,1G+8G配置,已经把字库升级为16G,为了看电视和录视频,所以选择了扩容。

理论上,使用那些Z3735或者Z8300的win板主板,CPU原生SDIO接口出来的SD/TF卡槽,在Linux系统如Debian、Fedora、Alpine下也可以实现相同功能,具体我没测过。另外Z3735可以通过bootia32.efi引导64位Linux,具体折腾办法不再多述。

友情提示:
1.选用的盒子必须开启root,否则无法直接读写mmcblk设备,另有部分设备可以在adb或者TTL下使用root权限操作的,也行
2.可以给盒子刷入armbian ubuntu系统,以便更好地使用工具,例如使用mmc-utils可查看emmc剩余寿命
3.建议文件使用绝对路径,例如内部SD卡的实际挂载点为/storage/emulated/0,以这个路径存放备份文件,对于USB设备的挂载点就不统一了,以实际为准
4.若文件较大,建议将操作设备扩容,或者局域网挂载nfs设备,或者使用usb设备的方式存放备份文件
5.强烈建议不要使用中文或者带空格的文件名、文件路径,否则输入它们会异常难受,还容易造成错误
6.请严格区分操作命令以及文件名的大小写,常年使用win养成的坏习惯不能带到linux下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 3家元 +51 收起 理由
200birds + 30
亚历山大 + 9 認真發帖
hongo + 12 原創內容

查看全部打赏

发表于 2024-5-28 01:14:24 | 显示全部楼层
比较硬核,支持一下,给后人改写铺路
回复 支持 反对

使用道具 举报

发表于 2024-5-28 05:38:55 来自手机浏览器 | 显示全部楼层
高手级操作,
谢谢楼主分享。
回复 支持 反对

使用道具 举报

发表于 2024-5-28 07:22:43 来自手机浏览器 | 显示全部楼层
前排围观,表示有难度

打赏

参与人数 1家元 +6 收起 理由
yhky + 6 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2024-5-28 07:38:03 来自手机浏览器 | 显示全部楼层
高手啊,不仅吹焊功夫厉害,linux命令也记得那么熟悉。

打赏

参与人数 1家元 +6 收起 理由
yhky + 6 以資鼓勵

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2024-5-28 08:07:02 | 显示全部楼层
谢谢楼主分享。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 08:22:47 | 显示全部楼层
11651189 发表于 2024-5-28 07:38
高手啊,不仅吹焊功夫厉害,linux命令也记得那么熟悉。

过奖了,emmc焊接还是比较简单的,因为有效点位少,拆坏晶振焊盘其实还上技术不到位。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 08:28:14 | 显示全部楼层
理论上使用if=/dev/block/mmcblk0 of=/dev/block/mmcblk1,可将当前系统直接克隆到新emmc上,实现对本机的直接扩容,不过具体我没操作过,因为系统盘占用问题容易导致读取错误,不过写入boot和必要的引导后再刷机也是可以的
回复 支持 反对

使用道具 举报

发表于 2024-5-28 08:45:45 | 显示全部楼层
谢谢分享~!其实除了用机顶盒。支持emmc驱动的路由器也可以

打赏

参与人数 1家元 +6 收起 理由
yhky + 6 理论上可行

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2024-5-28 09:07:33 | 显示全部楼层
linux系统看来要学习一下
回复 支持 反对

使用道具 举报

发表于 2024-5-28 09:16:05 | 显示全部楼层
高手。想打赏,可惜没家元。
回复 支持 反对

使用道具 举报

发表于 2024-5-28 09:41:14 | 显示全部楼层
Foresee,江波龙
回复 支持 反对

使用道具 举报

发表于 2024-5-28 10:01:25 | 显示全部楼层
谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2024-5-28 10:13:59 | 显示全部楼层
谢谢分享,动手能力强
回复 支持 反对

使用道具 举报

发表于 2024-5-28 11:19:01 | 显示全部楼层
妥妥的高手呀
回复 支持 反对

使用道具 举报

发表于 2024-5-28 11:54:42 | 显示全部楼层
感谢楼主分享哈
俺记得好像是有款螃蟹的主控支持boot的读写

打赏

参与人数 1家元 +6 收起 理由
yhky + 6 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2024-5-28 12:03:13 | 显示全部楼层
谢谢楼主分享,有点难度
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 12:07:07 | 显示全部楼层
吃烧饼喝三鹿 发表于 2024-5-28 11:54
感谢楼主分享哈
俺记得好像是有款螃蟹的主控支持boot的读写

螃蟹主控的读卡器,常见于笔电,没有猜错的话应该是某款电脑的内置读卡器
我自己也有款螃蟹的,RTS5139的,在本贴倒数第2图的左下角那款,用起来比很多品牌的都要好用
其实本质上就是魔改固件,使它能读取所有分区
回复 支持 反对

使用道具 举报

发表于 2024-5-28 12:08:02 | 显示全部楼层
那如果使用RK或者全志的开发板,从SD卡启动Linux;然后将emmc作为编程用的岂不是也可以实现类似功能

打赏

参与人数 1家元 +6 收起 理由
yhky + 6 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 12:13:24 | 显示全部楼层
极客新人 发表于 2024-5-28 12:08
那如果使用RK或者全志的开发板,从SD卡启动Linux;然后将emmc作为编程用的岂不是也可以实现类似功能 ...

这个不一定,要看机器是否能改boot配置,从某个sdio端口引导系统,从而完全去除对内置emmc的依赖
我用这个机器试过,拆下内置emmc然后焊在tf卡上,再将tf插进卡槽,开机能进引导,但无法加载系统,提示无法挂载rootfs然后重启。尝试过修改uboot-env但无法保存,也可能是uboot本身的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-6-13 18:28 , Processed in 0.202800 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表