Files
doc/docs/tutorial-basics/usb-flash.md
2024-03-26 12:03:00 +08:00

216 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
sidebar_position: 2
---
# USB 刷机(海思)
短接盒子的特定电路,让 CPU 判断从 usb 口磁盘读取根目录的 ```fastboot.bin``` 启动配合启动指令进行刷入NAS系统。
## 准备工作
- 一个 U盘需要格式化为 FAT16 或者 FAT32 文件系统;
这个U盘必须是2.0协议的普通U盘最好是牌子正品的。
转接器或者硬盘盒之类的 99% 无法被 CPU 即时识别。
建议 1G-64G 之间容量的 U 盘。
- 短接板子电路的工具:镊子、刀片或者小铜线;
- 根据网络搜索,或者厂家电路图,找出你的机顶盒型号的短接点。
- Windows7以上电脑系统。
## 刷机步骤
### 格式化 U 盘
:::caution
请务必使用此工具格式化你的 U 盘:
它能把 U 盘格式化为标准的 fat32 格式,并且能让 99% 的老旧 CPU 识别;
:::
![pic](pic/usb.png)
:::tip
下载地址:
[神雕U盘格式化小工具](https://www.ecoo.top/update/soft_init/USBFormat.exe)
:::
### 下载对应盒子芯片型号的固件
根据[设备适配表](/devices/)确定你的盒子是哪个fastboot简称的型号
下载下表对应的固件包仅支持armv7系统
| CPU 型号 | fastboot简称 | 下载地址 | 备注 |
| ------------------ | --------------------- | ----------------- | ---------|
| hi3798mv100 | mdmo1a | [mv100-mdmo1a-usb-flash.zip](https://node4.histb.com:9088/update/system/mv100-mdmo1a-usb-flash.zip)| |
| hi3798mv100 | mdmo1b | [mv100-mdmo1b-usb-flash.zip](https://node4.histb.com:9088/update/system/mv100-mdmo1b-usb-flash.zip)| |
| hi3798mv100 | mdmo1c | [mv100-mdmo1c-usb-flash.zip](https://node4.histb.com:9088/update/system/mv100-mdmo1c-usb-flash.zip)| |
| hi3798mv100 | mdmo1d | [mv100-mdmo1d-usb-flash.zip](https://node4.histb.com:9088/update/system/mv100-mdmo1d-usb-flash.zip)| |
| hi3798mv100 | mdmo1f | [mv100-mdmo1f-usb-flash.zip](https://node4.histb.com:9088/update/system/mv100-mdmo1f-usb-flash.zip)| |
| hi3798mv100 | mdmo1g | [mv100-mdmo1g-usb-flash.zip](https://node4.histb.com:9088/update/system/mv100-mdmo1g-usb-flash.zip)| |
### 解压到 U 盘
将固件包解压到 U 盘的根目录,如下图:
![pic](pic/usb2.png)
注意:根据型号不同,分别是```mv100/mv200/mv300```的子文件夹。
### 拆开外壳,准备短接点
以下分别是100、200、300已知的型号短接点作为示例
如果你发现有新的短接图纸,请私聊告知群主。
#### hi3798mv100 的盒子
:::tip
所有hi3798mv100型号的机顶盒短接点都可以通用的短接点
CPU 右上角的 12 脚 短接法:
:::
![pic](pic/cpu12.png)
个别已知的例子如下:
例子 1 :华为悦盒 ec6108v9c 短接 J16 (用镊子把这两个孔连上)
华为悦盒 ec6108v9 短接 J15
注意如果你发现自己的ec6108v9板子是J16 请使用mdmo1g的刷机包。部分商家外壳标识不规范
![pic](pic/ec6108v9c.jpg)
例子 2 UNT400B 短接图 (用镊子把这两个孔连上)
![pic](pic/unt400b.jpg)
#### hi3798mv200 的盒子
:::tip
hi3798mv200的通用短接办法
靠近CPU的R37贴片靠外一侧跟USB口铁壳地线短接
:::
![pic](pic/r37.jpg)
#### hi3798mv300 的盒子
:::tip
hi3798mv300的盒子目前没有发现通用的短接办法
目前只发现一款盒子,移动的魔百盒 301H 如下图:
短接 c46 (用镊子把这个贴片的两端轻轻而又稳稳地夹住)
小心别太用力,注意别损坏!
:::
![pic](pic/301h.jpg)
![pic](pic/301h2.png)
补充最近又有群友找到另一个途径短接301H的盒子
![pic](pic/301h3.jpg)
### 开始刷机
- 1. 将前面准备好的 U 盘插入机顶盒的任一 usb 口;
(一般靠近电源的 usb 口,也可以尝试另一个口)
- 2. 网线接好,盒子网口接到路由器 LAN 口;
:::caution
#### 注意:请接好网线刷机,不然 99% 可能刷好以后找不到 IP。
:::
- 3. 每次刷机都是按照砖头状态来刷的,理论上可以无限次刷!
请按照此动作顺序进行刷机:
#### 关闭电源 --> 短接住 --> 打开电源 --> 5秒左右放开短接 --> 自动刷机
### 注意事项(无比珍贵的经验)
- 你短接操作后,打开电源就亮原来的安卓欢迎屏(或者原来的屏幕),代表短接不成功。重新来!
- 5-8秒后必须放开短接否则无法写入文件
- 正确短接后打开电源黑屏约2分钟然后会亮“正在刷入激动人心的系统”屏
- 超过5分钟一直黑屏代表U盘不被识别无法传送文件请更换U盘或插到另一个usb口
- 5分钟后亮起第二张屏“我是小盒子也是大世界”和作者二维码则代表刷完底包
- 此时务必等待5-8分钟系统初始化匆忙断电请重新刷机
- 整个过程如果你无法使用HDMI屏幕观察也可以通过U盘的闪烁灯常闪判断是否在刷入
- 如果刷完底包后一直无限重启,就是刷错了固件包,请重新更换正确的固件包。
![pic](pic/flash.png)
![pic](pic/flash2.png)
### 查找 IP 进入管理页面
1. 在路由器管理页面查找到自动分配给盒子的 IP浏览器输入 IP 进入系统管理页面
分配的IP的mac寻址为 00:11:22:33:44:55很容易查找。
![pic](pic/ip.png)
2. 在我的电脑-网络-主机名(hi3798mvxxx)-downloads文件夹下可以找到 IP。
![pic](pic/ip2.jpg)
![pic](pic/ip3.jpg)
3. windows的cmd下ping主机名也可以找到IP。
![pic](pic/ip4.jpg)
### 恭喜
![pic](pic/1700933536657.jpg)
## 知识点
能使用 U 盘刷入系统,是作者其中之一的创新,
在uboot代码中添加了run命令函数可以让其具有run common的能力
然后使用bootargs的启动指令将U盘中的文件通过自创指令写入emmc
具体的实现例子如:
```html
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](pic/zhangshang.jpg)
## 后记( 为何我找不到IP
一、没有等待初始化结束匆匆进行其它操作
成功烧写后,会出现“我是小盒子也是大世界”的静止画面;
一般5分钟左右会烧写完毕
这个时候盒子在进行固件系统的初始化大概需要3分钟初始化系统初始化结束后会再次自动重启
在这个时间段里,请保持网线连接到路由器,并静静等待。
也可以打开路由器的管理页面找到客户端列表尝试刷新列表找到分配给盒子的IP。
如果你匆忙操作盒子比如串口连接,比如断电,比如拔插设备等,都可能破坏初始化的过程,
造成破坏就必须重新再刷一遍。
二、网线不规范或者网口松动
仔细检查是否插好网线,建议插好网线来进行刷机。
检查是否插在路由器的LAN口或者LAN口出来的交换机
检查路由器LAN口或交换机LAN口是否亮灯。
三、刷机文件不完整或者被破环
有极个别的情况下刷机文件不完整,会造成最后那个分区的系统初始化失败。
造成后面无法正常启动系统,需要重新下载整理好刷机文件再刷一次。
四、路由器的功能或设置受到延时或阻碍
路由器设置了大量黑名单白名单;
路由器缓存IP地址池无法及时更新
路由器的某些功能阻碍IP更新
强烈建议不要插在光猫上甚至有些人插错在iptv口。
甚至有人插在静态IP的旁路由下无法获取上级路由的DHCP分配。
五、检查是否和电脑在同一个内网IP段
同一IP段下不会理解可以百度这里不再累赘。
最后,上述办法都不行,只能判断盒子硬件问题了。