设为首页收藏本站

恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
小博无线
查看: 154|回复: 1

【OpenWr最新】内核4.14-master分支修改源代码支持wr941n-v7/2041n-v2

[复制链接]
发表于 2018-11-10 16:42 | 显示全部楼层 |阅读模式
本帖最后由 yumeimm 于 2018-11-10 22:00 编辑

1    概述
QCA9558+AR8236的方案,有几款450M无线路由采用。常见的有:MW450R V1 =FW450R V1 = 880N V1= 881N V1 = 941N V7 = 2041N V2
现在的这些路由都不值钱,flash存储小,最高也就百兆性能,但是原机带的内存能达到32M/64M,花个几十元买来折腾一下倒是不错的选择。

硬件方案.jpg

好在目前最新的OpenWrt主分支master提供了QCA9558支持,加上原先大神hackpascal写的驱动文件,以及大神Lean的开源代码。于是参考OpenWrt官方文档,实现在最新的master分支上对这几个路由的支持。

注意,由于OpenWrt 18.06, 以及LEDE均采用4.9/4.4内核,这些稍旧点的内核改动比较大,因此本文的修改不基于这些分支进行,而是采用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    结论和FAQ
1) 刷机推荐在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芯片。




4) 所有的修改结果,在github上:https://github.com/siwind/openwrt.git  (添加了TL-WR941N v7/2041N v2/880N v1/881N v1的支持,固件请下载源代码后自行编译)
附上编译好的TL-WR2041N v2固件(此固件仅仅含luci,和K-M-S服务器):链接: https://pan.baidu.com/s/10gtsEPx5ZDwqsZF_OCZWCg 提取码: 43kr

OpenWrt_master_1.png
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-11-10 18:19 | 显示全部楼层
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛 ( 苏ICP备05084872号-1 )  

GMT+8, 2018-11-15 02:29

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表