跳到主要内容

USB 刷机(海思)

短接盒子的特定电路,让 CPU 判断从 usb 口磁盘读取根目录的 fastboot.bin 启动,配合启动指令进行刷入NAS系统。

准备工作

  • 一个 U盘,需要格式化为 FAT16 或者 FAT32 文件系统;
    这个U盘必须是2.0协议的普通U盘,最好是牌子正品的。
    转接器或者硬盘盒之类的 99% 无法被 CPU 即时识别。
    建议 1G-64G 之间容量的 U 盘。

  • 短接板子电路的工具:镊子、刀片或者小铜线;

  • 根据网络搜索,或者厂家电路图,找出你的机顶盒型号的短接点。

  • Windows7以上电脑系统。

刷机步骤

格式化 U 盘

警告

请务必使用此工具格式化你的 U 盘:
它能把 U 盘格式化为标准的 fat32 格式,并且能让 99% 的老旧 CPU 识别;

pic

提示

下载对应盒子芯片型号的固件

根据设备适配表,确定你的盒子是哪个fastboot简称的型号,
下载下表对应的固件包(仅支持armv7系统):

CPU 型号fastboot简称下载地址备注
hi3798mv100mdmo1amv100-mdmo1a-usb-flash.zip
hi3798mv100mdmo1bmv100-mdmo1b-usb-flash.zip
hi3798mv100mdmo1cmv100-mdmo1c-usb-flash.zip
hi3798mv100mdmo1dmv100-mdmo1d-usb-flash.zip
hi3798mv100mdmo1fmv100-mdmo1f-usb-flash.zip
hi3798mv100mdmo1gmv100-mdmo1g-usb-flash.zip

解压到 U 盘

将固件包解压到 U 盘的根目录,如下图:

pic
注意:根据型号不同,分别是mv100/mv200/mv300的子文件夹。

拆开外壳,准备短接点

以下分别是100、200、300已知的型号短接点,作为示例:
如果你发现有新的短接图纸,请私聊告知群主。

hi3798mv100 的盒子

提示

所有hi3798mv100型号的机顶盒短接点都可以通用的短接点:
CPU 右上角的 1,2 脚 短接法:

pic
个别已知的例子如下:
例子 1 :华为悦盒 ec6108v9c 短接 J16 (用镊子把这两个孔连上)
华为悦盒 ec6108v9 短接 J15
注意:如果你发现自己的ec6108v9板子是J16 请使用mdmo1g的刷机包。(部分商家外壳标识不规范)

pic

例子 2 :UNT400B 短接图 (用镊子把这两个孔连上)
pic

hi3798mv200 的盒子

提示

hi3798mv200的通用短接办法:
靠近CPU的R37贴片靠外一侧,跟USB口铁壳(地线)短接

pic

hi3798mv300 的盒子

提示

hi3798mv300的盒子目前没有发现通用的短接办法,
目前只发现一款盒子,移动的魔百盒 301H 如下图:
短接 c46 (用镊子把这个贴片的两端轻轻而又稳稳地夹住)
小心别太用力,注意别损坏!

pic
pic

补充:最近又有群友找到另一个途径短接301H的盒子:
pic

开始刷机

    1. 将前面准备好的 U 盘插入机顶盒的任一 usb 口;
      (一般靠近电源的 usb 口,也可以尝试另一个口)
    1. 网线接好,盒子网口接到路由器 LAN 口;
警告

注意:请接好网线刷机,不然 99% 可能刷好以后找不到 IP。

    1. 每次刷机都是按照砖头状态来刷的,理论上可以无限次刷!

请按照此动作顺序进行刷机:

关闭电源 --> 短接住 --> 打开电源 --> 5秒左右放开短接 --> 自动刷机

注意事项(无比珍贵的经验)

  • 你短接操作后,打开电源就亮原来的安卓欢迎屏(或者原来的屏幕),代表短接不成功。重新来!
  • 5-8秒后必须放开短接,否则无法写入文件;
  • 正确短接后,打开电源,黑屏约2分钟,然后会亮“正在刷入激动人心的系统”屏;
  • 超过5分钟一直黑屏,代表U盘不被识别,无法传送文件,请更换U盘或插到另一个usb口;
  • 5分钟后亮起第二张屏“我是小盒子也是大世界”和作者二维码,则代表刷完底包;
  • 此时务必等待5-8分钟系统初始化!匆忙断电请重新刷机!
  • 整个过程如果你无法使用HDMI屏幕观察,也可以通过U盘的闪烁灯(常闪)判断是否在刷入;
  • 如果刷完底包后一直无限重启,就是刷错了固件包,请重新更换正确的固件包。

pic
pic

查找 IP 进入管理页面

  1. 在路由器管理页面查找到自动分配给盒子的 IP,浏览器输入 IP 进入系统管理页面

分配的IP的mac寻址为 00:11:22:33:44:55,很容易查找。
pic

  1. 在我的电脑-网络-主机名(hi3798mvxxx)-downloads文件夹下可以找到 IP。
    pic
    pic

  2. windows的cmd下,ping主机名,也可以找到IP。
    pic

恭喜

pic

知识点

能使用 U 盘刷入系统,是作者其中之一的创新,
在uboot代码中添加了run命令函数,可以让其具有run common的能力,
然后使用bootargs的启动指令,将U盘中的文件通过自创指令写入emmc,
具体的实现例子如:

loadfiler=fatload usb 0 0x1000000 mv100/recoverybox32.ext4
flashpartitionr=mmc write.ext4sp 0x0 0x1000000 0x11000 0x20000
flashrootfs=run loadfiler flashpartitionr
bootcmd=run flashrootfs;

关于系统初始化,和network的联通,到出现分配的 IP 地址,interface里采用的是auto模式而不是hotplug模式,目的是开机启动必须自动往上寻址,只要你的网线、路由、DHCP等网络环境是正常的,那么就保证了盒子能够得到分配的 IP 。系统里有很多脚本是需要判断联网(局域网)后才会初始化的,所以,如果你刷机或者开机时,没有连接好网络,就会出现多发性的初始化错误。当然,刷机第一次联网启动完成后,就代表初始化完整了,此后重启不受此影响。当然,这个auto寻址模式也仅仅持续最多等待5分钟,实在没有网络,也会继续初始化。但是你可能需要多等至少5分钟的垃圾时间了。

当使用hitool工具擦除掉emmc全器件时,emmc内容完全清空,此时CPU启动时会自动跳跃去找usb口的fastboot.bin,也就是相当于短接的效果。

本教程写到这里基本结束了,想说的是,那些拿着作者的教程去卖钱的人士,是不是应该自觉捐款以安慰作者拔凉的心?

pic

后记( 为何我找不到IP )

一、没有等待初始化结束匆匆进行其它操作

成功烧写后,会出现“我是小盒子也是大世界”的静止画面;
一般5分钟左右会烧写完毕;
这个时候,盒子在进行固件系统的初始化,大概需要3分钟初始化系统,初始化结束后会再次自动重启;
在这个时间段里,请保持网线连接到路由器,并静静等待。
也可以打开路由器的管理页面,找到客户端列表,尝试刷新列表,找到分配给盒子的IP。

如果你匆忙操作盒子比如串口连接,比如断电,比如拔插设备等,都可能破坏初始化的过程,
造成破坏就必须重新再刷一遍。

二、网线不规范或者网口松动

仔细检查是否插好网线,建议插好网线来进行刷机。
检查是否插在路由器的LAN口,或者LAN口出来的交换机;
检查路由器LAN口或交换机LAN口是否亮灯。

三、刷机文件不完整或者被破环

有极个别的情况下刷机文件不完整,会造成最后那个分区的系统初始化失败。
造成后面无法正常启动系统,需要重新下载整理好刷机文件再刷一次。

四、路由器的功能或设置受到延时或阻碍

路由器设置了大量黑名单白名单;
路由器缓存IP地址池无法及时更新;
路由器的某些功能阻碍IP更新;
强烈建议不要插在光猫上,甚至有些人插错在iptv口。
甚至有人插在静态IP的旁路由下,无法获取上级路由的DHCP分配。

五、检查是否和电脑在同一个内网IP段

同一IP段下,不会理解可以百度,这里不再累赘。

最后,上述办法都不行,只能判断盒子硬件问题了。