Buffalo WZR-300hp and 21.02


I am looking into upgrading to the latest release, but I'm confused as if my router model is supported or not (buffalo wzr-300hp b0a1).

The table of hardware page mentions 21.02 is supported, however, no download link is provided (see here).

As far I as I understand, 300hp and g300nh2 are considered the same. However, toh says g300nh2 is not supported (here).

The 300hp / g300nh2 wiki page (here) mentions b0a0 is supported, but no link provided. B0a1 is said to be supported on 'barrier breaker', which seems is a outdated info since I'm on 'attitude adjustment'.

Still in the wiki page, this comment can be found : "As of OpenWrt 21.02.0, the correct firmware to use (at least for B0A0) is named buffalo_wzr-hp-g302h-a1a0. ".

So I need some help figure out what is the real info here :

  • Is wzr-300hp really supported by 21.02 ?

  • if so, what image should I use ?

  • Is the g302h file mentionned above safe to try ?

Thanks for your help !!

1 Like

I went ahead and tried upgrading my WZR-HP-G300NH2 C1A0 to 21.02, using buffalo_wzr-hp-g302h-a1a0 (openwrt-21.02.0-ath79-generic-buffalo_wzr-hp-g302h-a1a0-squashfs-sysupgrade.bin).

So far so good. I chose to retain all settings, and turned out everything is working so far exactly like before. Model name of my router is now shown as Buffalo WZR-HP-G302H A1A0, but as long as it works I don't really care.

Will update this response if I run into any issue.

My repeater router (also a WZR-HP-G300NH2 C1A0) has also been upgraded to 21.02. The only problem I faced was the watchcat module that I have been using since 19.07 seems not to function normally anymore. A brief diagnosis seem to reveal that the test ping packets are sent right when the router boots up regardless of the delay settings (before connection to the primary router is established), causing a reset thus basically a boot loop.

Enabling watchcat AFTER the router has booted successfully doesn't cause any issue. But this defeats the purpose of having watchcat in the first place, as I want watchcat to automate the process or resetting the router if something goes wrong. I don't want to have to do any manual intervention.

I have for now disabled watchcat entirely. If the repeater is stable enough under 21.02, I guess I don't even need a watch dog (or watch cat) to trigger a reset if something breaks down...

Edit: I have also noticed accessing the "network -> interfaces" page will cause the system to update some settings to make things compatible with 21.02. This doesn't seem to have any impact on my network. Also, any change you make to network settings will trigger the insertion of two settings (one of which is brand new in 21.02):

Allow legacy 802.11b rates (set to '0'... I probably should have set it to '0' a long time ago though)
Coverage cell density (set to '0' for disabled. This option did not exist in 19.07)

These changes resulted in my repeater router losing connection to the primary router. The way I solved it was to manually update these settings in the /etc/config/wireless file of BOTH routers instead of letting luci do these updates. Then I rebooted both routers. Only by doing this was I able to retain these updates while maintaining connection.

Edit after one week: watchcat is up and running. It is just a script so all it took was an examination of how it works then you do some trial and error / adjusting the parameters to see what works and what doesn't. I ended up setting it up as a "reset interface" type of watch dog with 90s ping intervals.

Thanks for the input. I was told here to try it using tftp, but never put effort.

With your feedback, I'll try it as a normal upgrade.

Good luck.
2 days into the new firmware I have only good things to say about it. For some reason the signal of each of my routers has become stronger. So that's also a big plus on top of apparent stability improvements.

I got a B0B0 model. Anyone have any idea if it’s “safe” to try flashing this?

Worst case scenario I do have serial and TFTP, but it would be nice not having to go there.

So I wen't ahead and did the upgrade just to see...

First things first: OpenWRT does warn me this is not supported.



After checking "force", and waiting for 10 minutes+, the device is still down and diag being lighted in red. I guess I'll have to go playing with TFTP again then.

So now you know. Don't try to flash 21.02.1 g302h sysupgrade firmware on your B0B0 buffalo :slight_smile:

Hooking up the serial, I can see it partially boots, but somewhere in kernel init something fails:

AP83--539 (ar9100) U-boot 0.0.12

AP83--539 (ar9100) U-boot 0.0.12
64 MB
Memory Test (address line)
Memory Test start(0x00000000) end(0x04000000) size(67108864)
Data line test start:0x00000000 pattern 0x00000001 0x00000003 0x00000007 0x0000000F 0x00000005 0x00000015 0x00000055 0xAAAAAAAA
Address line test start:0x00000000 len:0x4000000 pattern 0xAAAAAAAA 0x55555555
Fill test patnum:5
fill Pattern 5555AAAA  Writing...   Reading...
fill Pattern AAAA5555  Writing...   Reading...
fill Pattern 0000FFFF  Writing...   Reading...
fill Pattern FFFF0000  Writing...   Reading...
fill Pattern AAAAAAAA  Writing...   Reading...
Top of RAM usable for U-Boot at: 84000000
Reserving 275k for U-Boot at: 83fb8000
Reserving 256k for malloc() at: 83f78000
Reserving 44 Bytes for Board Info at: 83f77fd4
Reserving 36 Bytes for Global Data at: 83f77fb0
Reserving 128k for boot params() at: 83f57fb0
Stack Pointer at: 83f57f98
Now running in RAM - U-Boot at: 83fb8000
Dev ID2:2222
Dev ID3:2201
Name: AMD-SPANSION Flash id: 0x1227E, Size: 33554432 bytes.
Flash: 32 MB
In:    serial
Out:   serial
Err:   serial
Memory Test
uboot use  83F57FB0 - 84000000
Memory Test start(80000000) end(83F00000) size(03F00000)
Pattern 00000000  Writing...  Reading...
Memory Test OK
### buf_ver=[1.07] U-Boot Ver.=[1.07]
### build_date(env)=[Dec 21 2009 - 10:37:11] build_date(bin)=[Dec 21 2009 - 10:37:11]
: cfg1 0xf cfg2 0x7114
RTL8366 series driver, reading model-id...
  ID:0x6027, REV:0x6
rtl8366sr_phy_setup  ethUnit=0
Realtek 8366SR switch ID 0x8366
Realtek Greeen Ethernet Setup
eth0: 02:aa:bb:cc:dd:1a
eth0 up
: cfg1 0xf cfg2 0x7114
RTL8366 series driver, reading model-id...
eth1: 02:aa:bb:cc:dd:1a
eth1 up
eth0  02:AA:BB:CC:DD:1A
, eth1  02:AA:BB:CC:DD:1A

Trying eth0
eth0 is duplex
eth0 link down
Trying eth1
eth1 link down

tftp server(receive) go, waiting:4[sec]
Trying eth1
eth1 link down
Trying eth0
eth0 is duplex
eth0 link down
Load address: 0x81f00000

TftpServer Timeout;
Trying eth0
eth0 is duplex
eth0 link down
Trying eth1
eth1 link down
no file was loaded.
## Booting image at be060000 ...
   Image Name:   MIPS OpenWrt Linux-5.4.154
   Created:      2021-10-24   9:01:35 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2047676 Bytes =  2 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80060000) ...
## Giving linux memsize in bytes, 67108864

Starting kernel ...

[    0.000000] Linux version 5.4.154 (builder@buildhost) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16325-88151b8303)) #0 Sun Oct 24 09:01:35 2021
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] MIPS: machine is Buffalo WZR-HP-G302H A1A0
[    0.000000] SoC: Atheros AR9132 rev 2
[    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-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16240
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 57272K/65536K available (5252K kernel code, 191K rwdata, 688K rodata, 1220K init, 205K bss, 8264K 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] random: get_random_bytes called from 0x8065fa28 with crng_init=0
[    0.000000] CPU clock: 400.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000011] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.007914] Calibrating delay loop... 265.98 BogoMIPS (lpj=531968)
[    0.050055] pid_max: default: 32768 minimum: 301
[    0.054906] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.062217] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.076585] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.086362] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.093296] pinctrl core: initialized pinctrl subsystem
[    0.101893] NET: Registered protocol family 16
[    0.139117] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[    0.153707] clocksource: Switched to clocksource MIPS
[    0.160132] thermal_sys: Registered thermal governor 'step_wise'
[    0.160598] NET: Registered protocol family 2
[    0.171244] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.179537] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.187967] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.195637] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.202700] TCP: Hash tables configured (established 1024 bind 1024)
[    0.209248] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.215829] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.223175] NET: Registered protocol family 1
[    0.227599] PCI: CLS 0 bytes, default 32
[    0.236758] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    0.253972] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.259821] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.287643] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.298474] pinctrl-single 18040028.pinmux: 64 pins, size 8
[    0.304799] gpio-export gpio-export: 1 gpio(s) exported
[    0.311033] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.320827] printk: console [ttyS0] disabled
[    0.325224] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 12500000) is a 16550A
[    0.333937] printk: console [ttyS0] enabled
[    0.333937] printk: console [ttyS0] enabled
[    0.342356] printk: bootconsole [early0] disabled
[    0.342356] printk: bootconsole [early0] disabled
[    0.365639] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    0.372682] spi-nor: probe of spi0.0 failed with error -2
[    0.379509] spi-nor spi0.1: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    0.386530] spi-nor: probe of spi0.1 failed with error -2
[    0.394660] libphy: Fixed MDIO Bus: probed
[    0.403476] ag71xx 19000000.eth: invalid MAC address, using random address
[    1.042168] libphy: ag71xx_mdio: probed
[    1.047356] ag71xx 19000000.eth: connected to PHY at mdio.0:00 [uid=0000ffff, driver=Generic PHY]
[    1.057261] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii
[    1.064011] i2c /dev entries driver
[    1.070482] NET: Registered protocol family 10
[    1.082207] Segment Routing with IPv6
[    1.086129] NET: Registered protocol family 17
[    1.090705] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.103751] 8021q: 802.1Q VLAN Support v1.8
[    1.109226] PCI host bridge /ahb/apb/pcie-controller@180c0000 ranges:
[    1.115822]  MEM 0x0000000010000000..0x0000000013ffffff
[    1.121100]   IO 0x0000000000000000..0x0000000000000000

Not sure how I can use that to make booting work on this unit, so I guess I'm back to 19.07.x.

Final update:

After trying to recover via TFTP, I tried the following files:

The first one flashed fine and kinda booted, but constantly stopped and ran into failsafe mode, because it incorrectly detected some failsafe-button having been pressed (not up on network, serial console required).

Using the second image (openwrt-21.02.0-ath79-generic-buffalo_wzr-hp-g300nh-s-squashfs-tftp.bin) I was able to boot my WZR-HP-G300NH B0B0 device back into normal operation with a clean state without any serial-intervention.

So for other B0B0 owners out there, the upgrade path to 21.02.x is the wzr-hp-g300nh-s series of images :slight_smile:

1 Like

I see that you have also updated this wiki page https://openwrt.org/toh/buffalo/wzr-hp-g300h

Cheers to that.

I have a WZR-HP-G300NH2 rev A1 A0 on 19.07.
Tried sysupgrade with this file buffalo_wzr-hp-g302h-a1a0-squashfs-sysupgrade.bin in a ssh session.
It cut my ssh connection immediately so I didn't see any warning or saying it's not compatible.
after ~10mins I can ssh into the machine again and didn't see anything abnormal.