月度归档:2022年09月

TPLink WR941ND V2 openwrt的8m固件2203版源码修改

这个方法适用TPLink WR941ND V1/V2/V3和WR841ND V3路由器,22.03.0版本的openwrt。需要修改以下两个文件

1.target/linux/ath79/dts/ar9132_tplink_tl-wr941-v2.dts

&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 0x20000>;
				read-only;
			};

			partition@20000 {
				compatible = "tplink,firmware";
				label = "firmware";
				reg = <0x020000 0x7d0000>;
			};

			art: partition@7f0000 {
				label = "art";
				reg = <0x7f0000 0x10000>;
				read-only;
			};
		};
	};
};

partition@20000下reg = <0x020000 0x3d0000>;改为reg = <0x020000 0x7d0000>;

art: partition@3f0000改为art: partition@7f0000

art: partition下reg = <0x3f0000 0x10000>;改为reg = <0x7f0000 0x10000>;

2.target/linux/ath79/image/tiny-tp-link.mk

define Device/tplink_tl-wr941-v2
  $(Device/tplink-8m)
  SOC := ar9132
  DEVICE_MODEL := TL-WR941ND
  DEVICE_VARIANT := v2/v3
  DEVICE_ALT0_VENDOR := TP-Link
  DEVICE_ALT0_MODEL := TL-WR941N
  DEVICE_ALT0_VARIANT := v2/v3
  TPLINK_HWID := 0x09410002
  TPLINK_HWREV := 2
  SUPPORTED_DEVICES += tl-wr941nd
endef
TARGET_DEVICES += tplink_tl-wr941-v2

$(Device/tplink-4m)改为$(Device/tplink-8m),注意一点,原本是4m的,不能改成4mlzma或者8mlzma,错误修改后bootloader加载内核时会报错。

然后正常编译就可以了,以前的18.06及以前的版本,如果编译出来的包没有超过3712kb,就可以不改flash定义,系统启动后会自动更新flash大小,2203版本的包编译出来有5m了,如果不改flash定义,启动到一半会失败,所以必须改。