针对TP路由:修改固件大小,解锁U-Boot分区,添加FullFlash分区

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

TL-WR703N出厂只有4M Flash和32M RAM,想要玩转OP根本力不从心,于是我就自己换了8M Flash和64M RAM。

板子

一、修改固件大小

OpenWrt在编译的时候会根据每个机型的Profile来生成固件,如果生成的固件集成的软件太多而大于4M时就会报错,你会发现根本不能生成固件。

具体症状见我的上一贴  开始编译着手编译OpenWrt啦

编译通过,但是没有在./openwrt/bin/找到固件,往上翻编译输出提示,发现类似

[mktplinkfw] kernel length aligned to 914864
[mktplinkfw] *** error: images are too big
make[3]: [install] Error 255 (ignored)

下面教大家如何如何修改TP系列路由器默认固件的大小

无标题

其实很简单,找到target/linux/ar71xx/image/Makefile,搜索你想要修改的机型,比如703N,找到703N的相关参数
然后将其中的tplink-4mlzma改为tplink-8mlzma就行,改完之后就是

define Device/tl-wr703n-v1
    $(Device/tplink-8mlzma)
    BOARDNAME := TL-WR703N
    DEVICE_PROFILE := TLWR703
    TPLINK_HWID := 0x07030101
    CONSOLE := ttyATH0,115200
endef

保存退出之后你就可以编译出用于TL-WR703N的8M固件了。

 

注:网上有的过时的教程说还需要修改 tools/firmware-utils/src/mktplinkfw.c经我测试,最新的源码里面这个文件已经没有关于703N和其他路由器的参数,也就不需要修改了。

二、解锁U-Boot分区

        马有失蹄,人有失足,没有不死U-Boot怎么敢放心的耍OP?这里就要说到U-Boot,U-Boot就是嵌入式Linux系统的引导,相当于电脑的BIOS。传统的U-Boot只负责引导固件启动,一旦固件不能启动,那么整个路由器就砖了,有TTL的还省事的,没有的就只能上编程器了。但是有了不死U-Boot,其实就是带Web刷机界面的U-Boot,麻麻再也不用担心我搞机成砖啦,彻底不用拆机就可以救砖。想了解的自己Google,推荐恩山hackpascal大神的Breed,以及刷入U-Boot教程,我这里不讨论如何使用U-Boot,主要是刷入U-boot会遇到

could not open mtd device :u-boot ,can't open device for writing

这是由于OpenWrt默认情况下是锁死U-Boot的,除非在编译固件的时候解锁。

找到/target/linux/ar71xx/files/drivers/mtd/tplinkpart.c,搜索u-boot,找到

	parts[0].name = "u-boot";
	parts[0].offset = 0;
	parts[0].size = offset;
        parts[0].mask_flags = MTD_WRITEABLE;

然后删掉parts[0].mask_flags = MTD_WRITEABLE;这一行重新编译就行啦。

温馨提示:TP系列刷完Breed一定要改MAC地址为一个有效值,不然无线会挂!

三、添加FullFlash分区

        现在砖是可以救了,但是救回来数据全没了,又要重头开始配置,想想头都大阿,养成勤备份的好习惯才是坠吼滴!添加Fulllash分区,这样就可以用dd命令备份整个编程器固件,再也不存在art丢失这样蛋疼的事情发生了。
一样是/target/linux/ar71xx/files/drivers/mtd/tplinkpart.c添加以下代码

    parts[5].name = "fullflash";
    parts[5].offset = 0;
    parts[5].size = master->size;

修改完之后如图所示
无标题

 

 

 

 

 

 

 

 

 

 

 

 

 

重新编译并刷入之后就可以看见FullFlash分区啦。

cat /proc/mtd 查看分区

效果如图

无标题

 

 

 

 

然后就可以简单地通过dd if=/dev/mtd6 of=/tmp/fullflash.bin备份编程器固件了!


喜欢 (3)or分享 (0)
杨博, 卫
关于作者:
喜欢折腾路由器,懂一点Linux,最近正在学习树莓派...
发表我的评论
取消评论

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

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

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