|
本帖最后由 easehu 于 2019-9-11 16:05 编辑
之前看到hello_limin的帖子,“[2019-07-06] 分享 TL-WDR5600 v3.0 自编译8M固件 QCA9561+QCA9887 相同配置机器可刷”下载了他提供的固件使用没什么大问题,但是我需要添加php的功能,剩余空间无法满足安装对应功能,所以决定自己编译一个。
TL-WDR5600 v2 是 QCA9561+QCA9887 的解决方案,原生的openwrt不带这个型号,于是自己添加以下。我使用的coolsnowwolf的lede的编译源,地址https://github.com/coolsnowwolf/lede。这个需要的自己git回来。
注意:这个也不带TL-WDR5600这个型号,需要自己手动添加。
我们需要改动的文件如下:
1、./target/linux/ar71xx/base-files/lib/ar71xx.sh
到336行附近添加添加:
- "56000002")
- model="TP-Link TL-WDR5600"
- ;;
复制代码 到1295行附近添加:- *"TL-WDR5600 v2")
- name="tl-wdr5600-v2"
- ;;
复制代码
2、./target/linux/ar71xx/base-files/lib/upgrade/platform.sh
到465行附近添加:
到509行附近添加:
3、./target/linux/ar71xx/base-files/etc/diag.sh
到504行附近添加:
- tl-wdr5600-v2)
- status_led="tp-link:white:system"
- ;;
复制代码 system灯的定义
4、./target/linux/ar71xx/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
到22行附近添加:
这个步骤很重要,决定了5G的MAC地址是否正确。
5、./target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
到102行附近添加:
- tl-wdr5600-v2)
- ath10kcal_extract "art" 8192 2116
- ;;
复制代码 这里是5G的ART部分,数据不对的话5G将没有。
6、./target/linux/ar71xx/base-files/etc/board.d/02_network
到362行附近添加:
7、./target/linux/ar71xx/base-files/etc/board.d/01_leds
到899行附近添加:
- tl-wdr5600-v2)
- ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0"
- ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x02"
- ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x04"
- ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x08"
- ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x10"
- ;;
复制代码
8、./target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr5600-v2.c
这个文件我已经上传,点此处下载。
这个文件里的灯定义进行了修改,保证了wan,lan,system灯的正常显示,不再出现线未插还亮的情况。
- #define TL_WDR5600_V2_GPIO_LED_WAN 19
复制代码 这个是wan口灯的GPIO,和WDR6500的硬件有区别,WDR6500的GPIO是18。
- #define TL_WDR5600_V2_PCIE_CALDATA_OFFSET 0x2000
复制代码 这个是5G部分art数据偏移,有的WDR5600据说在0x5000处,请根据自己的修改。如果不明白就按照这个来,然后art的5G部分重新编辑一下再写入就好了。
- static struct gpio_led tl_wdr5600_v2_leds_gpio[] __initdata = {
- {
- .name = "tp-link:green:lan1",
- .gpio = TL_WDR5600_V2_GPIO_LED_LAN1,
- .active_low = 1,
- }, {
- .name = "tp-link:green:lan2",
- .gpio = TL_WDR5600_V2_GPIO_LED_LAN2,
- .active_low = 1,
- }, {
- .name = "tp-link:green:lan3",
- .gpio = TL_WDR5600_V2_GPIO_LED_LAN3,
- .active_low = 1,
- }, {
- .name = "tp-link:green:lan4",
- .gpio = TL_WDR5600_V2_GPIO_LED_LAN4,
- .active_low = 1,
- }, {
- .name = "tp-link:green:wan",
- .gpio = TL_WDR5600_V2_GPIO_LED_WAN,
- .active_low = 1,
- }, {
- .name = "tp-link:white:system",
- .gpio = TL_WDR5600_V2_GPIO_LED_SYS,
- .active_low = 1,
- },
- };
复制代码 这些灯都改成低电平触发,按照WDR6500的配置的话,wan和system的灯会有问题。
- u8 *mac = (u8 *) KSEG1ADDR(0x1fff080d);
复制代码 由于art里面已经存放了MAC,所以我们直接写死MAC地址的位置,让系统直接读取art部分的MAC,这样就不用再在breed里面写MAC了。
9、./target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
到286行附近添加:
- ATH79_MACH_TL_WDR5600_V2, /* TP-LINK TL-WDR5600 v2 */
复制代码
10、./target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
到1877行附近添加:
- config ATH79_MACH_TL_WDR5600_V2
- bool "TP-LINK TL-WDR5600 v2 board support"
- select SOC_QCA956X
- select ATH79_DEV_AP9X_PCI if PCI
- select ATH79_DEV_ETH
- select ATH79_DEV_GPIO_BUTTONS
- select ATH79_DEV_LEDS_GPIO
- select ATH79_DEV_M25P80
- select ATH79_DEV_USB #这个可以去掉,因为该版本硬件没有usb口
- select ATH79_DEV_WMAC
复制代码
11、./target/linux/ar71xx/files/arch/mips/ath79/Makefile
到233行附近添加:
- obj-$(CONFIG_ATH79_MACH_TL_WDR5600_V2) += mach-tl-wdr5600-v2.o
复制代码
12、./target/linux/ar71xx/config-4.9
到222行附近添加:
- # CONFIG_ATH79_MACH_TL_WDR5600_V2 is not set
复制代码 这个根据自己需要,可以不添加。
13、./target/linux/ar71xx/image/generic-tp-link.mk
到330
- define Device/tl-wdr5600-v2
- $(Device/tplink-8mlzma)
- DEVICE_TITLE := TP-LINK TL-WDR5600 v2
- DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca9887
- KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
- KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | uImage lzma | tplink-v1-header
- BOARDNAME := TL-WDR5600-v2
- DEVICE_PROFILE := TLWDR5600V2
- TPLINK_HWID := 0x56000002
- TPLINK_HEADER_VERSION := 2
- endef
- TARGET_DEVICES += tl-wdr5600-v2
复制代码
14、./target/linux/ar71xx/config-4.14
到222行附近添加:
- # CONFIG_ATH79_MACH_TL_WDR5600_V2 is not set
复制代码 这个根据自己需要,可以不添加。
15、./target/linux/ar71xx/generic/config-default
到162行附近添加:
- CONFIG_ATH79_MACH_TL_WDR5600_V2=y
复制代码
至此所有需要修改的内容已经添加完成,make menuconfig,这时你就应该能在硬件列表里看到对应的设备选项。然后选择你需要的组件就可以进行编译了。
还存在的问题。
我发现一个BUG,就是无线5G传输速率部分一直显示的是这样的:"传输速率: 6 Mbit/s",2.4G 部分是正常的,更换了iwinfo后还是这样,可能是驱动问题,但是不影响实际使用。
后面我找了个能正常显示的openwrt-18.06的版本和现阶段原版openwrt-18.06不能正常显示的进行了驱动替换操作,替换了firmware-x.bin(x是数字)后就能正常显示了,但是这个驱动替换到我编译的版本上还是显示异常,所以就没有继续研究,可能需要更改了驱动编译链接后重新编译才行。
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|