本帖最后由 yumeimm 于 2020-2-8 11:29 编辑
(免拆机刷Openwrt, 可以参考这里: https://www.right.com.cn/forum/thread-354267-1-1.html)
最近手上拿到了一个 TL-WR2041n v2.2的路由,反正不值钱,不如折腾一下。在论坛上参考了前辈们的经验,因此有这篇折腾记。
1. 硬件概要
采用Atheros方案,这几款路由硬件一样,固件可以通刷:880N V1= 881N V1 = 941N V7 = 2041N V2
CPU: 这款路由的主处理器为802.11n标准的QCA9558处理器,这款芯片支持2.4GHz和5GHz两个频段,最高传输速度为750Mbps。但是WR2041N只支持2.4G信号的传输。 内存:M13S5121632A -5T 64MB 闪存:SPANSION 4MB 无线:AR8236
2. 硬改flash存储由于原机的FLASH存储容量太小,要刷openwrt,还是得扩充一下容量。 某宝上搜”W25Q128”的16MB容量SPI存储芯片8个脚的,10元左右可以买好几个,然后自己某宝上买个CH341A土豪金编程器。 然后按照下述操作: 1) 下载不死breed, 然后用编程器刷入: 到上述地址下载好breed文件:” breed-qca9558-wr2041nv2.bin”, 按照上图将flash芯片用夹子夹紧到编程器上,(注意芯片引脚对应关系,正确无误的话,编程器软件会识别出芯片类型) 然后运行编程器软件,刷入上述breed文件。或者刷入带breed的别人编译好的openwrt固件,即可完成。
2) 更换新flash芯片到路由器 会手工焊接的,自己动手。否则,找个家电/电脑维修点,花个10元左右,请他们给更换好即可。
3) 备份原机的art无线配置文件 将旧的flash芯片,用编程器读出来并写入到文件中,这里假设文件名为 flash_all.bin, 注意其大小为4MB。 用WinHex(或者其它支持的16进制文件编辑器) 打开它,从文件偏移0x3F0000-到文件末尾(0x3FFFFF) 的内容另存为art.bin(大小为64KB), 这个就是无线配置的art文件。
3. 源代码编译经过上述的硬改,并且已经刷入了不死breed之后,我们就可以随便刷了。
含有wr941n v7的代码:
以coolsnowwolf的代码为例,进行编译: 虚拟机安装 ubuntu-18.04.1 LTS环境为例(编译的前期准备,请查阅openwrt官方网站) $ sudo apt-get update $ sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev subversion mercurial gcc-multilib flex gettext unzip $ sudo apt-get install flex quilt libssl-dev xsltproc libxml-parser-perl bzr ecj cvs unzip //(Ubuntu 12.04) 下载源代码: $ cd lede $ ./scripts/feeds update -a $ ./scripts/feeds install -a
$make menuconfig 然后选择:Target System->AR7xxx/AR9xxx,Subtarget->Devices with small flash, Target Profile->TP-LINK TL-WR2041Nv2。 其它的根据情况自选。
修改固件大小为16M. 打开文件: $ vim target/linux/ar71xx/image/tiny-tp-link.mk
define Device/tl-wr2041n-v2 $(Device/tplink-8mlzma) //改为16mlzma DEVICE_TITLE := TP-LINK TL-WR2041N v2 BOARDNAME := TL-WR941N-v7 DEVICE_PROFILE := TLWR2041 TPLINK_HWID := 0x20410002 endef TARGET_DEVICES += tl-wr2041n-v2
$make (或者make –j 4) 进行编译。
编译成功后,在目录“bin/targets/ar71xx/tiny/”下面就得到了我们需要的文件: “openwrt-ar71xx-tiny-tl-wr2041n-v2-squashfs-factory.bin”,(16M) “openwrt-ar71xx-tiny-tl-wr2041n-v2-squashfs-sysupgrade.bin”.(8M)
4. 刷入新的固件路由器断电后,长按住reset键不放,插入电源,等几秒钟,红灯闪烁后, 1) 进入breed界面,在”固件更新”里面升级固件: “openwrt-ar71xx-tiny-tl-wr2041n-v2-squashfs-sysupgrade.bin”.
2) 进入breed界面,然后在”固件更新”里面升级ART (从前述步骤的flash_all.bin中提取的art.bin) 3) 进入breed界面,在”TP-LINK设置”中,输入路由器背面的PIN码和MAC地址
5. FAQ1) 刷机时请在breed界面下面进行,这样出错也不会变砖。 2) 源代码中的固件大小为8M设置的,不用改16M也可以。 3) 原固件的art文件必须要备份,以便更换硬件并刷入openwrt后,再重新输入,否则无线可能不能工作。 4) 关于硬改,其实找个修家电/修电脑的,更换flash芯片即可。但是编程器刷固件需要自己动手。 5) 如果想要在OpenWrt官方的源代码上修改以支持2041n-v2,可以参考下面这两个git commit: 以及论坛上的帖子等。
6. 附本文所用的和生成的软件
Openwrt github: https://github.com/siwind/openwrt
可以参考另外一篇帖子:
【OpenWr最新编译】master分支修改源代码支持wr941n-v7/2041n-v2:
https://www.right.com.cn/forum/thread-354267-1-1.html
补充内容 (2019-6-3 19:50):
原厂固件升级OpenWrt, 参看:
TL-WR2041n v1.0硬改-解锁-刷入最新OpenWrt(内核4.14)记: https://www.right.com.cn/forum/thread-484835-1-1.html |