分享

【5.27】AR/QCA/MT7620 Breed,功能强大的多线程 Bootloader - OPENWRT专版 - 恩山WIFI论坛 - 手机版 - Powered by Discuz!

 昵称6990924 2015-05-30
这是楼主从去年年中自行设计开发的一个全新的 Bootloader,并用于取代 U-Boot。
此 Bootloader 暂取名为 Breed,不是 U-Boot,也不是 U-Boot 的改进版,是全新、独立的、跟 U-Boot 平级的 Bootloader。


刷 AR/QCA 的 breed 后请修改 MAC 地址!!!!!


遇到刷了固件不能启动,或者一直进 Breed 界面的情况,请在回复里贴出 TTL 输出,不然楼主不会回复你或者处理这些问题!


致那些不看帖的坛友:请勿在极1原厂固件里刷breed,否则必砖无疑。此hc6361的breed只是用给极1刷TP类型的固件的。


免费、无限制、不开源

Breed 拥有楼主不死 U-Boot 的全部功能,并且还有以下特性:
  • 真正多线程

  • 实时刷机进度,进度条能准确反映刷机进度

  • Web 页面快速响应

  • 最大固件备份速度,依 Flash 而定,一般能达到 1MB/s

  • 免按复位键进入 Web 刷机模式

  • telnet 功能,免 TTL 进入 Breed 命令控制台

  • 复位键定义测试功能

  • 固件启动失败自动进入 Web 刷机模式



Web 界面跟不死 U-Boot 基本一致
main.png

[本帖内容]
  • 2楼 - 更新日志

  • 3楼 - 适用机型和 Flash 说明

  • 4楼 - Breed 命令控制台说明及 TTL 刷机

  • 5楼 - 复位键测试说明

  • 6楼 - 小米 Mini 固件启动设置


[进入 Web 刷机模式]
电脑网络连接设置为自动获取 IP 地址
打开 CMD,运行 ping 192.168.1.1 -t
按住复位键或者WPS键再给路由通电,如果看到路由器的部分或全部LED连闪4次,或 ping 通即表明进入 Web 刷机模式

[免按复位键进入 Web 刷机模式]
通过一个 Breed Enter 工具实现 (需要 WinPcap 支持)
https://www./install/bin/WinPcap_4_1_3.exe
确保路由与电脑通过网线相连

1. 启动 BreedEnter.exe
be1.png

2. 路由断电再通电
be2.png

3. 如果程序界面提示如下即表明已进入 Web 刷机模式
be3.png

[修改串口波特率]
  • 进入 Breed 命令控制台

  • 执行命令 setbrg <波特率> 即可

  • 重启生效



[文件说明]
文件名说明
BreedEnter.exeBreed 启动中断工具,实现免按复位键进入 Web 刷机模式
breed-mt7620-reset1.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#1
breed-mt7620-reset2.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#2
breed-mt7620-reset11.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#11
breed-mt7620-reset12.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#12
breed-mt7620-reset13.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#13
breed-mt7620-reset26.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#26
breed-mt7620-reset30.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#30
breed-mt7620-rt-n14u.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#1,WPS 键 GPIO#2
breed-mt7620-whr-1166dhp.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#52,AOSS 键 GPIO#53
breed-mt7620-mw300rv6.bin水星 MW300R v6 专用,波特率 57600,复位键 GPIO#1
breed-mt7620-lenovo-y1.bin联想 Y1 (newifi mini) 专用,波特率 115200,复位键 GPIO#11
breed-mt7620-lenovo-y1s.bin联想 Y1S (newifi) 专用,千兆口可用,波特率 115200,复位键 GPIO#11
breed-mt7620-zte-q7.bin中兴 ZTE Q7 专用,波特率 57600,复位键 GPIO#26
breed-mt7620-youku-yk1.bin优酷路由宝专用,波特率 57600,复位键 GPIO#1
breed-mt7620-xiaomi-mini.bin小米 Mini 专用,波特率 115200,复位键 GPIO#30
breed-mt7620-fir302m.bin斐讯 FIR300M/302M 专用,波特率 57600,复位键 GPIO#2
breed-mt7620-hiwifi-hc5761.bin极路由 极壹S (HC5661)/极贰 (HC5761) 专用,波特率 115200,复位键 GPIO#12
breed-mt7620-hiwifi-hc5861.bin极路由 极叁 (HC5861) 专用,千兆LAN可用,波特率 115200,复位键 GPIO#12
breed-ar9331.binAR9331 通用,波特率 115200,复位键 GPIO#11
breed-ar9331-mr12u.binTP-LINK MR12U 专用,波特率 115200,复位键 GPIO#11
breed-ar9331-pisen.bin品胜云路由 (云座易充 WMM003N/无线音乐路由 WPR001N) 专用,波特率 115200,复位键 GPIO#12
breed-ar9331-wr710n.binTP-LINK WR710N/WR720N v3 专用,波特率 115200,复位键 GPIO#11
breed-ar9331-hiwifi-hc6361.bin极路由 极壹 (HC6361) 专用,仅支持 TP 类固件,波特率 115200,复位键 GPIO#11
breed-ar9341.binAR9341 通用,波特率 115200,复位键 GPIO#17
breed-ar9342-wr1041nv2.binTP-LINK WR1042N v2 专用,波特率 115200,复位键 GPIO#14
breed-ar9344.binAR9344 百兆版,通用,波特率 115200,复位键 GPIO#16
breed-ar9344-ar8327n.binAR9344 + AR8327N 千兆版,通用,波特率 115200,复位键 GPIO#16
breed-ar9344-wdr3320v2.binTP-LINK WDR3320  v2 专用,波特率 115200,复位键 GPIO#16
breed-ar9344-wr941nv6.binTP-LINK WR941N v6 专用,波特率 115200,复位键 GPIO#12
breed-ar9344-mw4530r.bin水星 MW4530R 专用,波特率 115200,复位键 GPIO#17,QSS 键 GPIO#16
breed-qca953x.binQCA9531/QCA9533,通用,波特率 115200,复位键 GPIO#12
breed-qca9558-ar8236.binQCA9558 + AR8236 百兆版,通用,波特率 115200,复位键 GPIO#16
breed-qca9558-ar8327n.binQCA9558 + AR8327N 千兆版,通用,波特率 115200,复位键 GPIO#16
breed-qca9558-wr2041nv2.binTP-LINK WR2041N v2 专用,波特率 115200,复位键 GPIO#17
breed-qca9558-wr1043ndv2.binTP-LINK WR1043ND v2 专用,波特率 115200,复位键 GPIO#16
breed-tp9343.binTP9343,通用,波特率 115200,复位键 GPIO#1

注:专用版能够点亮所有LED

[刷入方式]
跟 U-Boot 相同的刷入方法:
  • 从 PandoraBox U-Boot 中刷入

  • 在固件中使用 mtd 命令刷入

  • 在 U-Boot TTL 中刷入

  • 用编程器刷入


[下载]

360 路由 C301 不能刷,否则变砖后果自负!

注意:TP-LINK TL-WR710N TL-WR720N v3 只能刷 breed-ar9331-wr710n.bin 专用版。刷成其他的变砖后果自负!

AR 芯片从不死 U-Boot 更新  Breed 方法:
请到 http://breed./r585%20%5b2015-05-13%5d/ 下载 r585 版的 Breed 刷入,再刷入最新版的 Breed。


AR/QCA 芯片从 U-Boot 更新到 Breed 后请一定记得检查 MAC 地址是否有效!!

楼主搭建的下载服务器链接:
http://breed./

百度网盘:
http://pan.baidu.com/s/1c0izwJm
  • 来自 2#hackpascal

  • 2015-3-21 22:38

本帖最后由 hackpascal 于 2015-5-27 17:22 编辑

更新日志

[2015-05-27 r599]
  • AR9342/AR9344 增加 AR8035 支持 (自识别)

  • 修复 AR/QCA 可能出现的读取 Flash 出错的问题


[2015-05-13 r585]
  • 添加 AR9341 支持

  • 添加 AR9342 + AR8327 支持 (TP-LINK TL-WR1041N v2 专用版)

  • 此版本(仅此版本)的 AR/QCA 系列可以通过任意版本的 U-Boot 直刷


[2015-05-12 r576]
  • 修复 AR9331 在 breed 下网口 LED 显示异常的问题

  • 添加 TP9343 支持

  • 添加 QCA9558 + AR8327N 支持 (百兆千兆自适应)

  • 添加极路由 极壹 (HC6361) 专用版,仅支持 TP-LINK 类型固件


[2015-05-07 r547]
  • 添加 QCA9558 + AR8236 支持 (仅百兆可用)

  • 添加 AR9331 支持

  • 修复可能出现的无法备份固件的问题

  • 修复频率设置在 Firefox 下显示异常的问题


[2015-05-04 r531]
  • 添加 QCA953X 支持


[2015-05-03 r527]
  • 添加 AR9344 + AR8327N 千兆版支持

  • 添加水星 MW4530R 专用版


[2015-04-29 r520]
  • 添加极路由 极叁 (HC5861) 专用版,千兆 LAN 可用


[2015-04-28 r515]
  • 设置交换机端口隔离,防止在启动时导致PC直接获取上级路由的IP地址


[2015-04-26 r511]
  • 添加 AR9344 百兆版支持,支持自定义超频

  • MT7620 增加 RippleOS 恢复出厂设置功能

  • 修复无法在 Linux 系统下上传的问题

  • 修复固件启动后获取到错误的 IP 地址的问题


[2015-04-07 r446]
  • 添加极路由 极贰 (HC5761) 专用版

  • 设置 MT7620 CPU 默认频率为 580MHz

  • 添加超频功能


[2015-04-06 r433]
  • 修复无法在 256MB 内存上使用的 BUG

  • 添加联想 Y1S (newifi) 专用版,支持双千兆口

  • 添加斐讯 FIR300M/302M 专用版


[2015-04-04 r425]
  • 添加爱快固件启动支持

  • 完善小米 Mini 固件启动支持 (说明见6楼)

  • 添加小米 Mini 专用版

  • 再次修复无法启动固件的问题


[2015-04-03 r419]
  • 添加优酷路由宝专用版

  • 修复在 32M Flash 下无法备份固件的问题 (主要是优酷路由宝)

  • 修复偶发性无法启动固件的问题


[2015-04-02 r411]
  • 添加3个专用版


[2015-03-31 r408]
  • 修复在部分路由上无法启动固件的问题 (中兴 Q7)

  • 在进入刷机模式时所有网口LED闪烁


[2015-03-30 r396]
  • 修复小米 Mini 开机进入 Breed 的问题

  • 修复部分原厂固件无法软重启的问题


[2015-03-30 r393]
  • 添加 GPIO#26 复位键支持 (中兴 Q7 便携式 3G 无线路由)

  • 改进 MT7620 btntst 命令


[2015-03-29 r389]
  • 修复在联想的路由 (Y1 Y1S RY-1 等) 上无法启动 PandoraBox 固件或启动后不停重启的问题

  • 添加优酷路由宝固件刷入及启动支持

  • 添加 Buffalo WHR-1166DHP 恢复出厂设置支持

  • 支持通过 PandoraBox U-Boot 刷入


[2015-03-24 r372]
  • 增加对带有外置 PA 的 MT7620 路由支持


[2015-03-24 r353]
  • 修复部分原厂固件有线网络无法使用的问题


[2015-03-23 r346]
  • 修复 LED 全亮的问题

  • 修复复位键 GPIO 测试功能的一些 BUG

  • 修复 MT7620 频率显示错误的问题

  • 修复跳转到 /cgi-bin/luci 的问题

  • 添加 Buffalo WHR-1166DHP 支持 (仅复位键)


[2015-03-21 r323]
  • 测试第一版


  • 来自 3#hackpascal

  • 2015-3-21 22:38

本帖最后由 hackpascal 于 2015-5-13 19:28 编辑

适用机型

[breed-mt7620-reset1.bin]
  • 水星 MW300R v6

  • 如意云 RY-1

  • 磊科 NO1

  • 优酷路由宝


[breed-mt7620-reset2.bin]
  • 斐讯 FIR300M/302M


[breed-mt7620-reset11.bin]
  • 联想 Y1 (newifi mini)

  • 联想 Y1S (newifi)


[breed-mt7620-reset12.bin]
  • 小度路由 (Ai-BR100)

  • 极路由 极壹S HC5661


[breed-mt7620-reset13.bin]
  • 海尔智能家居路由 HW-L1W


[breed-mt7620-reset26.bin]
  • 中兴 Q7 便携式无线 3G 路由


[breed-mt7620-reset30.bin]
  • 小米 Mini


[breed-mt7620-rt-n14u.bin]
  • 华硕 RT-N14U


[breed-mt7620-whr-1166dhp.bin]
  • Buffalo WHR-1166DHP


[breed-ar9331.bin]
  • TP-LINK TL-MR11U

  • TP-LINK TL-MR13U

  • TP-LINK TL-MR3020 v1

  • TP-LINK TL-MR3040 v1/v2

  • TP-LINK TL-MR3220 v2

  • TP-LINK TL-WR340G+ v7

  • TP-LINK TL-WR700N

  • TP-LINK TL-WR702N

  • TP-LINK TL-WR703N

  • TP-LINK TL-WR740N v4 (国际版)

  • TP-LINK TL-WR740N v5/v6/v7

  • TP-LINK TL-WR741N v4

  • TP-LINK TL-WR742N v5/v6

  • TP-LINK TL-WR743N v2

  • TP-LINK TL-WR745N v2

  • 水星、迅捷马甲路由


[breed-ar9331-pisen.bin]
  • 品胜云座易充 (WMM003N)

  • 品胜单网口无线音乐路由 (WPR001N)


[breed-ar9331-wr710n.bin]
  • TP-LINK TL-WR710N

  • TP-LINK TL-WR720N v3


[breed-ar9341.bin]
  • TP-LINK TL-MR3420 v2

  • TP-LINK TL-WR841N v8

  • TP-LINK TL-WR842N v2

  • TP-LINK TL-WR843N

  • TP-LINK TL-WR847N v3

  • TP-LINK TL-WR940N v2

  • 水星、迅捷马甲路由


[breed-ar9344.bin]
  • TP-LINK TL-WDR3310

  • TP-LINK TL-WDR3500

  • TP-LINK TL-WDR5300

  • TP-LINK TL-WDR6300 v2

  • 水星 MAC1200R


[breed-ar9344-ar8327n.bin]
  • TP-LINK TL-WDR3600

  • TP-LINK TL-WDR4300/4310/4320


[breed-qca953x.bin]
  • TP-LINK TL-WR802N v1

  • TP-LINK TL-WR820N

  • TP-LINK TL-WR841N v9/v10/v11

  • TP-LINK TL-WR842N v4

  • 水星 MW300R v10

  • 水星 MW305R v3

  • 水星 MW305R v5

  • 水星 MW316R v1

  • 迅捷 FR300R v9


[breed-qca9558-ar8236.bin]
  • TP-LINK TL-WR941N v7

  • TP-LINK TL-WR881N v1

  • 迅捷 FW450R v1

  • 水星 MW450R v1


[breed-qca9558-ar8327n.bin]
  • TP-LINK Archer C5

  • TP-LINK Archer C7 v1/v2

  • TP-LINK TL-WDR4900

  • TP-LINK TL-WDR7500 v2/v3


[breed-tp9343.bin]
  • TP-LINK TL-WR880N v3

  • TP-LINK TL-WR882N v1

  • TP-LINK TL-WR885N v1

  • TP-LINK TL-WR941N v8

  • TP-LINK TL-WR2041N v3

  • 水星 MW450R v2

  • 迅捷 FW450R v2



Flash 支持列表

[提示]
Flash 并不一定都能被识别出来,但是只要能识别出型号,不论是否对应,都能正常使用。
同一制造商可能有很多同容量 Flash 被识别为同一型号,这并不影响使用。

制造商
4M
8M
16M
32M
AtmelAT25DF321
AT25DF321A
AT25DF641

EON (cFeon)EN25F32
EN25P32
EN25Q32
EN25QH32
EN25P64
EN25Q64
EN25QH64
EN25Q128
EN25QH128
EN25QH256
ESMTF25L32PA
F25L32QA
F25L64QA

GigaDeviceGD25Q32GD25Q64GD25Q128
MacronixMX25L3205D
MX25L3235E
MX25L3255E
MX25L6405D
MX25L6435E
MX25L6455E
MX25L12805D
MX25L12835E
MX25L12855E
MX25L25635E
MX25L25655E
MicronM25P32
M25PX32
N25Q032A
M25P64
M25PX64
N25Q064A
N25Q128A13
N25Q128A11
N25Q256A
PMCPM25LQ032



SSTSST25VF032B
SST26VF032
SST26VF032B
SST25VF064C
SST26VF064B


SpansionS25FL032A
S25FL132K
S25SL032K *
S25FL064A
S25FL164K
S25SL064K **
S25SL128P1
S25SL128S1
S25SL128K ***
S25FL256S1
WinbondW25X32
W25Q32
W25X64
W25Q64
W25Q128W25Q256

* S25SL032K 被识别为 W25Q32
** S25SL064K 被识别为 W25Q64
*** S25SL128K 被识别为 W25Q128

以下型号在所有路由上都不兼容:
Micron M25P128
Spansion S25SL128P0
Spansion S25SL128S0
Spansion S25FL256S0
Spansion S25FL512S
Spansion S70FL01GS

以下型号可能不兼容,慎用:
Micronix MX25L3245E
Micronix MX25L6445E
Micronix MX25L12845E
  • 来自 4#hackpascal

  • 2015-3-21 22:38

本帖最后由 hackpascal 于 2015-3-29 21:31 编辑

Breed 命令控制台说明

Breed 内置了命令解释器,可以实现刷机等操作

[进入 Breed 命令控制台的方法]
  • 通过串口 (TTL),在启动提示 Press any key to interrupt autoboot ... 时按任意键中断启动即进入 Breed 命令控制台

  • 通过开机按复位键或 BreedEnter.exe 方法中断 Breed,即可通过 telnet 方法进入 Breed 命令控制台 (CMD 中 telnet 192.168.1.1 即可)

  • 请使用 Windows 自带的 telnet 客户端或者 PuTTY,linux 下的 telnet 客户端兼容不好


breed.png

[Breed 命令控制台功能说明]
  • vt100 控制台兼容

  • 支持 10 条历史命令,上下键调出

  • 每条命令最长支持 1024 个字符

  • 左右键、Home/End 键移动光标,可以插入和删除字符



Breed 内置命令介绍

[arp]
语法:arp
作用:显示当前 ARP 表

[boot]
语法:boot mem <addr>
boot flash [bank <n>]<addr>
参数:<addr> - 启动地址
<n> - Flash bank 号
说明:启动固件。
boot mem 从内存地址启动固件;
boot flash 从 Flash 启动固件,bank 号可选,默认为 0。

[btntst]
语法:btntst
说明:测试 GPIO 按钮

[dhcp]
语法:dhcp
说明:显示当前的 DHCP 租约

[exit]
语法:exit
说明:退出 telnet 模式

[flash]
语法:flash list
flash [bank <n>]info
flash [bank <n>]dump <addr> <size>
flash [bank <n>]read <addr> <dst> <size>
flash [bank <n>]erase <addr> <size>
flash [bank <n>]write <addr> <src> <size>
参数:<n> - Flash bank 号
<addr> - Flash 地址
<size> - 读取/擦除/写入数据大小
<src> - 要写入 Flash 的数据内存地址
<dst> - 要存放读取的 Flash 数据的内存地址
说明:flash list 列出所有 Flash
flash info 显示 Flash 的详细信息
flash dump 显示 Flash 内的数据
flash read 将 Flash 内的数据读取到内存
flash erase 擦除 Flash
flash write 将内存数据写入到 Flash


[gpio]
语法:gpio [status|list]
gpio button
gpio led
gpio get <n>
gpio set <n> <hi|lo>
gpio dir set <n> <in|out>
gpio led set <name> <on|off>
参数: [status] - 列出所有 GPIO 及其状态
<n> - GPIO 号
<hi> <lo> - 高/低电平
<in> <out> - GPIO 方向为输入/输出
<name> - LED 名称
<on> <off> - LED 亮/灭
说明:gpio [status|list] 列出所有 GPIO 及其状态
gpio button 显示当前路由上按钮的状态
gpio led 显示当前路由上部分 LED 的状态
gpio get 获取指定 GPIO 的电平状态
gpio set 设置指定 GPIO 的电平状态
gpio dir set 设置指定 GPIO 的方向
gpio led set 设置 LED 的亮灭


[help]
语法:help
说明:列出所有可用的命令

[mem]
语法:mem dump [keep]<start_addr> [size]
mem crc32 <addr> <size>
mem read [byte|short|long]<addr>
mem write [byte|short|long]<addr> <value>
参数:[keep]- 保持原始字节序
<start_addr> <addr> - 起始地址
<size> [size]- 显示/计算的数据大小
[byte][short][long]- 指定操作数大小,分别为 1字节、2字节、4字节
<value> - 要写入的值
说明:mem dump 显示内存数据,可指定要显示的字节数,keep 表示保存原始字节序,否则输出时将转换为 CPU 字节序。
mem crc32 计算内存数据的 CRC32 校验
mem read 读取内存某个地址的数值
mem write 修改内存某个地址的数值


[mii]
语法:mii list
mii <dev> dump <phy>
mii <dev> read <phy> <reg>
mii <dev> write <phy> <reg> <val>
参数:<dev> - 设备名
<phy> - PHY 号
<reg> - 寄存器
<val> - 数值
说明:mii list 列出网络接口设备
mii dump 转储指定接口的 MII 寄存器 (0 ~ 31)
mii read 读取指定接口的 MII 寄存器
mii write 修改指定接口的 MII 寄存器


[net]
语法:net [start|stop]
说明:net start 启动网络服务
net 停止网络服务,并关闭所有网络连接

[netstat]
语法:netstat
说明:显示当前活动的网络连接

[reset]
语法:reset
说明:重启路由

[setbrg]
语法:setbrg <val>
参数:<val> - 波特率
作用:设置 Breed 串口输出的波特率,一直生效

[sysinfo]
语法:sysinfo
说明:显示系统信息

[thread]
语法:thread
说明:列出所有线程信息

[wget]
语法:wget [addr]<url>
参数:[addr]- 要存放数据的内存地址,可忽略
<url> - 要请求文件数据的 HTTP 链接
说明:通过 HTTP 协议加载文件到内存。URL 里只能使用 IP 地址。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多