ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

中兴B860AV1.1-T NAND版刷Armbian并写入EMMC全攻略

中兴B860AV1.1-T NAND版刷Armbian并写入EMMC全攻略 1. 先搞清楚这台盒子的底子B860AV1.1-T NAND版到底特殊在哪中兴B860AV1.1-T这个型号在运营商定制机顶盒里算是保有量相当大的一批但很多人拿到手之后发现同样是B860AV1.1-T有的能直接插U盘启动有的怎么折腾都不行。原因就在存储介质上——这个型号存在NAND版和EMMC版两种硬件配置外观几乎一模一样但刷机路径完全不同。NAND版的主控方案通常是晶晨S905系列具体到不同批次可能是S905L、S905L-B等搭配的是SPI NAND Flash作为系统存储容量一般1GB到2GB不等另外还有独立的DDR内存颗粒。EMMC版则是把存储换成eMMC芯片容量通常8GB起步。这个区别直接决定了你后面能不能用常规的U盘启动方式以及需不需要拆机短接。为什么NAND版更麻烦因为NAND Flash的启动机制和eMMC不一样。eMMC芯片内部集成了控制器对外呈现的是标准块设备接口主控可以直接按扇区读写而NAND Flash是裸的存储阵列需要主控内部的NAND控制器做坏块管理、ECC校验、磨损均衡。晶晨的BootROM在启动时会先尝试从SPI NAND读取引导程序如果引导程序校验失败或者被运营商锁死就会进入一个特殊的USB Burn Mode这时候才能通过USB线刷入新固件。运营商定制固件通常会把Bootloader锁住禁止从外部介质启动。这就是为什么你插了做好Armbian的U盘盒子还是老老实实进原来的IPTV系统。要打破这个限制就得让盒子在启动瞬间进入Burn Mode而进入Burn Mode最可靠的方式就是短接NAND芯片的特定引脚强制主控从USB通道加载引导。注意短接操作有风险引脚找错或者短接时间不对轻则无法进入刷机模式重则损坏主控或NAND芯片。动手前务必确认自己盒子的具体板型。我手上这台B860AV1.1-T NAND版拆开后主板丝印上能看到NAND芯片型号是一颗ESMT的SPI NAND容量1Gb128MB。这个容量对于Armbian来说非常紧张所以最终方案必须是把系统写入外接存储或者扩容后的eMMC而不是留在NAND里。这也是标题里写入EMMC的由来——NAND版本身没有eMMC但可以通过飞线或者更换主板上的存储芯片来加装eMMC模块或者更常见的做法是把Armbian写入USB存储设备然后通过短接引导从USB启动再把系统迁移到外接的eMMC模块上。2. 拆机与短接点定位NAND版和EMMC版的板级差异拆机这一步没什么好说的B860AV1.1-T的外壳是卡扣加螺丝混合固定底部两颗十字螺丝拧掉之后用塑料撬片沿着缝隙慢慢撬开就行。注意别用金属工具直接捅容易划伤外壳或者碰到主板上的元件。打开之后主板布局大致是这样的主控芯片在板子中央偏左DDR内存颗粒紧挨着主控NAND Flash芯片通常在主控的右下方或者上方是一颗比较小的方形芯片引脚间距很密。EMMC版的话存储芯片会明显大一圈引脚也更多。短接点的定位是NAND版刷机的核心难点。网上流传的短接方法有好几种我逐一试过之后总结如下第一种是短接NAND芯片的特定引脚。具体来说需要找到NAND芯片的WP#写保护引脚或者CE#片选引脚在通电瞬间将其对地短接。不同封装的NAND引脚定义不一样常见的TSOP48封装和BGA封装引脚位置完全不同。我手上这颗是TSOP48封装的WP#在引脚定义表的第19脚CE#在第9脚。实际操作时用镊子短接第9脚到地芯片的GND引脚然后插电主控检测到片选异常就会进入Burn Mode。第二种是短接主控旁边的测试点。有些批次的B860AV1.1-T在主控附近预留了TP测试点标注为TP1、TP2之类的短接特定测试点也能触发Burn Mode。这个方法比直接短接NAND引脚安全一些因为测试点通常有保护电阻不容易烧芯片。但我这台板子上没有找到明确的测试点标注所以还是走了NAND引脚短接的路子。第三种是短接DDR内存的特定引脚。这个方法我没敢试因为DDR引脚更密短接错了直接烧内存或者主控。短接方式操作难度风险等级适用批次NAND WP#/CE#引脚对地中等中TSOP48封装NAND主控旁TP测试点低低部分批次有预留DDR引脚短接高高不推荐我最终采用的是短接NAND第9脚CE#到GND的方式。具体操作先把主板从外壳里取出来接上电源线但不要通电。用一根细导线或者镊子一头抵住NAND芯片的第9脚另一头抵住芯片附近的GND焊盘可以用万用表蜂鸣档确认哪个是GND。保持短接状态然后插电。如果操作正确电脑上会立刻识别到一个Amlogic USB Burn Device这时候就可以松开短接了。提示短接要在插电瞬间完成插电后如果电脑没反应拔掉电源重新来。连续尝试不要超过五次中间间隔十几秒让电容放电。这里有个细节很多人会忽略USB线必须插在靠近主控的那个USB口上。B860AV1.1-T通常有两个USB口一个在侧面一个在背面只有其中一个支持Burn Mode通信。我试下来是背面那个靠近网口的USB口有效。另外USB线最好用质量好一点的劣质线会导致识别不稳定刷机中途掉线。3. 刷机工具链的选型与Armbian镜像的适配进入Burn Mode之后接下来就是软件层面的操作。晶晨平台常用的刷机工具是Amlogic USB Burning Tool版本建议用2.1.6.8或者2.2.0太老的版本对NAND支持不好太新的版本有时候会挑驱动。安装的时候会自动装一个WorldCup Device驱动这个驱动在Win10/Win11上可能需要手动禁用驱动签名强制才能装上。工具装好之后加载固件包。这里要注意NAND版不能直接刷EMMC版的固件因为分区表和存储驱动都不一样。你需要找专门针对NAND版编译的uboot和bootloader通常是一个包含u-boot.bin、boot.img、dtb等文件的完整烧录包。Armbian镜像的选择也有讲究。B860AV1.1-T的S905系列主控属于Amlogic GXL/GXM平台Armbian官方对这类设备的支持主要集中在meson-gxl分支。你需要下载对应内核版本的Armbian镜像比如Armbian_23.xx.x_Aml-s905_bookworm_current_xx.x.x.img。下载之后不要直接写入NAND因为NAND容量根本不够而是要先写入U盘或者SD卡通过短接引导从USB启动Armbian然后再考虑把系统迁移到eMMC。具体操作流程用balenaEtcher或者dd命令把Armbian镜像写入U盘。写入完成后U盘会被分成两个分区一个是FAT32的boot分区一个是ext4的rootfs分区。打开boot分区找到uEnv.txt或者armbianEnv.txt文件修改里面的dtb文件名确保指向meson-gxl-s905l-b860av11t.dtb或者类似的设备树文件。如果没有现成的dtb可以用meson-gxl-s905x-p212.dtb代替但可能有些外设不工作。把U盘插到盒子上短接NAND引脚通电。如果一切顺利盒子会从U盘启动屏幕上会出现Armbian的启动日志。这里有个坑NAND版的uboot默认可能不支持USB启动。如果短接后盒子还是进原来的系统说明uboot的启动顺序里没有USB。这时候需要用USB Burning Tool先刷一个解锁了USB启动的uboot这个uboot通常来自社区修改版刷入之后才能从U盘引导。我用的uboot是从一个开源社区找到的针对S905L NAND版修改过支持usb_start命令。刷入方法是在USB Burning Tool里只勾选bootloader分区其他不勾刷完之后盒子重启就会尝试从USB启动。4. 从U盘启动到写入EMMC的完整迁移过程U盘启动成功之后你会看到一个完整的Debian系统但这时候系统还跑在U盘上读写速度受限于USB 2.0而且U盘拔了系统就没了。要让它变成一个独立的设备就得把系统迁移到eMMC或者外接存储上。NAND版本身没有eMMC但有两种方案可以解决方案一飞线加装eMMC模块。这需要一定的焊接功底。B860AV1.1-T的主板上其实预留了eMMC的焊盘只是NAND版没有贴芯片。你可以买一颗兼容的eMMC芯片比如三星的KLMBG2JETD-B04132GB容量按照eMMC 5.1协议的定义把CLK、CMD、DAT0-DAT7、VCC、VCCQ、GND等引脚飞到主板的对应焊盘上。eMMC的153ball引脚定义在网上能查到但不同封装的引脚顺序不一样焊之前一定要用万用表确认。方案二把系统写入USB SSD或者高速U盘。这个方法更简单不需要动烙铁。具体做法是先用U盘启动Armbian然后准备另一个USB存储设备最好是SSD速度更快用armbian-install命令把系统安装到第二个USB设备上。安装完成后修改uboot的启动顺序让它优先从第二个USB设备启动。我选的是方案二因为飞线风险太高而且eMMC芯片的焊接需要热风枪和植锡台普通玩家很难搞定。具体操作步骤# 查看当前存储设备 lsblk # 假设U盘是/dev/sda目标SSD是/dev/sdb # 运行Armbian安装脚本 armbian-install # 在脚本提示中选择目标设备为/dev/sdb # 选择文件系统为ext4 # 等待安装完成安装完成后关机拔掉启动U盘只保留目标SSD。重新短接NAND引脚通电如果uboot的启动顺序正确系统会从SSD启动。第一次启动可能会比较慢因为要扩展分区和初始化服务。注意armbian-install脚本在写入bootloader到目标设备时可能会因为NAND版的uboot不支持从USB设备加载bootloader而失败。如果遇到这种情况可以手动把boot分区的文件复制到目标设备的第一个分区然后修改uEnv.txt里的rootdev参数指向目标设备的rootfs分区UUID。5. 刷机过程中最容易踩的五个坑第一个坑短接后电脑识别不到设备。这个问题八成是USB线或者USB口的问题。换一根线换一个USB口最好插在电脑主板后置的USB 2.0口上不要用前置口或者USB Hub。另外Windows的驱动有时候会抽风去设备管理器里看看有没有带黄色感叹号的设备有的话手动更新驱动指向USB Burning Tool安装目录下的drivers文件夹。第二个坑刷入uboot后盒子变砖通电无反应。这种情况通常是刷错了uboot比如把EMMC版的uboot刷进了NAND版。补救方法是重新短接NAND引脚进入Burn Mode刷回原厂固件或者正确的NAND版uboot。如果短接也没反应可能需要用TTL串口连接主板的调试口通过串口命令强制进入Burn Mode。B860AV1.1-T的TTL接口通常在主板边缘波特率115200。第三个坑Armbian启动后没有网络。S905L的网卡驱动在部分内核版本里有问题表现为eth0存在但无法获取IP。解决办法是修改/etc/network/interfaces手动指定静态IP或者换一个内核版本。我试过5.15和6.1两个内核6.1的网卡驱动更稳定一些。第四个坑写入EMMC后系统无法启动。这个多半是bootloader没有正确写入目标设备。NAND版的uboot默认只从NAND加载bootloader要从USB设备加载需要在uboot环境变量里设置bootcmd让它先扫描USB设备。具体命令是setenv bootcmd usb start; if fatload usb 0:1 0x01000000 boot.scr; then source 0x01000000; fi saveenv第五个坑系统跑起来之后频繁死机或者重启。这通常是电源问题。B860AV1.1-T原装电源是12V 1A带一个USB SSD的话功率可能不够。换个12V 2A的电源试试。另外S905L的散热片很小长时间高负载会过热降频建议加一个小风扇或者换个大一点的散热片。6. 刷完之后能拿这台盒子做什么Armbian跑起来之后这台B860AV1.1-T就从一台运营商机顶盒变成了一台低功耗的Linux小主机。S905L是四核Cortex-A53主频1.5GHz配上1GB DDR3内存性能大概相当于树莓派3B的水平。用来做以下事情完全够用轻量级NAS接一个USB硬盘装Samba或者NFS局域网内共享文件。下载机装Transmission或者qBittorrent挂PT或者BT下载。智能家居网关装Home Assistant接入各种传感器和设备。内网服务跑Docker部署一些轻量级服务比如AdGuard Home做DNS过滤或者Vaultwarden做密码管理。学习LinuxArmbian本身就是Debian用来学习Linux命令、Shell脚本、网络配置都很合适。功耗方面整机运行时的功耗大概在3W到5W之间一年电费也就几十块钱比开一台x86主机划算多了。提示如果要跑Docker建议把Docker的数据目录放到外接存储上因为NAND或者小容量eMMC的写入寿命有限频繁读写容易坏。我在实际使用中把系统装到了一个32GB的USB 3.0 U盘上虽然盒子只有USB 2.0接口但U盘本身速度快一些跑了AdGuard Home和几个Docker容器连续运行了一个多月没出过问题。温度方面不加风扇的话CPU温度在55度左右加一个小风扇能降到40度以下。最后再分享一个小技巧如果你不想每次都短接NAND引脚来启动USB系统可以在uboot里把bootcmd改成默认从USB启动这样以后通电就直接进Armbian不用再拆机短接了。具体命令是setenv bootcmd usb start; ...然后saveenv保存。不过这样改完之后如果想刷回原厂系统还是得短接进Burn Mode。
返回列表