说明
1. 改造 TP-LINK WR886N 3.0 (芯片 TP9343)
2. OpenWRT 版本:LEDE 17
3. 环境:Ubuntu 16.04 x64
第一步:修改硬件
1. 换 RAM 为 64M
2. 换 flash 为 16M
注:本教程主要说明制作镜像部分,具体修改硬件步骤请参考:链接
第二步:获取源码
使用以下命令克隆源码:
git clone https://github.com/lede-project/source.git
我当时使用的版本:
git reset --hard 97eb8ab
第三步:target profile 添加新路由器
修改文件:/target/linux/ar71xx/image/tp-link.mk
添加以下内容:
define Device/tl-wr886n-v3
$(Device/tplink-16mlzma)
DEVICE_TITLE := TP-LINK TL-WR886N v3
BOARDNAME := TL-WR886N-v3
TPLINK_HWID := 0x88600003
endef
TARGET_DEVICES += tl-wr886n-v3
删除 /tmp 目录,使用以下命令配置:
make menuconfig
在 Target System 里选择 Atheros AR7xxx/AR9xxx,然后在 Target Profile 里找到 TP-LINK TL-WR886 v3 并选中。
此时,编译一下,看看有没有错误。
make
make 成功后,/bin/targets/ar71xx/generic/ 目录下面会生成 WR886N 的 factory.bin,但是这时候下载到 flash 还不能启动,因为内核并没有支持 WR886N,继续下面的步骤。
第四步:kernel arch machine 新增路由器
新建文件:/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.4.74/arch/mips/ath79/mach-tl-wr886n-v3.c
文件内容:
修改文件:/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.4.74/arch/mips/ath79/Kconfig
添加以下内容:
config ATH79_MACH_TL_WR886N_V3
bool "Tplink WR886N V3 support"
select SOC_TP9343
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
select ATH79_DEV_WMAC
help
Say 'Y' here if you want your kernel to support the
Atheros AP121 reference board.
修改文件:/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.4.74/arch/mips/ath79/machtypes.h
添加以下内容:
ATH79_MACH_TL_WR886N,
修改文件:/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.4.74/arch/mips/ath79/Makefile
添加以下内容:
obj-$(CONFIG_ATH79_MACH_TL_WR886N_V3) += mach-tl-wr886n-v3.o
使用以下命令配置:
make kernel_menuconfig
-> Machine selection
-> Atheros AR71XX/AR724X/AR913X machine selection
Tplink WR886N V3 support
此时,编译一次看看有没有问题:
make
make 成功后,如果直接固件下载到 flash,已经能启动了,但会出现网络问题,继续看第五步。
第五步:network 配置问题(ar71xx系列)
修改文件:/target/linux/ar71xx/base-files/etc/board.d/02_network
添加以下内容:
tl-wr886-v3)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
ucidef_add_switch "switch0" "1" "1"
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4"
;;
修改文件:/target/linux/ar71xx/base-files/lib/ar71xx.sh
添加以下内容:
*"TL-WR886N v3"*)
name="tl-wr886-v3"
;;
此时,再编译一次看看有没有问题:
make
make 成功后,如果下载固件到 flash,网络已经没问题了,但是会发现 LED 灯工作得不正常,继续看第六步。
第六步:LED 灯问题
修改文件:/target/linux/ar71xx/base-files/etc/board.d/01_leds
添加以下内容:
tl-wr886-v3)
ucidef_set_led_netdev "wan" "WAN" "tl_wr886n:green:wan1" "eth0"
ucidef_set_led_switch "lan0" "LAN0" "tl_wr886n:white:main" "switch0" "0x01"
ucidef_set_led_switch "lan1" "LAN1" "tl_wr886n:green:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "tl_wr886n:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tl_wr886n:green:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "tl_wr886n:green:lan4" "switch0" "0x02"
;;
这时候已经大功告成了,最后编译一次:
make
将固件下载到 flash 一切正常!