TL-WR740N硬改刷机OpenWRT源码编译固件
·
TP-LINK TL-WR740N硬改刷机OpenWRT
简述
- TP-LINK TL-WR740N是普联技术有限公司推出的SOHO无线路由器,支持IEEE 802.11b/g/n无线标准,最高传输速率150Mbps。采用CCA空闲频道检测技术,可自动避开信道干扰并捆绑空闲信道,有效提升无线信号稳定性与带宽利用率 。兼容802.11b/g标准,硬件采用AR9331芯片组,配备32MB RAM和4MB FLASH存储器,设有1个10/100Mbps WAN口及4个同规格LAN口 。支持WPS快速安全设置、WDS无线桥接及IP QoS带宽控制功。
硬件改动
- 1.原装16MB内存改为64MB,亲测可用型号三星K4H511638N-LCCC是一颗32Mx16Bit DDR:
- 更换DDR;
- R59原来NC贴0R电阻;
- 2.接通调试串口:
- R173由NC贴0R电阻;
- 主板背面TP17飞线到TP27,TP18飞行到TP28;
- 3.更换16MB NorFlash:
- 先烧录breed不死u-boot(下载方法见下文);
- 焊接替换NorFlash;


刷uboot
breed下载链接
打开breed下载链接,选择有ar9331的bin文件,本例下载"breed-ar9331-wr710n_wr720n.bin" 和"breed-ar9331.bin"都可以使用
编程器烧录breed-ar9331.bin
将烧录完成的Norflash焊接到板子,连接好串口(串口设置:115200,8,11N)
原生软硬件启动日志:
修改硬件升级breed启动日志:

刷openwrt固件
- 下载openwrt固件,没找到TL-WR740N对应的型号找个相近的先试试,估计这款路由器太老旧了。

- 路由器网线直连PC,浏览器输入192.168.1.1即可登录到Breed Web控制台。

- 固件更新->选择文件->上传->更新



固件是跑起来了,但貌似不能正常工作!!!
白折腾了。。。日后兴致来了再下载openwrt源码编译个固件试试!
openwrt源码编译固件(2026.02.03)
今天来了兴致继续用折腾。编译环境搭建:
ubuntu 控制台操作如下:
update更新
sudo apt-get update
安装编译需要的组件:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install texinfo
sudo apt-get install unzip
sudo apt-get install sharutils
sudo apt-get install subversion
sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
sudo apt-get install libssl-dev
sudo apt-get install ocaml-nox
下载固件
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git branch -a # 查看远端分支
git checkout v2x.xx # 切换到需要的分支
添加软件扩展包源
将feeds.conf.default修改为feeds.conf:
cp feeds.conf.default feeds.conf
更新扩展,安装扩展:
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig # 生成默认配置
make menuconfig # 根据板子配置
编译:
make # 不显示编译过程
make V=99 # 显示编译过程
make -j$(nproc) V=s # 多进程编译 , 输出显示过程
make是编译命令,V=99表示输出debug信息,V一定要大写,如果要让CPU全速编译,就加上 -j 参数,第一次编译最好不带-j参数。
编译完成后,固件生成目录:
make menuconfig
选择对应板型:
修改编译固件16M:
openwrt/target/linux/ath79/image/common-tp-link.mk
修改:openwrt/target/linux/ath79/image/tiny-tp-link.mk
修改flash分区表(否则启动kernel异常):
openwrt/target/linux/ath79/dts/ar9331_tplink_tl-wr740n-v5.dts
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/**
#include "ar9331_tplink_tl-wr741nd-v4.dtsi"
/ {
model = "TP-Link TL-WR740N v5";
compatible = "tplink,tl-wr740n-v5", "qca,ar9331";
};
**/
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9331.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
model = "TP-Link TL-WR740N v5";
compatible = "tplink,tl-wr740n-v5", "qca,ar9331";
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
label-mac-device = &wmac;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 26 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&switch_led_disable_pins>;
lan1 {
label = "green:lan1";
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
};
lan2 {
label = "green:lan2";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
lan3 {
label = "green:lan3";
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
};
lan4 {
label = "green:lan4";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
qss {
label = "green:qss";
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
led_system: system {
label = "green:system";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
};
wan {
function = LED_FUNCTION_WAN;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
};
wlan {
function = LED_FUNCTION_WLAN;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
};
};
&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 0x15d0000>;
};
partition@15f0000 {
label = "art";
reg = <0x15f0000 0x010000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
cal_art_1000: calibration@1000 {
reg = <0x1000 0x440>;
};
};
};
};
};
};
ð0 { /* WAN interface, initialized last as eth1 */
status = "okay";
nvmem-cells = <&macaddr_uboot_1fc00 1>;
nvmem-cell-names = "mac-address";
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <1>;
switch-phy-swap = <1>;
};
};
ð1 { /* LAN interface, initialized first as eth0 */
status = "okay";
nvmem-cells = <&macaddr_uboot_1fc00 0>;
nvmem-cell-names = "mac-address";
};
&wmac {
status = "okay";
nvmem-cells = <&macaddr_uboot_1fc00 0>, <&cal_art_1000>;
nvmem-cell-names = "mac-address", "calibration";
};
重新刷入编译固件,开机要等一段时间:ifconfig有输出后浏览器输入访问192.168.1.1即可访问浏览器页面。

更多推荐


所有评论(0)