本帖最后由 yumeimm 于 2021-5-22 20:08 编辑
2020-12更新:
-- 增加Openwrt v18.06.9固件
2020-09-30更新:
-- 添加Openwrt v19.07.4固件
2020-02-29更新:
-- 添加Openwrt v19.07.3固件
--添加Openwrt v18.06.8及v19.07.2固件
2020-02-02更新:
-- 添加Openwrt-v18.06固件。
-- 添加Openwrt-v19.07.1固件。
蓝奏云链接: https://www.lanzous.com/b0evdvqab 密码:6306
https://wwa.lanzoui.com/b0evdvqab 密码:6306
1 概述QCA9558+AR8236的方案,有几款450M无线路由采用。常见的有:MW450R V1 =FW450R V1 = 880N V1= 881N V1 = 941N V7 = 2041N V2 现在的这些路由都不值钱,flash存储小,最高也就百兆性能,但是原机带的内存能达到32M/64M,花个几十元买来折腾一下倒是不错的选择。
好在目前最新的OpenWrt主分支master提供了QCA9558支持,加上原先大神hackpascal写的驱动文件,以及其它大神的开源代码。于是参考OpenWrt官方文档,实现在最新的master分支上对这几个路由的支持。
2 修改
参考如下两位作者的修改: 修改分为下述几步:1) make menuconfig菜单项的添加,2) 板级定义 和源代码编译 3) 内核补丁(不需要) 我们打算添加为”Devices with small flash”类别。 下述所有修改都是在目录“target\linux\ar71xx”下面进行。 首先检出OpenWrt代码:
2.1 编译菜单添加文件:target\linux\ar71xx\image\tiny-tp-link.mk 编译菜单项添加: define Device/tl-wr2041n-v2 $(Device/tplink-8mlzma) DEVICE_TITLE := TP-LINK TL-WR2041N v2 BOARDNAME := TL-WR2041N-v2 DEVICE_PROFILE := TLWR2041 TPLINK_HWID := 0x20410002 endef TARGET_DEVICES += tl-wr2041n-v2
define Device/tl-wr941n-v7 $(Device/tplink-8mlzma) DEVICE_TITLE := TP-LINK TL-WR941N/ND v7 BOARDNAME := TL-WR941N-v7 DEVICE_PROFILE := TLWR941 TPLINK_HWID := 0x09410007 endef TARGET_DEVICES += tl-wr941n-v7
target\linux\ar71xx\tiny\config-default 添加: CONFIG_ATH79_MACH_TL_WR941N_V7=y CONFIG_SOC_QCA955X=y
2.2 板级文件定义修改target\linux\ar71xx\base-files\etc\board.d\01_leds //(led definition) tl-wr941n-v7|\ tl-wr2041n-v2|\ tl-wr1041n-v2) ucidef_set_led_wlan"wlan" "WLAN" "tp-link:green:wlan""phy0tpt" ;;
target\linux\ar71xx\base-files\etc\board.d\02_network //(network interface sequence) tl-wr941n-v7|\ tl-wr2041n-v2|\ tl-wr1041n-v2) ucidef_add_switch"switch0" \ "0@eth0""2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4""1:wan"
target\linux\ar71xx\base-files\etc\diag.sh //(led status) tl-wr2041n-v2|\ tl-wr941n-v7|\
target\linux\ar71xx\base-files\lib\upgrade\platform.sh //(magic_ver=”0100”) tl-wr2041n-v2|\ tl-wr941n-v7|\
target\linux\ar71xx\base-files\lib\ar71xx.sh //(name) *"TL-WR2041Nv2") name="tl-wr2041n-v2" ;; *"TL-WR941Nv7") name="tl-wr941n-v7" ;; 2.3 编译及源代码target\linux\ar71xx\files\arch\mips\ath79\Kconfig.openwrt config ATH79_MACH_TL_WR941N_V7 bool"TP-LINK TL-WR941N v7/TL-WR2041N v2/TL-WR880N v1/TL-WR881N v1support" selectSOC_QCA955X selectATH79_DEV_ETH selectATH79_DEV_GPIO_BUTTONS selectATH79_DEV_LEDS_GPIO selectATH79_DEV_M25P80 selectATH79_DEV_WMAC
目录:target\linux\ar71xx\files\arch\mips\ath79\ 添加新文件:mach-tl-wr941n-v7.c target\linux\ar71xx\files\arch\mips\ath79\machtypes.h ATH79_MACH_TL_WR2041N_V2, /* TP-LINK TL-WR2041N v2 */ ATH79_MACH_TL_WR941N_V7, /* TP-LINK TL-WR941N v7 */
target\linux\ar71xx\files\arch\mips\ath79\Makefile obj-$(CONFIG_ATH79_MACH_TL_WR941N_V7) += mach-tl-wr941n-v7.o
2.4 内核修改内核文件4.14:target\linux\ar71xx\config-4.14
# CONFIG_ATH79_MACH_TL_WR2041N_V2 is notset # CONFIG_ATH79_MACH_TL_WR941N_V7 is not set
内核补丁目录:target\linux\ar71xx\patches-4.14 不需要修改。
3. 刷Openwrt简要概述
1) 在TP-LINK原厂固件的WEB页面,“升级”处,刷入本文提供的解锁bootloader固件(功能不全)。(openwrt-wr2041n-v2-unlock.bin)
2) 刷机后,重启路由器,就进入了Openwrt系统。在web页面的升级固件处备份"art分区" 成为art文件(art.bin)。
3) 此时, ssh进入路由, 用"mtd write breed_xxx.bin u-boot" 命令刷入不死breed。
4) 在Openwrt的web页面,或者进入breed页面, 刷入完整功能的Openwrt固件:(openwrt-tl-wr2041n-v2-sysupgrade-xxx.bin)。
5) 可选, 进入breed, 设置路由器的MAC地址等,以及可选刷入art.bin等。
4 结论和FAQ1) 刷机推荐在breed下面进行。同时要注意备份好原机的无线art文件,或者用上面提供的也行。 2) 更换flash芯片时,可以找修家电/修电脑的。 3) 编程器固件的制作
编程器固件是用编程器进行刷机的,不同于在线升级固件。 以8M为例: a) 编程器固件的存储空间结构 u-boot(128K/0x20000), < -- >firmware空间< -- > art无线配置文件(余下的64K/0x10000)
b) 用WinHex-"文件"菜单-"新建" 新建一个空白文件, 假设文件名为flash_all.bin, 根据固件大小选择8M。 Ctrl+a全部选择空白文件内容, 然后 "编辑"-"填充选块", 用 "FF"填满整个文件内容。 c) WinHex打开breed.bin文件, Ctrl+A全部选定,然后在flash_all.bin开头处,用粘贴板数据-写入(覆盖),覆盖写入整个breed文件。 c) WinHex打开openwrt_xxx_wr2041nv2_xx_sysupdate.bin文件,全选。从flash_all.bin文件开头转到偏移 0x20000处,(十六进制偏移), 用粘贴板数据-写入(覆盖),写入固件内容。 d) WinHex打开保存的art.bin无线配置文件-全选,从flash_all.bin末尾往前偏移0x10000处(或者文件开头偏移0x7F0000处-8M情形), 用粘贴板数据-写入(覆盖),写入无线art内容。 得到的编程器固件可以直接用编程器刷入flash芯片。
最后:本文的所有固件等:
链接: https://pan.baidu.com/s/1NOuh8mtPjH-9Jg1FJMYksg 提取码: g5ev
TP-LINK_2041n V1固件看这里: https://www.right.com.cn/forum/thread-484835-1-1.html
固件功能说明:
1) openwrt-tl-wr2041n-xx-sysupgrade-4M-v18.xxx.bin
适用于原机4M-flash存储的固件。包含基本功能(ssh,logd,opkg等)和upnp,WEB界面。
2) openwrt-tl-wr2041n-xx-sysupgrade-lite-4M-v18.xxx.bin
适用于原机4M-flash存储的固件,精简掉logd, opkg功能,同时加入 upnp,KMS服务器(vlmcsd), WOL。
3) openwrt-tl-wr2041n-xx-sysupgrade-8M-v18.xxx.bin
适用于硬改flash容量为8M及以上(含16M)的情况。
功能包含: dnsmasq-full, IPv6-NAT, upnp, 负载均衡, KMS服务器, WOL网络唤醒等。
补充内容 (2020-3-25 18:30):
已经添加Openwrt-trojan.ipk。
|