关于Breed刷新版UBNT固件的一点说明

更新时间:2023-10-08 12:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

关于Breed刷新版UBNT固件的一点说明 本帖最后由hackpascal于2015-9-2501:45编辑

不知从什么时候起,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固件),那么从UBNTWeb升级固件将会失败。失败的表现是UBNT升级页面出现-117的错误码。

如果存在这个问题,恰好又使用了老版Breed刷入了新版带写保护的固件,那么。。请看下文的终极解决办法;否则可以通过刷替换Breed的UBNT升级固件来解决此问题。

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

========================================华丽的分割线========================================

终极解决办法:

如果升级固件替换breed无效,则使用此方法

原理:使用内存启动版breed来刷入最新版breed

方法:

? 根据路由是uboot还是breed,搭建tftp/http服务器

? 下载本贴附件breed-mem-ar724x.img,注意此文件绝不能刷入路由,否则变

砖,后果自负

? 通过ttl或者telnet(仅breed)进入uboot/breed

? 通过tftp(uboot)/wget(breed)命令将breed-mem-ar724x.img载入内存,记下载入的内存地址(默认是0x80000000)

? 通过bootm0x80000000(uboot)/bootmem0x80000000(breed)运行breed-mem-ar724x.img,将0x80000000改为实际的加载地址

? 内存版breed启动后,就已解除了flash写保护,此时直接访问192.168.1.1刷入最新版breed即可 说明:

? 具体的tftp/wget方法请自行搜索,本贴不再叙述

? breed-mem-ar724x.img是专门用于从内存中运行的特殊breed,不会进行CPU频率初始化以及内存初始化,不能刷入flash,否则必变砖 附件:

breed-mem-ar724x.zip(82.97KB,下载次数:252)

本文来源:https://www.bwwdw.com/article/0eyf.html

Top