首页 > 拆机刷机 > 正文

关于 Breed 刷新版 UBNT 固件的一点说明
2015-09-22 15:49:17   来源:hackpascal   评论:0 点击:

不知从什么时候起,UBNT 开始在其固件中加入了设置 Flash 写保护的功能,此写保护在 Flash 断电后依然存在,可通过向 Flash 发送清零状态寄存器的指令来解除写保护,或者通过编程器来解除写保护。楼主在开
不知从什么时候起,UBNT 开始在其固件中加入了设置 Flash 写保护的功能,此写保护在 Flash 断电后依然存在,可通过向 Flash 发送清零状态寄存器的指令来解除写保护,或者通过编程器来解除写保护。

楼主在开发 Breed 之初并未预料到会有固件会进行这样的设置,但 UBNT 确实这么做了,很恶心。

在 UBNT 固件设置了 Flash 写保护后, Bootloader 必须在每次启动固件前解除 Flash 写保护,否则固件无法正常启动。

Breed 很快跟进,加入了清除 Flash 写保护的功能,因此能够启动最新的 UBNT 固件。

以下为重点:

如果是老版的 Breed 遇到了设置写保护的固件,那么从 Breed 里面将无法进行任何更新操作,包括升级 Breed,唯一的办法就是使用替换了 U-Boot 的 UBNT 升级固件来更新最新版的 Breed。

但是。。r766 之前的 Breed 有个小缺陷,即不会检查 UBNT 所使用的 u-boot-env (U-Boot 环境变量) 的有效性。

这会导致一个问题,即如果 Flash 中没有有效的 u-boot-env (例如从空白的 Flash 刷 UBNT、用编程器刷 UBNT 固件工具生成的编程器固件、先刷 TP-LINK 固件再刷 UBNT 固件),那么从 UBNT Web 升级固件将会失败。失败的表现是 UBNT 升级页面出现 -117 的错误码。

如果存在这个问题,恰好又使用了老版 Breed 刷入了新版带写保护的固件,那么。。很不幸,只有编程器能救你的路由;否则可以通过刷替换 Breed 的 UBNT 升级固件来解决此问题。

最新的 Breed r766 修复了 u-boot-env 问题,每次更新时都会自动处理此部分;UBNT 固件工具也已更新,会在生成编程器固件时自动加入 u-boot-env 数据。

相关热词搜索:

上一篇:Breed 简单使用说明及常见问题解答
下一篇:Atheros SDK研究与使用(一)

分享到: 收藏