The Buffalo WZR-600DHP is a 802.11n router. This router is based on the Atheros AR7161 SoC with 128MB memory and 32MB flash.
The last firmware that Buffalo provided for this unit is DD-WRT v3.0-r30356 std (11/30/17). This version of dd-wrt is based on Linux 3.10.102, built on November 30, 2017. For continued support, use OpenWRT which still continues to build recent revisions for this unit.
I purchased this unit back in February 2014 from NewEgg for $80.
Flashing OpenWRT on the WZR-600DHP[edit | edit source]
Flashing OpenWRT from DD-WRT was very straight forward. There is an issue with getting USB working however.
- Installation: https://wiki.openwrt.org/toh/buffalo/wzr-600dhp#installation_using_the_remote_shell_method
- Firmware: https://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/openwrt-18.06.1-ar71xx-generic-wzr-600dhp-squashfs-sysupgrade.bin
Flashing from stock dd-wrt firmware[edit | edit source]
# cd /tmp # scp foo@host:~/openwrt-18.06.1-ar71xx-generic-wzr-600dhp-squashfs-sysupgrade.bin . # mtd -r write openwrt-18.06.1-ar71xx-generic-wzr-600dhp-squashfs-sysupgrade.bin linux ## This may take about 1-2 minutes, and the -r will automatically reboot the device
Flashing using the TFTP bootloader method[edit | edit source]
The unit will start a TFTP server for a few seconds as part of the boot sequence. During this short window, it will accept a file via TFTP from 192.168.11.2.
You will need to prepare a Linux system on the network on this IP address. Use the following commands to set up the IP address and ARP entry (the bootloader fakes this MAC address). Use Curl to push the file via
# ip address add 192.168.11.2/24 dev ens33 # arp -s 192.168.11.1 02:aa:bb:cc:dd:20 # curl -T openwrt-tftp.bin tftp//192.168.11.1
Power cycle the router and then run the
curl command. After a few seconds, you should see curl transmitting the file. Once the curl finishes, it will take the unit a few more minutes to finish flashing. The diagnostic red LED should be blinking until this process is done.
Once you're done, you might want to clear the ARP entry using:
arp -d 192.168.11.1
Accessing OpenWRT[edit | edit source]
With OpenWRT loaded, you should be able to access it at 192.168.1.1 (not 192.168.11.1 which was the previous default).
Reverting to the stock firmware[edit | edit source]
After being unable to get this router working with a USB printer, I decided to revert from OpenWRT back to the stock dd-wrt based firmware. This can be accomplished using the TFTP bootloader method.
# ip address add 192.168.11.2/24 dev ens33 # arp -s 192.168.11.1 02:aa:bb:cc:dd:20 ## Use either curl or tftp # curl -T wzr600dhp-pro-v3.0-r30356.enc tftp//192.168.11.1 ## OR use tftp ## Run every command blow except the PUT command. Run the PUT command only when you have power cycled the device and the router's link light beings blinking. # tftp 192.168.11.1 tftp> binary tftp> rexmt 1 tftp> timeout 60 tftp> trace Packet tracing on. tftp> put wzr600dhp-pro-v3.0-r30356.enc ## The transfer took about 33 seconds and the diagnostic light will blink rapidly initially, then followed by a slightly slower blink. It took another 5 or so minutes for it to come online afterwards. ## Clear the ARP table: arp -d 192.168.11.1
The router will be accessible at 192.168.11.1 with the new stock firmware. Log in as 'admin' using 'password' as the password.
Tasks[edit | edit source]
Setup a print server using p910nd[edit | edit source]
On the stock dd-wrt firmware, you can enable USB printer support which starts a p910nd service that exposes the USB printer on port 9100.
On OpenWRT, this can also be set up by installing the
kmod-usb-printer packages. Refresh the luci web interface and navigate to Services -> "p910nd - Print Server". Enable the service for
/dev/usb/lp0 on port 9100.
Troubleshooting[edit | edit source]
USB Issues[edit | edit source]
Update: Testing this again on OpenWRT 21 shows the USB issue described below has been resolved.
The following applied to OpenWRT / LEDE 17.01:
USB support doesn't appear to work for this model. I installed the USB drivers with the following packages
opkg install kmod-usb-printer usbutils kmod-usb-ohci kmod-usb2. However, OpenWRT does not seem to detect the USB devices. A printer should exist at
/dev/usb/lp, but nothing shows up. LEDE 17.01 was unable to detect any USB devices at all.
root@buffalo:/dev/bus/usb/001# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub root@buffalo:/dev# lsmod | grep usb ledtrig_usbport 2160 0 nls_base 4736 1 usbcore usb_common 1312 1 usbcore usbcore 118528 4 usblp,ledtrig_usbport,ehci_platform,ehci_hcd usblp 8480 0 root@buffalo:/dev# dmesg | grep -i usb [ 6.651469] usbcore: registered new interface driver usbfs [ 6.657039] usbcore: registered new interface driver hub [ 6.662464] usbcore: registered new device driver usb [ 6.671682] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 6.690631] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1 [ 6.727198] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00 [ 6.734199] hub 1-0:1.0: USB hub found [ 12.263746] usbcore: registered new interface driver usblp root@buffalo:~# uname -a Linux buffalo 4.9.120 #0 Thu Aug 16 07:51:15 2018 mips GNU/Linux
Using the stock dd-wrt firmware, the AR7100 EHCI USB controller is found and devices are also discovered:
root@DD-WRT:~# lsmod | grep usb usblp 8996 0 usbcore 118161 4 usblp,ohci_hcd,ehci_hcd usb_common 1146 1 usbcore root@DD-WRT:~# lsusb -sh: lsusb: not found root@DD-WRT:~# uname -a Linux DD-WRT 3.10.102 #28624 Thu Nov 30 14:01:34 CET 2017 mips DD-WRT root@DD-WRT:~# dmesg | grep -i usb <6>[ 552.770000] usbcore: registered new interface driver usbfs <6>[ 552.780000] usbcore: registered new interface driver hub <6>[ 552.790000] usbcore: registered new device driver usb <6>[ 552.880000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver <7>[ 552.880000] drivers/usb/host/ehci-ar71xx.c: starting AR7100 EHCI USB Controller...done. reset 0x40 usb config 0x30000 <6>[ 554.800000] ar71xx-ehci ar71xx-ehci.0: new USB bus registered, assigned bus number 1 <6>[ 554.850000] ar71xx-ehci ar71xx-ehci.0: USB 2.0 started, EHCI 1.00 <6>[ 554.850000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 <6>[ 554.860000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 <6>[ 554.870000] usb usb1: Product: Atheros AR71xx built-in EHCI controller <6>[ 554.870000] usb usb1: Manufacturer: Linux 3.10.102 ehci_hcd <6>[ 554.880000] usb usb1: SerialNumber: platform <6>[ 554.880000] hub 1-0:1.0: USB hub found <6>[ 555.100000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver <7>[ 555.100000] drivers/usb/host/ohci-ar71xx.c: starting AR7100 OHCI USB Controller... <6>[ 555.110000] ar71xx-ohci ar71xx-ohci.0: new USB bus registered, assigned bus number 2 <6>[ 555.180000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001 <6>[ 555.190000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 <6>[ 555.190000] usb usb2: Product: Atheros AR71xx built-in OHCI controller <6>[ 555.200000] usb usb2: Manufacturer: Linux 3.10.102 ohci_hcd <6>[ 555.210000] usb usb2: SerialNumber: platform <6>[ 555.210000] hub 2-0:1.0: USB hub found <6>[ 555.500000] usbcore: registered new interface driver usblp