Breed不死鸟
Breed介绍
Breed 是国内个人hackpascal 开发的闭源 Bootloader,也被称为“不死鸟”
因为有些官方升级固件自带 bootloader,如果从官方固件升级,会导致现有 bootloader 被覆盖。而当 Breed 更新固件时,它会自动删除固件附带的引导加载程序,因此可以防止 Breed 被覆盖
在线网站
进入 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
参数:
说明:启动固件。
boot mem 从内存地址启动固件;
boot flash 从 Flash 启动固件,bank 号可选,默认为 0;
boot linux 将
boot raw 禁用中断,并从
boot breed 将
[btntst]
语法:btntst
btntst enable
btntst disable
btntst restore
参数:
说明:测试 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
参数:
说明:启用或禁用环境变量
envconf disable 禁用环境变量功能
指定
注意:部分型号的 Breed 使用固定的环境变量设置,因此此命令不可用
[exit]
语法:exit
说明:退出 telnet 模式
[flash]
语法:flash list
flash [bank
flash [bank
flash [bank
flash [bank
flash [bank
参数:
说明: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
参数: [status] - 列出所有 GPIO 及其状态
- 高/低电平
说明: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]
mem crc32
mem read [byte|short|long]
mem write [byte|short|long]
mem write str
mem copy
mem fill
mem compare
参数:[keep] - 保持原始字节序
[byte] [short] [long] - 指定操作数大小,分别为 1字节、2字节、4字节
说明:mem dump 显示内存数据,可指定要显示的字节数,keep 表示保存原始字节序,否则输出时将转换为 CPU 字节序。
mem crc32 计算内存数据的 CRC32 校验
mem read 读取内存某个地址的数值
mem write 修改内存某个地址的数值
mem write str 将字符串写入某个内存地址
mem copy 复制内存块
mem fill 填充内存块
mem compare 比较内存块
[mdio]
语法:mdio list
mdio
mdio
mdio
参数:
说明: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
参数:
操作类型:
start 开始一次 SPI 传输,即拉低 CS 电平
stop 结束 SPI 传输,即拉高 CS 电平
read
read display
write
write str
speed
说明:spi list 列出所有 SPI 设备
spi 命令后面可以跟多个操作,如:
spi start write “\x9f” read display 3 stop
[sysinfo]
语法:sysinfo
说明:显示系统信息
[thread]
语法:thread
说明:列出所有线程信息
[wget]
语法:wget [addr]
参数:[addr] - 要存放数据的内存地址,可忽略
说明:通过 HTTP 协议加载文件到内存。URL 里只能使用 IP 地址。
常见问题及回答 Q&A
Q: 开源吗?
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,不会增加任何使用上的限制。
