Breed介绍Breed 是国内个人hackpascal 开发的闭源 Bootloader,也被称为“不死鸟”
因为有些官方升级固件自带 bootloader,如果从官方固件升级,会导致现有 bootloader 被覆盖。而当 Breed 更新固件时,它会自动删除固件附带的引导加载程序,因此可以防止 Breed 被覆盖
在线网站
固件下载
AR/QCA/MTK Breed,功能强大的多线程 Bootloader
进入 Breed Web 的三种方式
通电按复位键 4~5 秒进入
通过 BreedEnter 进入
串口 (TTL) 进入
进入 Breed 命令控制台的方法
通过串口 (TTL),在启动提示 Press any key to interrupt autoboot … 时按任意键中断启动即进入 Breed 命令控制台
通过开机按复位键或 BreedEnter.exe 方法中断 Breed,即可通过 telnet 方法进入 Breed 命令控制台 (CMD 中 telnet 192.168.1.1 即可)端口号22
请使用 Windows 自带的 telnet 客户端或者 PuTTY,linux 下的 telnet 客户端兼容不好
Breed特性
实时刷机进度,进度条能准确反映刷机进度
Web 页面快速响应
最大固件备份速度,依 Flash 而定,一般能达到 1MB/s
免按复位键进入 Web 刷机模式
Telnet 功能,免 TTL 进入 Breed 命令控制台
复位键定义测试功能
固件启动失败自动进入 Web 刷机模式
可自定义位置和大小的环境变量块
由于是闭源,无法进行二次开发,所有支持的设备均由 hackpascal 一人完成。
Breed 内置命令介绍[abstatus]语法:abstatus作用:显示自动启动被中断的原因
[arp]语法:arp作用:显示当前 ARP 表
[boot]语法:boot mem boot flash [bank ] boot linux boot raw boot breed 参数: - 启动地址 - Flash bank 号说明:启动固件。 boot mem 从内存地址启动固件; boot flash 从 Flash 启动固件,bank 号可选,默认为 0; boot linux 将 视作 Linux 内核入口地址,并启动; boot raw 禁用中断,并从 处执行; boot breed 将 视作上传的 Breed bin 文件地址,并直接启动。
[btntst]语法:btntst btntst enable btntst disable btntst restore参数: - GPIO 号说明:测试 GPIO 按钮 btntst enable - 启用对 GPIO#n 的状态检测 btntst disable - 禁用对 GPIO#n 的状态检测 btntst restore - 恢复默认检测设置
[dhcp]语法:dhcp dhcp [enable|disable]说明:显示当前的 DHCP 租约 dhcp enable 开启 DHCP 服务 dhcp disable 关闭 DHCP 服务 改动不会保存,重启后恢复默认 DHCP 开启状态
[env]语法:env env list env get env set env unset env clear env save参数: 环境变量名 环境变量数据说明:管理环境变量 必须使用 envconf 启用环境变量后才能使用此命令 修改环境变量后必须保存 env list 列出所有环境变量,显示总空间和空闲空间 env get 获取名称为 的环境变量的值 env set 设置环境变量 的值为 ,不存在则新建 env unset 删除名称为 的环境变量及其值 env clear 清除所有环境变量 env save 保存环境变量
[envconf]语法:envconf envconf disable envconf 参数: 环境变量在 Flash 中的存储位置,起始为 0 环境变量大小,不能小于 0x100 字节说明:启用或禁用环境变量 envconf disable 禁用环境变量功能 指定 和 则启用环境变量注意:部分型号的 Breed 使用固定的环境变量设置,因此此命令不可用
[exit]语法:exit说明:退出 telnet 模式
[flash]语法:flash list flash [bank ] info flash [bank ] dump flash [bank ] read flash [bank ] erase flash [bank ] write 参数: - Flash bank 号 - Flash 地址 - 读取/擦除/写入数据大小 - 要写入 Flash 的数据内存地址 - 要存放读取的 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 gpio set gpio dir set gpio led set
[help]语法:help说明:列出所有可用的命令
[mem]语法:mem dump [keep] [size] mem crc32 mem read [byte|short|long] mem write [byte|short|long] mem write str mem copy mem fill mem compare 参数:[keep] - 保持原始字节序 - 起始地址 [size] - 显示/计算的数据大小 [byte] [short] [long] - 指定操作数大小,分别为 1字节、2字节、4字节 - 要写入的值 - 要写入的字符串,支持 C 语言类型的编码说明:mem dump 显示内存数据,可指定要显示的字节数,keep 表示保存原始字节序,否则输出时将转换为 CPU 字节序。 mem crc32 计算内存数据的 CRC32 校验 mem read 读取内存某个地址的数值 mem write 修改内存某个地址的数值 mem write str 将字符串写入某个内存地址 mem copy 复制内存块 mem fill 填充内存块 mem compare 比较内存块
[mdio]语法:mdio list mdio dump mdio read mdio write 参数: - 设备名 - PHY 号 - 寄存器 - 数值说明:mdio list 列出网络接口设备 mdio dump 转储指定接口的 MII 寄存器 (0 ~ 31) mdio read 读取指定接口的 MII 寄存器 mdio write 修改指定接口的 MII 寄存器
[net]语法:net [start|stop]说明:net start 启动网络服务 net stop 停止网络服务,并关闭所有网络连接
[netstat]语法:netstat说明:显示当前活动的网络连接
[reset]语法:reset说明:重启路由
[setbrg]语法:setbrg 参数: - 波特率作用:设置 Breed 串口输出的波特率,一直生效
[spi]语法:spi list spi [dev ] [ [ …]]参数: - SPI 设备名 - 一个操作操作类型: start 开始一次 SPI 传输,即拉低 CS 电平 stop 结束 SPI 传输,即拉高 CS 电平 read 读取数据到内存 read display 读取数据并直接显示为十六进制格式 write 将内存地址中的数据写入 write str 将 字符串写入 speed 设置 SPI 总线频率。默认单位为 Hz,可以增加后缀k/m表示KHz/MHz说明:spi list 列出所有 SPI 设备 spi 命令后面可以跟多个操作,如: spi start write “\x9f” read display 3 stop
[sysinfo]语法:sysinfo说明:显示系统信息
[thread]语法:thread说明:列出所有线程信息
[wget]语法:wget [addr] 参数:[addr] - 要存放数据的内存地址,可忽略 - 要请求文件数据的 HTTP 链接说明:通过 HTTP 协议加载文件到内存。URL 里只能使用 IP 地址。
常见问题及回答 Q&AQ: 开源吗?A: 不开源。
Q: 已经刷了 Breed,如果用路由自带的固件升级是否会覆盖掉 Breed?A: 多半会,所以刷了 Breed 之后都建议只在 Breed 里面更新固件。
Q: 什么时候做 360 C301 支持?A: 现在不做,因为不能很好地支持以前不死 U-Boot 的功能。
Q: 做 BCM 支持么?A: 不做,因为没有任何资料。
Q: 路由换了 32M 的闪存,固件无法软重启A: 这是因为 32M 没有一个统一的标准,所以 CPU 本身支持得并不好,需要依靠固件来处理,如果固件处理不好,就会出现这种问题。这是固件造成的。
Q: 能不能自定义复位键?A: 不能。
Q: telnet 到 Breed,打一个字符,显示两个字符A: 正常现象,因为 telnet 这块没有很好地兼容 linux。
Q: Breed 里面能否改 WAN 口位置?A: 不能。即使改了,固件启动后就会变回去。
Q: 启动 BreedEnter 出现 “无法定位程序输入点 XXXX 于动态链接库 XXXX.dll 上” 的错误A: 请安装 WinPcap 4.1.3/或者 Npcap 的 WinPcap 兼容模式。
Q: MT7620 的 Breed 是否支持外置 PA?A: 支不支持外置 PA 那是固件的事。Breed 只保证能够在有外置 PA 的路由上正常使用。
Q: 从 U-Boot 刷 Breed 后没有无线A: 请去 Breed 里修改 MAC 地址。
Q: 能支持 VxWorks 固件吗?A: 不支持任何非 Linux 内核的固件,包括小于2MB 的固件。
Q: 可以自定义 Breed 的 IP 地址吗?A: 可以,Breed 从 1.1 版开始支持环境变量。具体操作方法请参阅 Breed 更新贴。
Q: 为什么给 AR 的路由换了双 128M 内存,不能识别出 256M 内存?A: 太贪心,AR 的 CPU 不支持这种组合。自己换回去吧。
Q: 可以用编程器将 Breed 刷入空白闪存吗?A: 当然可以。
Q: Ping Breed 的 TTL 值是多少?A: 这个值是不固定的,依据执行 Ping 命令的机器的不同而定。请不要依据 TTL 值来判断是否是处于 Breed 模式。
Q: 如何升级 Breed / 更换为其他的 Bootloader (如原厂 U-Boot)?A: Breed 固件更新页面选择 Bootloader 项刷入即可。
Q: Breed 会阻止刷入其它的 Bootloader 吗?A: 不会,Breed 是开放的 Bootloader,不会增加任何使用上的限制。
BREED官方