针对其他AR71xx:解锁U-Boot分区,添加FullFlash分区

OpenWrt 杨博, 卫 597次浏览 0个评论

       手上有一个D-Link DIR-505,这可是个神器,体积小巧,Atheros AR1311 (similar to AR9331),8M Flash和64MDDR2 RAM,直插交流电,而且体积小巧,不用硬改就可以直刷OP,某宝二手四五十块一个。

dir-505-mobile-router2

 

 

 

 

 

    尤其当我知道这家伙还出厂自带不死U-Boot的时候,真的兴奋了一下。但是后来真的给这个自带的不死U-Boot害惨了!

捅菊花后通电,指示灯变红之后便可松开,有线连接电脑,手动设IP为192.168.0.2,然后访问192.168.0.1进入WEB刷机页面

Screen_shot_2011-12-28_at_103709_AM

 

       上传OP的factory固件,然后自己刷机,但是进度条走到100%没有自己重启,没太在意,拔掉插头手动重启一下,发现依然是自带的固件,OP没有刷进去!搞了半天不知道怎么回事,Google一下才知道D-Link的这个U-Boot是挑浏览器的!兼容性非常差。

经我测试,确定不兼容的有:Firefox,Chrome,Opera,MS Edge,IE11,IE7和Linux下像Midori这样的小众浏览器

                 不确定兼容:IE6,IE9

最后终于在Win7下用IE8成功刷入(身边只有Win10的小伙伴我也帮不了啦),注意到如果进度条走完路由器还没有自动重启那么就不要等了,肯定是没有刷进去!

        为了防止变砖,出厂的U-Boot肯定不能满足我们的需求了,肯定要刷入第三方不死U-boot了,找到可以用于DIR-505的u-boot_mod有兴趣的自己可以试试交叉编译,图省事的直接下载release作者在release中提供了已经解锁U-Boot的固件供我们使用,但是我们的目标是自己动手,编译出解锁U-Boot的固件。前面写过一篇针对TP路由:修改固件大小,解锁U-Boot分区,添加FullFlash分区,大家肯定猜到这肯定对DIR-505不管用,不然也不会有这篇帖子啦。

问了大神之后,终于得到了解决方案原来关键在依然在./target/linux/ar71xx/image/Makefile里面,搜索关键字’505’,找到DIR-505所属的这个cameoap121_8m,是Model?

Screenshot05

再搜索ap121,终于发现了端倪

Screenshot41
找到

cameo_ap121_mtdlayout_8M=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,64k(mac)ro,64k(nvram)ro,256k(language)ro,7680k@0x80000(firmware)

这一行,去掉64k(u-boot)ro中的ro然后重新编译就可以解锁U-Boot了(图中已经改过)。最后可以在最后顺便添加FullFlash分区,此行结尾添加,8192k@0X00000(fullflash)

最后修改完如图所示Screenshot26

到此大功告成啦。

编译完刷机,查看效果

/ $ cat /proc/mtd

dev:    size   erasesize  name
mtd0: 00010000 00010000 "u-boot"
mtd1: 00010000 00010000 "art"
mtd2: 00010000 00010000 "mac"
mtd3: 00010000 00010000 "nvram"
mtd4: 00040000 00010000 "language"
mtd5: 00100000 00010000 "kernel"
mtd6: 00680000 00010000 "rootfs"
mtd7: 00120000 00010000 "rootfs_data"
mtd8: 00780000 00010000 "firmware"
mtd9: 00819200 00010000 "fullflash"

差点忘了我们的任务是刷入第三方U-Boot,参考U-Boot一般刷入教程,上面很详细,我就不啰嗦了。

 关于交叉编译
其实作者最后更新release的时间还是2014年,但是u-boot_mod这个项目一直在更新,在这之间作者加入了很多特性,修复了不少bug,想要追随最新版的朋友还是自己编译比较好,原作者给出了交叉编译的方法,英文不好的我也找到了中文教程(文中所需的OpenWrt Toolchain for AR71xx MIPS在此),唯一不同的是将最后编译703N的命令换成DIR-505的,即make dlink_dir505。我不是专门搞开发的,对于交叉编译也是一知半解,所以没办法详细说明,但是我也用截至发帖时最新的源码,照葫芦画瓢编出一个针对DIR-505的U-Boot_mod,供大家使用。uboot_mod_for_d-link_dir-505,最后附上U-Boot一般刷入教程

祝大家刷机愉快。


本文版权:霜之哀伤 转载请注明针对其他AR71xx:解锁U-Boot分区,添加FullFlash分区
喜欢 (2)or分享 (0)
杨博, 卫
关于作者:
喜欢折腾路由器,懂一点Linux,最近正在学习树莓派...
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址