Builds for NETGEAR WNR1000V2, WNR1000V2-VC, WNR612v2, WPN824N, WNR2000v3, EX2700

Hi Lucky, Thanks for reporting this error, although I haven't encountered it with my WNR1000V2-VC with my 19.07.5 build. I reflashed it twice and still didn't see an error.

Thanks for reporting it though, we'll see if it shows up with 19.07.6.

1 Like

Hi IanC, Yes - please send along a patch. Glad you're getting good use out of your WN604. Thanks!

I too use the "Saving firmware space" tips and I've found that changing the " TARGET_SQUASHFS_BLOCK_SIZE" is essential - I currently use 1024 KiB. Don't increase it too much though, as you'll use more RAM. I've found it is getting harder and harder to squeeze basic features into the 19.07.x branch for these devices as the kernel size grows. The latest config I used to build the 19.07.5 images is below. Good luck!

CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_tiny=y
CONFIG_TARGET_ar71xx_tiny_DEVICE_REALWNR1000V2=y
# CONFIG_KERNEL_CRASHLOG is not set
# CONFIG_KERNEL_DEBUG_FS is not set
# CONFIG_KERNEL_MAGIC_SYSRQ is not set
CONFIG_LUCI_SRCDIET=y
# CONFIG_PACKAGE_MAC80211_DEBUGFS is not set
# CONFIG_PACKAGE_MAC80211_MESH is not set
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_kmod-ledtrig-default-on=y
CONFIG_PACKAGE_kmod-ledtrig-heartbeat=y
CONFIG_PACKAGE_kmod-ledtrig-netdev=y
CONFIG_PACKAGE_kmod-ledtrig-timer=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
# CONFIG_PACKAGE_libpthread is not set
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-lib-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-proto-relay=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
# CONFIG_PACKAGE_openwrt-keyring is not set
# CONFIG_PACKAGE_opkg is not set
CONFIG_PACKAGE_relayd=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_uhttpd=y
# CONFIG_PACKAGE_usign is not set
# CONFIG_SIGNATURE_CHECK is not set
# CONFIG_SIGNED_PACKAGES is not set
CONFIG_STRIP_KERNEL_EXPORTS=y
CONFIG_USE_MKLIBS=y

Unsure, although I didn't explicitly disable it.

I've compiled an image for 19.07.6, testing it now on the WNR100v2-VC. If it is stable over the next few days I'll compile images for other devices and upload for everyone.

2 Likes

Hi, @jlpapple !
The new release:

Since there is still no test result of the previous build, can you make a fresh build that I am ready to test on my 612v2?

I'm running a test build of 19.07.7 right now, give me a few more days and if it remains stable I'll post updates for other models. The previous test build of 19.07.6 was solid, too.

1 Like

19.07.7 is now available, link in Post #1.

1 Like

Been a bit busy, but trying to catch up :).This is what I'm using against the current 19.0.7 tree for ath79. Is that what you're targetting?

diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index dd0f91affa3..0c8daa9d7ba 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -84,6 +84,16 @@ glinet,gl-ar300m-lite)
 glinet,gl-x750)
        ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
        ;;
+netgear,wn604)
+       ucidef_set_led_switch "lan1green" "LAN1 (green)" "netgear:green:lan1" "switch0" "0x02" "0x04"
+       ucidef_set_led_switch "lan2green" "LAN2 (green)" "netgear:green:lan2" "switch0" "0x04" "0x04"
+       ucidef_set_led_switch "lan3green" "LAN3 (green)" "netgear:green:lan3" "switch0" "0x08" "0x04"
+       ucidef_set_led_switch "lan4green" "LAN4 (green)" "netgear:green:lan4" "switch0" "0x10" "0x04"
+       ucidef_set_led_switch "lan1amber" "LAN1 (amber)" "netgear:amber:lan1" "switch0" "0x02" "0x02"
+       ucidef_set_led_switch "lan2amber" "LAN2 (amber)" "netgear:amber:lan2" "switch0" "0x04" "0x02"
+       ucidef_set_led_switch "lan3amber" "LAN3 (amber)" "netgear:amber:lan3" "switch0" "0x08" "0x02"
+       ucidef_set_led_switch "lan4amber" "LAN4 (amber)" "netgear:amber:lan4" "switch0" "0x10" "0x02"
+       ;;
 netgear,wnr612-v2|\
 on,n150r)
        ucidef_set_led_netdev "wan" "WAN" "netgear:green:wan" "eth0"
diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 5dda551caae..f2a484a4238 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -208,6 +208,9 @@ ath79_setup_interfaces()
                ucidef_set_interface_wan "eth0"
                ucidef_add_switch "switch0" \
                "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
+       netgear,wn604)
+               ucidef_add_switch "switch0" \
+               "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
                ;;
        phicomm,k2t)
                ucidef_add_switch "switch0" \
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 1bdbab79d6a..643109dfc61 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -167,6 +167,7 @@ case "$FIRMWARE" in
        winchannel,wb2000)
                ath9k_eeprom_extract "art" 20480 1088
                ;;
+       netgear,wn604|\
        netgear,wnr612-v2|\
        on,n150r|\
        pcs,cap324|\
diff --git a/target/linux/ath79/image/tiny-netgear.mk b/target/linux/ath79/image/tiny-netgear.mk
index de152990146..6b1f66c0589 100644
--- a/target/linux/ath79/image/tiny-netgear.mk
+++ b/target/linux/ath79/image/tiny-netgear.mk
@@ -2,7 +2,6 @@ include ./common-netgear.mk

 define Device/netgear_ar7240
   ATH_SOC := ar7240
-  NETGEAR_KERNEL_MAGIC := 0x32303631
   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma
   IMAGE_SIZE := 3712k
   IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs
@@ -11,6 +10,7 @@ endef

 define Device/netgear_wnr612-v2
   $(Device/netgear_ar7240)
+  NETGEAR_KERNEL_MAGIC := 0x32303631
   DEVICE_TITLE := Netgear WNR612v2
   DEVICE_DTS := ar7240_netgear_wnr612-v2
   NETGEAR_BOARD_ID := REALWNR612V2
@@ -18,8 +18,19 @@ define Device/netgear_wnr612-v2
 endef
 TARGET_DEVICES += netgear_wnr612-v2

+define Device/netgear_wn604
+  $(Device/netgear_ar7240)
+  NETGEAR_KERNEL_MAGIC := 0x31303031
+  DEVICE_TITLE := Netgear WN604
+  DEVICE_DTS := ar7240_netgear_wn604
+  NETGEAR_BOARD_ID := WN604
+  SUPPORTED_DEVICES += wn604
+endef
+TARGET_DEVICES += netgear_wn604
+
 define Device/on_n150r
   $(Device/netgear_ar7240)
+  NETGEAR_KERNEL_MAGIC := 0x32303631
   DEVICE_TITLE := ON Network N150R
   NETGEAR_BOARD_ID := N150R
   SUPPORTED_DEVICES += n150r

Performance tip for devices running 19.07.XX:

Enable Software Flow Offloading in the Network/Firewall preferences.

I’m noticing slightly higher download speeds, lower latency, and a 25% or more reduction in sirq calls when monitoring router CPU use via top. Given how limited the CPU is in these routers, any reduction in load is notable and beneficial for all users.

I do not believe hardware flow offloading is supported by these devices. Additionally, flow offloading is not compatible with SQM.

1 Like

I recently tested this on my 300Mbps WAN with 12 wifi clients running 19.07.7 on a WNR1000v2. Stable and good performance overall, although maximum wired download speed is ~94Mbps due to the 100Mbps limit on the WAN/LAN port due to the hardware specification.

1 Like

Whoops, I wasn't tracking this rather important file, so it was left out of the above diff:

cat target/linux/ath79/dts/ar7240_netgear_wn604.dts
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

#include "ar7240.dtsi"

/ {
        compatible = "netgear,wn604", "qca,ar7240";
        model = "Netgear WN604";

        chosen {
                bootargs = "console=ttyS0,115200n8";
        };

        aliases {
                led-boot = &power_amber;
                led-failsafe = &power_amber;
                led-running = &power_green;
                led-upgrade = &power_amber;
                label-mac-device = &eth1;
        };

        ath9k-keys {
                compatible = "gpio-keys-polled";
                poll-interval = <20>;

                wps {
                        label = "wps";
                        linux,code = <KEY_WPS_BUTTON>;
                        gpios = <&ath9k 6 GPIO_ACTIVE_LOW>;
                        debounce-interval = <60>;
                };

                reset {
                        label = "reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&ath9k 7 GPIO_ACTIVE_LOW>;
                        debounce-interval = <60>;
                };

                rfkill {
                        label = "rfkill";
                        linux,code = <KEY_RFKILL>;
                        gpios = <&ath9k 8 GPIO_ACTIVE_LOW>;
                        debounce-interval = <60>;
                };
        };

        leds {
                compatible = "gpio-leds";

                pinctrl-names = "default";
                pinctrl-0 = <&jtag_disable_pins &switch_led_disable_pins &clks_disable_pins>;

                power_green: power_green {
                        label = "netgear:green:power";
                        gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
                };

                power_amber: power_amber {
                        label = "netgear:amber:power";
                        gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };

                lan1_green {
                        label = "netgear:green:lan1";
                        gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
                };

                lan1_amber {
                        label = "netgear:amber:lan1";
                        gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
                };

                lan2_green {
                        label = "netgear:green:lan2";
                        gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
                };

                lan2_amber {
                        label = "netgear:amber:lan2";
                        gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
                };

                lan3_green {
                        label = "netgear:green:lan3";
                        gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
                };

                lan3_amber {
                        label = "netgear:amber:lan3";
                        gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
                };

                lan4_green {
                        label = "netgear:green:lan4";
                        gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
                };

                lan4_amber {
                        label = "netgear:amber:lan4";
                        gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
                };
        };

        ath9k-leds {
                compatible = "gpio-leds";

                wps_green {
                        label = "netgear:green:wps";
                        gpios = <&ath9k 5 GPIO_ACTIVE_LOW>;
                };

                wlan_blue {
                        label = "netgear:blue:wlan";
                        gpios = <&ath9k 1 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "phy0tpt";
                };
        };
};

&spi {
        status = "okay";
        num-cs = <1>;

        flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <25000000>;

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

                        partition@0 {
                                label = "u-boot";
                                reg = <0x0 0x40000>;
                                read-only;
                        };

                        partition@40000 {
                                label = "u-boot-env";
                                reg = <0x40000 0x10000>;
                        };

                        partition@50000 {
                                label = "firmware";
                                reg = <0x50000 0x3a0000>;
                                compatible = "netgear,uimage";
                        };

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

&eth0 {
        status = "okay";

        mtd-mac-address = <&art 0x0>;
};

&eth1 {
        status = "okay";

        mtd-mac-address = <&art 0x6>;
};

&pcie {
        status = "okay";

        ath9k: wifi@0,0 {
                compatible = "pci168c,002b";
                reg = <0x0000 0 0 0 0>;
                mtd-mac-address = <&art 0x0>;
                mtd-mac-address-increment = <1>;
                qca,no-eeprom;
                #gpio-cells = <2>;
                gpio-controller;
        };
};

&uart {
        status = "okay";
};

Hello!
For 20 days now I have been using a router with a new firmware as the main one.
In addition to the basic settings for connecting to the Internet and Wi-Fi, I used the advice from your post.

Here are the statistics:

and speed measurements on the cable where the Internet channel is 100 megabits:
67768844

again, thanks to @jlpapple for the firmware!

1 Like

40 days of uptime:

The flight is normal! :+1:

Today I installed OpenWRT for the first time on a Netgear WNR2000v3 router. But now I unfortunately have the problem that the wifi settings are lost after every reboot or power off and on. I also have to activate Wifi with the power button every time first.

Have you installed this specific community build, or an image from downloads.openwrt.org?

With this specific build. I then installed the upgrade firmware via the gui, after that everything worked fine.

Umm... is the download borked again? The following is all that I get in Firefox 88 (it's a relatively bare-bones installation of Linux Mint 18.3 save for some aesthetic tweaks, so there's no Chromium for me to test against):

1 Like

New links have been posted and tested.

Thanks, I can confirm it's working great on my WPN824N!

Outside of my recent foray into NAS and local file servers (which itself works fine via the 1Gbps ethernet ports on my modem), I never saw the point to upgrading my router as my internet connection only maxes out at 10Mbps down...