Openwrt 新版源码 调整 WNDR4300 固件大小至128M

参考Lede编译如何修改固件大小WNDR3700V4完全使用128M FLASH

由于新版源码删除了之前用于定义固件分区结构的legacy.mk,因此只能转而修改dts等文件,从而达到修改固件大小的目的。

  1. 新建./openwrt/target/linux/ath79/dts/ar9344_netgear_wndr4300_128m.dts,写入如下内容
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "ar9344_netgear_wndr_128m.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"

/ {
    
    
	compatible = "netgear,wndr4300", "qca,ar9344";
	model = "Netgear WNDR4300";
};

  1. ./openwrt/target/linux/ath79/dts/ar9344_netgear_wndr.dtsi文件拷贝一份,命名为ar9344_netgear_wndr_128m.dtsi,修改其中的
		ubiconcat0: partition@ac0000 {
    
    
			label = "ubiconcat0";
			reg = <0xac0000 0x1500000>;
		};

		partition@6c0000 {
    
    
			label = "firmware";
			reg = <0x6c0000 0x1900000>;
			compatible = "netgear,uimage";
		};

		partition@1fc0000 {
    
    
			label = "caldata_backup";
			reg = <0x1fc0000 0x40000>;
			read-only;
		};

		ubiconcat1: partition@2000000 {
    
    
			label = "ubiconcat1";
			reg = <0x2000000 0x6000000>;
		};

		partition@ac0000 {
    
    
			label = "ubi";
			reg = <0xac0000 0x7500000>;
		};

		partition@6c0000 {
    
    
			label = "firmware";
			reg = <0x6c0000 0x7900000>;
			compatible = "netgear,uimage";
		};

		partition@7fc0000 {
    
    
			label = "caldata_backup";
			reg = <0x7fc0000 0x40000>;
			read-only;
		};

并删除

	ubi-concat {
    
    
		compatible = "mtd-concat";
		devices = <&ubiconcat0 &ubiconcat1>;

		partitions {
    
    
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			ubi@ac0000 {
    
    
				label = "ubi";
				reg = <0x0 0x7500000>;
			};
		};
	};

详细的改动分析如下图。
dtsi
dtsi2
分区结构如下图。

partition

  1. 修改./openwrt/target/linux/ath79/image/nand.mk文件,将原有配置改为128m
  • 添加的配置
define Device/netgear_ath79_nand_128m
  DEVICE_VENDOR := NETGEAR
  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
  KERNEL_SIZE := 4096k
  BLOCKSIZE := 128k
  PAGESIZE := 2048
  IMAGE_SIZE := 121m		#修改处
  KERNEL := kernel-bin | append-dtb | lzma -d20 | \
	pad-offset $$(KERNEL_SIZE) 129 | uImage lzma | \
	append-string -e '\xff' | \
	append-uImage-fakehdr filesystem $$(UIMAGE_MAGIC)
  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | uImage lzma
  IMAGES := sysupgrade.bin factory.img
  IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | \
	check-size
  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | \
	check-size
  UBINIZE_OPTS := -E 5
endef
  • 修改的配置
define Device/netgear_wndr4300_128m		#修改处
  SOC := ar9344
  DEVICE_MODEL := WNDR4300
  UIMAGE_MAGIC := 0x33373033
  NETGEAR_BOARD_ID := WNDR4300
  NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
  $(Device/netgear_ath79_nand_128m)		#修改处
endef
TARGET_DEVICES += netgear_wndr4300_128m	#修改处

修改效果图

effect
mtd

猜你喜欢

转载自blog.csdn.net/u011570312/article/details/112269634