I've tried this patch and ported Netgear WNR2000v3. All seems work OK except restarting network take a long time to reconnect. When I change Lan IP and apply the settings, Luci can't get response and I have to reboot the router. So the change recovered.
This is my commit.
Here is dmesg log:
root@OpenWrt:~# dmesg
[ 0.000000] Linux version 4.14.54 (qianzheng@K650D) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7561+22-7316515891)) #0 Fri Jul 27 03:14:17 2018
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[ 0.000000] MIPS: machine is Netgear WNR2000 v3
[ 0.000000] SoC: Atheros AR7241 rev 1
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 02000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000001ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000001ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff]
[ 0.000000] On node 0 totalpages: 8192
[ 0.000000] free_area_init_node: node 0, pgdat 80419e10, node_mem_map 810077a0
[ 0.000000] Normal zone: 64 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 8192 pages, LIFO batch:0
[ 0.000000] random: get_random_bytes called from 0x8041d72c with crng_init=0
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 26752K/32768K available (3332K kernel code, 135K rwdata, 352K rodata, 1228K init, 203K bss, 6016K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 51
[ 0.000000] CPU clock: 400.000 MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[ 0.000013] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[ 0.007904] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[ 0.094159] pid_max: default: 32768 minimum: 301
[ 0.099082] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.105683] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.118559] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.128427] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.134621] pinctrl core: initialized pinctrl subsystem
[ 0.141193] NET: Registered protocol family 16
[ 0.146646] Can't analyze schedule() prologue at 8039cef4
[ 0.154741] PCI host bridge /ahb/apb/pcie-controller@180c0000 ranges:
[ 0.161186] MEM 0x0000000010000000..0x0000000013ffffff
[ 0.166454] IO 0x0000000000000000..0x0000000000000000
[ 0.192098] PCI host bridge to bus 0000:00
[ 0.196209] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[ 0.203131] pci_bus 0000:00: root bus resource [io 0x0000]
[ 0.208691] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 0.215467] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.223416] pci 0000:00:00.0: [168c:002e] type 00 class 0x028000
[ 0.223497] pci 0000:00:00.0: reg 0x10: [mem 0x10000000-0x1000ffff 64bit]
[ 0.223672] pci 0000:00:00.0: supports D1
[ 0.223687] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 0.224020] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 0.224059] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1000ffff 64bit]
[ 0.232256] clocksource: Switched to clocksource MIPS
[ 0.238756] NET: Registered protocol family 2
[ 0.244323] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.251295] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.257711] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.264273] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.270123] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.276813] NET: Registered protocol family 1
[ 0.281218] PCI: CLS 0 bytes, default 32
[ 0.286711] Crashlog allocated RAM at address 0x1f00000
[ 0.293452] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 0.307320] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.313197] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.333480] io scheduler noop registered
[ 0.337402] io scheduler deadline registered (default)
[ 0.343482] pinctrl-single 18040028.pinmux: 64 pins at pa b8040028 size 8
[ 0.351629] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.359027] console [ttyS0] disabled
[ 0.362719] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 8, base_baud = 12500000) is a 16550A
[ 0.371411] console [ttyS0] enabled
[ 0.378443] bootconsole [early0] disabled
[ 0.394159] m25p80 spi0.0: mx25l3205d (4096 Kbytes)
[ 0.399124] 4 fixed-partitions partitions found on MTD device spi0.0
[ 0.405580] Creating 4 MTD partitions on "spi0.0":
[ 0.410421] 0x000000000000-0x000000040000 : "u-boot"
[ 0.416560] 0x000000040000-0x000000050000 : "u-boot-env"
[ 0.423065] 0x000000050000-0x0000003f0000 : "firmware"
[ 0.434765] 2 netgear-fw partitions found on MTD device firmware
[ 0.440837] 0x000000050000-0x000000192440 : "kernel"
[ 0.446906] 0x000000192440-0x0000003f0000 : "rootfs"
[ 0.452973] mtd: device 4 (rootfs) set to be root filesystem
[ 0.458705] 1 squashfs-split partitions found on MTD device rootfs
[ 0.464996] 0x0000003a0000-0x0000003f0000 : "rootfs_data"
[ 0.471490] 0x0000003f0000-0x000000400000 : "art"
[ 0.478060] libphy: Fixed MDIO Bus: probed
[ 0.822710] libphy: ag71xx_mdio: probed
[ 1.112324] mdio-bus.0:1f: Found an AR7240/AR9330 built-in switch
[ 1.118678] libphy: ar7240sw_mdio: probed
[ 1.503895] ag71xx 19000000.eth: connected to PHY at mdio-bus.0:1f:04 [uid=004dd041, driver=Generic PHY]
[ 1.514367] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[ 1.854069] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[ 1.864070] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[ 1.872628] NET: Registered protocol family 10
[ 1.882314] Segment Routing with IPv6
[ 1.886156] NET: Registered protocol family 17
[ 1.890694] 8021q: 802.1Q VLAN Support v1.8
[ 1.904037] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 1.920986] Freeing unused kernel memory: 1228K
[ 1.925579] This architecture does not have kernel memory protection.
[ 2.552268] random: fast init done
[ 4.471772] init: Console is alive
[ 4.475581] init: - watchdog -
[ 5.698615] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 5.965499] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 5.983673] init: - preinit -
[ 8.586725] random: jshn: uninitialized urandom read (4 bytes read)
[ 8.971978] random: jshn: uninitialized urandom read (4 bytes read)
[ 9.301221] random: jshn: uninitialized urandom read (4 bytes read)
[ 10.290855] urandom_read: 2 callbacks suppressed
[ 10.290866] random: procd: uninitialized urandom read (4 bytes read)
[ 10.310319] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 10.316376] IPv6: ADDRCONF(NETDEV_UP): eth1.1: link is not ready
[ 11.393423] eth1: link up (1000Mbps/Full duplex)
[ 11.398109] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 11.405114] IPv6: ADDRCONF(NETDEV_CHANGE): eth1.1: link becomes ready
[ 13.946147] jffs2: notice: (352) jffs2_build_xattr_subsystem: complete building xattr subsystem, 3 of xdatum (0 unchecked, 1 orphan) and 5 of xref (1 dead, 0 orphan) found.
[ 13.963968] mount_root: switching to jffs2 overlay
[ 14.000501] overlayfs: upper fs does not support tmpfile.
[ 14.014015] urandom-seed: Seeding with /etc/urandom.seed
[ 14.089789] procd: - early -
[ 14.092918] procd: - watchdog -
[ 14.512279] eth1: link down
[ 14.913358] procd: - watchdog -
[ 14.916869] procd: - ubus -
[ 15.455323] random: ubusd: uninitialized urandom read (4 bytes read)
[ 15.464330] random: ubusd: uninitialized urandom read (4 bytes read)
[ 15.471308] random: ubusd: uninitialized urandom read (4 bytes read)
[ 15.478986] procd: - init -
[ 16.436743] kmodloader: loading kernel modules from /etc/modules.d/*
[ 16.449023] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 16.468134] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[ 16.476263] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[ 16.486681] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 16.502026] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[ 16.583024] xt_time: kernel timezone is -0000
[ 16.656351] PPP generic driver version 2.4.2
[ 16.663824] NET: Registered protocol family 24
[ 16.723152] ath: phy0: Ignoring endianness difference in EEPROM magic bytes.
[ 16.731759] ath: EEPROM regdomain: 0x0
[ 16.731766] ath: EEPROM indicates default country code should be used
[ 16.731771] ath: doing EEPROM country->regdmn map search
[ 16.731787] ath: country maps to regdmn code: 0x3a
[ 16.731794] ath: Country alpha2 being used: US
[ 16.731800] ath: Regpair used: 0x3a
[ 16.746169] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 16.752051] ieee80211 phy0: Atheros AR9287 Rev:2 mem=0xb0000000, irq=11
[ 17.228379] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 40.282500] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 40.291732] eth1: link up (1000Mbps/Full duplex)
[ 40.302545] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 40.323708] br-lan: port 1(eth1.1) entered blocking state
[ 40.329158] br-lan: port 1(eth1.1) entered disabled state
[ 40.335298] device eth1.1 entered promiscuous mode
[ 40.340131] device eth1 entered promiscuous mode
[ 40.368349] br-lan: port 1(eth1.1) entered blocking state
[ 40.373862] br-lan: port 1(eth1.1) entered forwarding state
[ 40.379886] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 40.495315] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 41.312777] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[ 43.369924] eth0: link up (100Mbps/Full duplex)
[ 43.402385] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 46.612042] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 46.730722] br-lan: port 2(wlan0) entered blocking state
[ 46.736172] br-lan: port 2(wlan0) entered disabled state
[ 46.741961] device wlan0 entered promiscuous mode
[ 47.241933] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 47.248661] br-lan: port 2(wlan0) entered blocking state
[ 47.254055] br-lan: port 2(wlan0) entered forwarding state
But I have another problem with the file "tiny-netgear.mk"
First time I put the section "define Device/netgear_wnr2000-v3" before "define Device/netgear_wnr612-v2" and rum make. The generated factory image file contains the wrong NETGEAR_BOARD_ID. It is "device:N150R" but not "device:WNR2000V3".
It seems that the varaible NETGEAR_BOARD_ID is repalced by N150R. So I have to place the section "define Device/netgear_wnr2000-v3" to the last of the file. Is it a bug in Makefile or something else? Anybody can help?