给TP-LINK WR866N V5 刷openwrt24.10固件

这两天对编译openwrt固件研究了一翻,有点兴趣,遂把一个古董路由器适配了一下新系统。记录一下编译以及刷机过程。以备忘记。
准备工作:
材料:
TTL串口线
1
我的路由器现状

这个路由器是很早之前的了,它已经硬改为16M闪存,64M内存,以及刷有breed,所以我这里直接刷新编译的固件即可。
breed-tp9343.bin
89.49KB
2
接串口

按上图焊接一个4P端子,连接串口线,方便后续跟踪系统进程。
3
DTS文件

前面写过几个布置编译环境的帖子,这里就不在赘述。我把最主要的两个文件贴上去,大家自己编译即可。
在 openwrt/target/linux/ath79/dts 下新建文件 tp9343_tplink_tl-wr886n-v5.dts,写上以下内容:
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "qca956x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "tplink,tl-wr886n-v5", "qca,tp9343";
model = "TP-Link TL-WR886N v5";
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
label-mac-device = &wmac;
};
leds {
compatible = "gpio-leds";
led_system: system {
label = "green:system";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>; // 典型 GPIO14
default-state = "on";
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
debounce-interval = <60>;
};
};
ath9k-caldata {
compatible = "qca,ath9k-caldata";
#address-cells = <1>;
#size-cells = <1>;
calibration = <&cal_art_1000>;
};
};
&spi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
macaddr_uboot_1fc00: macaddr@1fc00 {
compatible = "mac-base";
reg = <0x1fc00 0x6>;
#nvmem-cell-cells = <1>;
};
};
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0xfd0000>;
};
partition@ff0000 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
cal_art_1000: calibration@1000 {
reg = <0x1000 0x440>;
};
};
};
};
};
};
ð0 {
status = "okay";
phy-handle = <&swphy4>;
phy-mode = "mii";
nvmem-cells = <&macaddr_uboot_1fc00 1>;
nvmem-cell-names = "mac-address";
};
ð1 {
status = "okay";
// 外部 WAN PHY,地址通常为 0
phy-handle = <&phy0>;
phy-mode = "mii";
nvmem-cells = <&macaddr_uboot_1fc00 0>;
nvmem-cell-names = "mac-address";
};
&mdio0 {
status = "okay";
phy0: phy@0 {
reg = <0>;
phy-mode = "mii";
};
// 内部交换机 PHY 定义(由 qca953x.dtsi 提供)
// swphy4 是由父级 dtsi 定义好的,此处无需重复
};
&wmac {
status = "okay";
nvmem-cells = <&macaddr_uboot_1fc00 2>, <&cal_art_1000>;
nvmem-cell-names = "mac-address", "calibration";
};
4
编写.mk文件

用vim命令打开openwrt/target/linux/ath79/image/generic-tp-link.mk 文件,在最下方不是以下内容:
define Device/tplink_tl-wr886n-v5
$(Device/tplink-16mlzma)
SOC := tp9343
DEVICE_MODEL := TL-WR886N
DEVICE_VARIANT := v5
TPLINK_BOARD_ID := TL-WR886N-V5
DEVICE_PACKAGES := kmod-ath9k
IMAGE_SIZE := 16064k
endef
TARGET_DEVICES += tplink_tl-wr886n-v5
5
配置menuconfig








123456
用make menuconfig 打开配置页面,按图选择CPU类型,型号,板子型号。
自己再添加一个LUCI界面,在其中再添加中文就可以了。(用*号选中)
保存退出,make -j5 V=s 编译即可。
6
制作eeprom

用winhex打开你的原厂固件,复制从20800到20C3F的数据,再新建一个64K的hex文件,把刚才的数据写入到1000处,然后保存为eeprom.bin文件。也叫art.bin.
7
刷机





123
编译好的的文件会在openwrt/bin/targets/ath79/generic/下,sysupgrade,是常规固件刷这个。
按住路由器reset按键不放,上电开机,等LED灯闪烁松手。
在浏览器上输入192.168.1.1进入刷机页面,选择你的固件,选择你的eeprom文件,更新。
更新重启后,在浏览器上输入192.168.1.1进入openwrt页面,默认密码:admin
0
0
0
qq空间
微博
复制链接
分享 更多相关项目
猜你喜欢
评论/提问(已发布 0 条)
0